Ping :) Anything I can do to move this forward?

Kind Regards,
Christian

On Wed, Feb 04, 2026 at 02:22:24PM +0100, Christian Speich via qemu development 
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 (commit 1-3) 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 fifth commit fixes the DATA_STAT_AFTER_ERASE bit in SCR and
> introduces an option to allow to erase blocks to 0x00.
> 
> The sixth 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 v3:
> - Rebase onto master, updating read/write path for newly added RBMP
> - Split up commit 1 into multiple commits
>   - change interface to allow "short" read/writes that are continued
>     by the core later by calling again
> - Link to v2: 
> https://lore.kernel.org/qemu-devel/[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 (6):
>       hw/sd: Switch read/write primitive to buf+len
>       hw/sd/sd: Allow multi-byte read/write for generic paths
>       hw/sd/sd: Use multi-byte/block writes for block path
>       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       |  26 +++--
>  hw/sd/sd.c         | 333 
> ++++++++++++++++++++++++++++++++++++++++-------------
>  hw/sd/sdhci.c      | 102 ++++++++--------
>  include/hw/sd/sd.h |  22 ++--
>  4 files changed, 341 insertions(+), 142 deletions(-)
> ---
> base-commit: 28a6ca268c2cd3718b5bf24c2d97e3d1e95fc604
> change-id: 20250912-sdcard-performance-b4-d908bbb5a004
> 
> Best regards,
> -- 
> Christian Speich <[email protected]>
> 
> 

Reply via email to