Bug 2089545
Summary: | Not supporting ATS when booting a win2022 guest with '-device virtio-net-pci,aer=on,ats=on' | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 9 | Reporter: | Yiqian Wei <yiwei> |
Component: | qemu-kvm | Assignee: | Kostiantyn Kostiuk <kkostiuk> |
qemu-kvm sub component: | Testing | QA Contact: | Yiqian Wei <yiwei> |
Status: | CLOSED DUPLICATE | Docs Contact: | |
Severity: | unspecified | ||
Priority: | unspecified | CC: | ailan, ani, coli, imammedo, jinzhao, juzhang, kkostiuk, mst, virt-maint, yvugenfi |
Version: | 9.1 | Keywords: | Regression, Triaged |
Target Milestone: | rc | ||
Target Release: | --- | ||
Hardware: | x86_64 | ||
OS: | Windows | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | If docs needed, set a value | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2022-07-13 03:41:06 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Yiqian Wei
2022-05-24 01:25:32 UTC
Confirm bug. This is regression. Works fine in QEMU v6.1.0. Commit that creates this issue: https://github.com/qemu/qemu/commit/211afe5c69 Possible workaround: add `--global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off` to the QEMU command line. In this case, the ATS support property will be correct. tested with QEMU v6.2.0 and v7.0.50 Hi Yiqian Wei, From your command line -device pcie-root-port,id=pcie-root-port-3,port=0x3,addr=0x1.0x3,bus=pcie.0,chassis=4 \ -device virtio-net-pci,mac=9a:7f:22:72:3a:80,id=id962Oxs,netdev=idZYW5my,bus=pcie-root-port-3,addr=0x0,aer=on,ats=on \ Please set x-native-hotplug=false for pcie-root-port-3 and let us know what results you get: $ ./qemu-system-x86_64 -device pcie-root-port,? | grep hotplug hotplug=<bool> - (default: true) x-native-hotplug=<bool> - (default: true) (In reply to Kostiantyn Kostiuk from comment #4) > Hi Yiqian Wei, > > From your command line > -device > pcie-root-port,id=pcie-root-port-3,port=0x3,addr=0x1.0x3,bus=pcie.0, > chassis=4 \ > -device > virtio-net-pci,mac=9a:7f:22:72:3a:80,id=id962Oxs,netdev=idZYW5my,bus=pcie- > root-port-3,addr=0x0,aer=on,ats=on \ > > Please set x-native-hotplug=false for pcie-root-port-3 and let us know > what results you get: > > $ ./qemu-system-x86_64 -device pcie-root-port,? | grep hotplug > hotplug=<bool> - (default: true) > x-native-hotplug=<bool> - (default: true) Can reproduce this bug with set x-native-hotplug=false to pcie-root-port-3 -device pcie-root-port,id=pcie-root-port-3,port=0x3,addr=0x1.0x3,bus=pcie.0,chassis=4,x-native-hotplug=false \ -device virtio-net-pci,mac=9a:7f:22:72:3a:80,id=id962Oxs,netdev=idZYW5my,bus=pcie-root-port-3,addr=0x0,aer=on,ats=on \ -netdev tap,id=idZYW5my,vhost=on \ *** This bug has been marked as a duplicate of bug 2073872 *** Hi Kostiantyn, Confirmed that this issue is same as BZ2073872, so close it as a dup, please feel free to correct me if anything is wrong. Thanks. Can you please try the patch I posted here: https://lists.nongnu.org/archive/html/qemu-devel/2022-08/msg03072.html cc: @mst @kkostiuk I tried your patches with Windows Server 2022. The ATS property is still absent in Device Manager. Please try this patch also : https://lists.nongnu.org/archive/html/qemu-devel/2022-09/msg00564.html . Suggested by mst. Issue summary: ================ Windows does not detect ATS property for Ethernet PCI controller when firmware masks PCIE native hotplug capability in _OSC control Versions of windows affected: ============================= Server versions: Windows server 2016, windows server 2019, windows server 2022 Desktop versions: Windows 10, Windows 11. From our testing, the versions of Windows earlier than those mentioned above do not report/check for ATS availability even when the firmware does not mask PCIE native hotplug in _OSC. It seems reporting ATS status is only available in the above newer versions of the OS. How to reproduce the issue? ============================ We have used the QEMU hypervisor to test for this issue. Please refer to the following RedHat BZ for the QEMU commandline used: https://bugzilla.redhat.com/show_bug.cgi?id=2089545 Additionally, one can use the following scripts: https://github.com/ani-sinha/misc/blob/master/test-ats.sh https://github.com/ani-sinha/misc/blob/master/test-ats-win11.sh (Please adjust the locations of the images/binaries as per your host). Note that the ethernet controller is attached to the pcie root port which in turn is attached to the pci root complex. The ATS property is for the pcie root port as mentioned in Intel VTD spec (1). "--global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=on/off" will mask/unmask the PCIE native hotplug reporting in _OSC from the firmware in QEMU and thus the issue can be observed easily. Please see (2). "on" will mask the bit, "off" will unmask. "-snapshot" command line has been used with the disk image to make sure there are no caching effect within the guest OS. Further, we have tested by removing and re-adding the ethernet controller from within the guest OS. The results are the same. References: (1) Intel Virtualization technology for Directed I/O, section 8.5 - Root Port ATS capability reporting structure. (2) ACPI spec 5.1, section 6.2.11.3 - OSC Implementation Example for PCI Host Bridge Devices |