From: Sharp Xia <Sharp.Xia@xxxxxxxxxxxx> MMC does not set readahead and uses the default VM_READAHEAD_PAGES resulting in slower reading speed. Use the max_req_size reported by host driver to set the optimal I/O size to improve performance. Signed-off-by: Sharp Xia <Sharp.Xia@xxxxxxxxxxxx> --- drivers/mmc/core/queue.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/mmc/core/queue.c b/drivers/mmc/core/queue.c index b396e3900717..fc83c4917360 100644 --- a/drivers/mmc/core/queue.c +++ b/drivers/mmc/core/queue.c @@ -359,6 +359,7 @@ static void mmc_setup_queue(struct mmc_queue *mq, struct mmc_card *card) blk_queue_bounce_limit(mq->queue, BLK_BOUNCE_HIGH); blk_queue_max_hw_sectors(mq->queue, min(host->max_blk_count, host->max_req_size / 512)); + blk_queue_io_opt(mq->queue, host->max_req_size); if (host->can_dma_map_merge) WARN(!blk_queue_can_use_dma_map_merging(mq->queue, mmc_dev(host)), -- 2.18.0