On Monday, May 13, 2013, Ilan Smith wrote:
> Hi,
> 
> In card/block.c:mmc_blk_prep_packed_list(), there is generic logic for 
> determining the maximum number
> of blocks that can be sent in a single transaction:
> 
>         max_blk_count = min(card->host->max_blk_count,
>                             card->host->max_req_size >> 9);
> 
> This value is used to limit the total size of accumulated packed commands in 
> a single transaction.
> Running on the Samsung Arndale platform (Exynos5), it evaluates to 256 (128K) 
> or 512 (256K) depending
> on whether CONFIG_MMC_DW_IDMAC is set or not (respectively), while
> ext_csd[MAX_PACKED_WRITES]==ext_csd[MAX_PACKED_READS]=63, which is also the 
> spec limit (JEDEC 4.51).
> This value results in very little packing activity, and if any occurs, it 
> consists of very few
> requests (usually around 5) of relatively small sizes (probably random writes 
> since sequential write
> requests within these size constraints would no doubt be merged to a single 
> request). I would expect
> to see a limitation of 512K * 63 (or close to that), that is: a max_blk_count 
> of ~64512.
> 
> I suspect that much larger sizes can be transferred resulting in increased 
> utilization of packed
> commands and significant enhancement of overall performance.
> 
> I'd appreciate any insights on the matter.
Host side should be configured to increase the maximum number of blocks.

Thanks,
Seungwon Jeon
> 
> Thanks,
>  - Ilan
> 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to