Comments (4)
Okay figured it out. Turns out to be caused by a bug in libata. Since scsi-block does SCSI passthrough, CmdQue=0 set by libata is exposed to Windows, which apparently prevents command queuing.
It can be fixed with a patch to the kernel like this:
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
index bfec66f..0a35164 100644
--- a/drivers/ata/libata-scsi.c
+++ b/drivers/ata/libata-scsi.c
@@ -2097,7 +2097,10 @@ static unsigned int ata_scsiop_inq_std(struct ata_scsi_args *args, u8 *rbuf)
0,
0x5, /* claim SPC-3 version compatibility */
2,
- 95 - 4
+ 95 - 4,
+ 0,
+ 0,
+ 2
};
VPRINTK("ENTER\n");
--
I think it's better to leave this report open until a fix gets into upstream kernel, but sure it's you guys' call.
from kvm-guest-drivers-windows.
As a reference, I also ran the benchmark with the NVMe emulation in qemu. Works pretty well btw.
qemu-system-x86_64 -enable-kvm -cpu host -smp cores=4 -m 4G -net bridge -net nic -full-screen -drive file=disks/win10__.qcow2,format=qcow2,cache=none,aio=native -drive file=/dev/sdb,format=raw,cache=none,aio=native,if=none,id=bench -device nvme,drive=bench,serial=intel530
:
from kvm-guest-drivers-windows.
Thank you for digging into the issue and finding the cause.
I will keep the issue open for now as a reference for others.
from kvm-guest-drivers-windows.
Fixed in Linux kernel: http://lxr.free-electrons.com/source/drivers/ata/libata-scsi.c#L2099
from kvm-guest-drivers-windows.
Related Issues (20)
- Windows Virtio Video driver mirror function
- BOSD screen doesn't show up with VirtIO VGA HOT 2
- netkvm with lots of parallel network activity hanging Win10 VM HOT 22
- access host's `rclone mount`'ed directory HOT 1
- wiki update for virtiofs HOT 2
- Download link for pre built drivers doesn't work? HOT 4
- netkvm: Enhancing Host Throughput by Combining Virtio Header and Data in a Single Memory Block for NetKVM HOT 9
- Latest Win11 netkvm.cat files mention netkvmpoll.inf instead of netkvm.inf HOT 1
- virtiofs ignoring CLI arguments when created as a service HOT 6
- Virtio-Net driver is not respecting VIRTIO_NET_F_MRG_RXBUF HOT 10
- Windows Ballooning Question (version support) HOT 13
- viostor: It seems that RhelScsiVerify has an improperly handled boundary condition. HOT 5
- netkvm: HLK NDISTest 6.5 - [1 Machine] - GenericMiniportRequirements test failed HOT 5
- After upgrading virtio-win-guest-tools on Windows Server 2016, the CPU usage of the Balloon service and WMI Provider Host skyrocketed. HOT 2
- [virtio-block] Request support for multi-stage resume of Windows to speed up hibernate/resume HOT 5
- SCSI CD-ROM driver broken in recent Windows builds HOT 31
- viogpudo /virtio-vga broken in recent Windows builds HOT 5
- Add-WindowsDriver pvpanic-pci fails with: the request is not supported HOT 4
- Re-add latest working version of qemu-ga agent for win XP HOT 3
- Viogpu: support cross-adapter resources (use case: virtio-gpu-pci used w/ gpu passthru)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kvm-guest-drivers-windows.