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 majordomo@xxxxxxxxxxxxxxx > 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html