Packed commands amount limitation

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

 



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.

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




[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux