-
Notifications
You must be signed in to change notification settings - Fork 438
Description
Describe the bug
Hello! I have an issue with my current setup. I'm using Windows 11 VM with viostor from virtio-win-0.1.285.iso. When I'm running CrystalDiskMark 9.0.1 on "Peak performance" profile, my SEQ1M Q8T1 throughput is 11Gb/s, comparing to host's 13Gb/s, which is tolerable, but RND4k Q32 T16 (IOPS) was only 140k, comparing with host's 2.2M. I'm using https://raw.githubusercontent.com/xlucn/fio-cdm/refs/heads/master/fio-cdm on Linux host, to have same tests.
When I'm running Linux inside the exact same VM config, it's showing me much higher number, 600-700k IOPS for RND4k read/write (2.7/2.8 Gb/s)
When I'm using profile Default in CDM, RND4k Q32 T16 shows 470/456 Mb/s.
I've also run FIO in Windows Guest, with fio-cdm-generated job file and windowsaio engine. It shows 157k IOPS/641 Mb/s for same RND 4k Q32 T16 read test as in CDM (just a bit higher, but still far from Linux guest numbers)
To Reproduce
- Create VM in Qemu, with virtio-blk-pci, with dedicated iothread, aio=native,cache.direct=on,discard=unmap, qcow2 over ext4 over pcie5 nvme.
- Install/boot Windows 11
- Install viostor from https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.285-1/virtio-win-0.1.285.iso
- Pin iothread0 and vCPU threads to separate cores
- Run CrystalDiskMark 9.0.1, with "Peak performance" profile, and "Settings->NVME" on viostor disk
- Observe low IOPS
Expected behavior
CDM should show at least 600-700k IOPs (same as Linux)
Screenshots: N/A
Host:
- Disto: Gentoo
- Kernel version: 6.17.7
- QEMU version: 10.1.3
- QEMU command line: qemu-system-x86_64 -nodefaults -M q35,accel=kvm,kernel_irqchip=split -smp sockets=1,cores=6,threads=2 -cpu host -m size=24G -mem-prealloc -mem-path /dev/hugepages/qemu -overcommit cpu-pm=on,mem-lock=on -global kvm-pit.lost_tick_policy=discard -global ICH9-LPC.disable_s3=1 -global ICH9-LPC.disable_s4=1 -object iothread,id=iothread0 -device pcie-root-port,bus=pcie.0,id=root.0,addr=1c.0,chassis=0,port=0 -blockdev driver=file,node-name=file-ssd,filename=/windows.qcow2,aio=native,cache.direct=on,discard=unmap -blockdev driver=qcow2,node-name=ssd,file=file-ssd,cache.direct=on,discard=unmap,detect-zeroes=unmap -device virtio-blk-pci,drive=ssd,iothread=iothread0,bus=root.0,bootindex=0
- libvirt version: N/A
- libvirt XML file: N/A
VM:
- Windows version: Win11 24H2
- Which driver has a problem: viostor
- Driver version or commit hash that was used to build the driver: 100.101.104.28500
Additional context
Throughput of RND4k Q1T1 test is similar to Linux guest one (65.26 Mb/s on read in Windows vs 71 Mb/s in Linux guest)