* [PATCH] vhost-user-blk-server: fix opt_io_size=1 causing severe Windows I/O degradation
@ 2026-03-30 19:27 Max Makarov
0 siblings, 0 replies; only message in thread
From: Max Makarov @ 2026-03-30 19:27 UTC (permalink / raw)
To: qemu-devel
Cc: qemu-block, Coiby Xu, Stefano Garzarella, Michael S . Tsirkin,
Kevin Wolf, Hanna Reitz, Max Makarov
The QSD vhost-user-blk export sets opt_io_size=1 and min_io_size=1 in
the virtio config. These values are reported to the guest through the
VPD Block Limits page as OptimalTransferLength=1 block (512 bytes)
and OptimalTransferLengthGranularity=1 block.
Windows respects these hints and splits all I/O into ~512-byte
requests, causing ~100x sequential throughput degradation (150 MB/s
instead of 15+ GB/s). Linux is unaffected as its block layer ignores
these values.
Set both to 0 which means "not reported" per the SCSI Block Limits
VPD spec, allowing Windows to use its own optimal I/O size defaults.
Buglink: https://github.com/spdk/spdk/issues/3199
Signed-off-by: Max Makarov <maxpain@linux.com>
---
block/export/vhost-user-blk-server.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/block/export/vhost-user-blk-server.c b/block/export/vhost-user-blk-server.c
index 827502d..e421f72 100644
--- a/block/export/vhost-user-blk-server.c
+++ b/block/export/vhost-user-blk-server.c
@@ -242,8 +242,8 @@ vu_blk_initialize_config(BlockDriverState *bs,
config->blk_size = cpu_to_le32(blk_size);
config->size_max = cpu_to_le32(4096);
config->seg_max = cpu_to_le32(128 - 2);
- config->min_io_size = cpu_to_le16(1);
- config->opt_io_size = cpu_to_le32(1);
+ config->min_io_size = cpu_to_le16(0);
+ config->opt_io_size = cpu_to_le32(0);
config->num_queues = cpu_to_le16(num_queues);
config->max_discard_sectors =
cpu_to_le32(VIRTIO_BLK_MAX_DISCARD_SECTORS);
--
2.53.0
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-03-30 19:27 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-30 19:27 [PATCH] vhost-user-blk-server: fix opt_io_size=1 causing severe Windows I/O degradation Max Makarov
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.