Hi Christian, On 7/11/25 10:08, Christian Speich wrote:
ping, I've not received any reaction on this series[1]. Is there anything I can do to move this forward?
My apologies for missing this... I was in PTO when you posted and then it felt into my INBOX cracks :/
On Fri, Sep 19, 2025 at 02:34:39PM +0200, Christian Speich wrote:This patch series improves the performance of read/write/erase operations on sdcards. This is done by increasing the maximum buffer size that is worked on. >From 1 byte (master) to 512 bytes (first commit) to larger than 512 (adma commit). Testing on my system with fio I see the following rough performance values in MiB/s. read write readwrite master: 6 6 3/ 3 first commit: 51 43 23/ 23 second commit: 392 180 144/143 Tested on a 2GiB raw image with: fio --filename=/dev/mmcblk0 --direct=1 --runtime=60 --time_based --bs=128k --rw={mode} The adma values are somewhat unstable but always >100MiB/s, I'm not sure why but I guess it has something to do with the host side caching. For erasing the third commit changes the erase operation to write zeros, as indicated by DATA_STAT_AFTER_ERASE in SCR. The fourth commit allows erasure in large blocks, to speed it up significantly. Erasing 2GiB now takes 0.1s instead of 26s. Signed-off-by: Christian Speich <[email protected]> --- Christian Speich (4): hw/sd: Switch from byte-wise to buf+len read/writes hw/sd/sdhci: Don't use bounce buffer for ADMA hw/sd/sdcard: Erase blocks to zero hw/sd/sdcard: Erase in large blocks hw/sd/core.c | 16 +--- hw/sd/sd.c | 277 ++++++++++++++++++++++++++++++++++++++++------------- hw/sd/sdhci.c | 102 +++++++++++--------- include/hw/sd/sd.h | 13 +-- 4 files changed, 277 insertions(+), 131 deletions(-) --- base-commit: e7c1e8043a69c5a8efa39d4f9d111f7c72c076e6 change-id: 20250912-sdcard-performance-b4-d908bbb5a004 Best regards, -- Christian Speich <[email protected]>
