Re: [PATCH] Performance enhancement for MMCSD when feature CONFIG_MMC_BLOCK_BOUNCE is enabled in the MMC core

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

this list moved to linux-omap@xxxxxxxxxxxxxxx ;-)

On Thu, May 15, 2008 at 4:25 PM, Kumar, Purushotam <purushotam@xxxxxx> wrote:
> This patch will increase performance significantly. In my testing with a SD Extreme III high speed 2GB SD card using FAT file system on OMAP35X TI EVM, write speed has improved by 2x whereas read speed has improved by 3 times for MMCSD when CONFIG_MMC_BLOCK_BOUNCE is enabled.  It is supposed that larger/bounce buffers will be used by mmc core if CONFIG_MMC_BLOCK_BOUNCE is defined. But, in the mmc core, size of buffer is set to mmc->max_req_size if mmc->max_req_size is smaller than MMC_QUEUE_BOUNCESZ i.e. bounce buffer size (which is 64KB). By default, mmc->max_req_size is set to 4K. So, buffers of 4K will be used instead of 64K even if CONFIG_MMC_BLOCK_BOUNCE is defined without this patch. This patches forces mmc core to use bounce buffer of size MMC_QUEUE_BOUNCESZ and so performance is increased.
>
> Signed-off-by: Purushotam Kumar <purushotam@xxxxxx>
> ---
> Index: linux-omap-2.6/drivers/mmc/host/omap_hsmmc.c
> ===================================================================
> --- linux-omap-2.6.orig/drivers/mmc/host/omap_hsmmc.c
> +++ linux-omap-2.6/drivers/mmc/host/omap_hsmmc.c
> @@ -782,6 +782,15 @@ static int __init omap_mmc_probe(struct
>                else
>                        host->dbclk_enabled = 1;
>
> +#ifdef CONFIG_MMC_BLOCK_BOUNCE
> +       mmc->max_phys_segs = 1;
> +       mmc->max_hw_segs = 1;
> +#endif
> +       mmc->max_blk_size = 512;       /* Block Length at max can be 1024 */
> +       mmc->max_blk_count = 0xFFFF;    /* No. of Blocks is 16 bits */
> +       mmc->max_req_size = mmc->max_blk_size * mmc->max_blk_count;
> +       mmc->max_seg_size = mmc->max_req_size;
> +
>        mmc->ocr_avail = mmc_slot(host).ocr_mask;
>        mmc->caps |= MMC_CAP_MULTIWRITE | MMC_CAP_MMC_HIGHSPEED |
>                                MMC_CAP_SD_HIGHSPEED;

Do you have any measurements results to share :-p

-- 
Best Regards,

Felipe Balbi
felipebalbi@xxxxxxxxxxxxxxxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux