ping?
I'll rebase it soon as it won't apply cleanly anymore, but I'd like to know if
this
patch is generally going in an right direction?
Greetings,
Christian
On Tue, Dec 02, 2025 at 03:39:30PM +0100, 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.
>
> The third commit fixes the DATA_STAT_AFTER_ERASE bit in SCR and
> introduces an option to allow to erase blocks to 0x00.
>
> The fourth commit optimizes block erase when erase-blocks-as-zero=true
> is used, by passing the zeroing request down the to the block device.
> Erasing 2GiB now takes 0.1s instead of 26s.
>
> Signed-off-by: Christian Speich <[email protected]>
> ---
> Changes in v2:
> - Properly set DATA_STAT_AFTER_ERASE in SCR
> - Add erase-blocks-as-zero option to allow the user to switch between
> 0x00 and 0xFF for erased blocks.
> - Link to v1:
> https://lore.kernel.org/qemu-devel/[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: Add erase-blocks-as-zero option.
> hw/sd/sdcard: Optimize erase blocks as zero.
>
> hw/sd/core.c | 16 +--
> hw/sd/sd.c | 308
> +++++++++++++++++++++++++++++++++++++++++------------
> hw/sd/sdhci.c | 102 ++++++++++--------
> include/hw/sd/sd.h | 13 +--
> 4 files changed, 307 insertions(+), 132 deletions(-)
> ---
> base-commit: e7c1e8043a69c5a8efa39d4f9d111f7c72c076e6
> change-id: 20250912-sdcard-performance-b4-d908bbb5a004
>
> Best regards,
> --
> Christian Speich <[email protected]>
>
>