id = 2968 title = "Regression: x-igd-opregion=off ignored in VFIO IGD quirk handling" state = "opened" created_at = "2025-05-16T17:22:20.072Z" closed_at = "n/a" labels = ["VFIO"] url = "https://gitlab.com/qemu-project/qemu/-/issues/2968" host-os = "n/a" host-arch = "n/a" qemu-version = "n/a" guest-os = "any" guest-arch = "x86_64" description = """A regression in QEMU’s VFIO IGD initialization causes the `x-igd-opregion=off` parameter to be ignored, resulting in an error when passing through an Intel iGPU SR-IOV Virtual Function (VF) at PCI address `00:02.1`: `qemu-system-x86_64: -device vfio-pci,host=0000:00:02.1,...: Device does not supports IGD OpRegion feature: No such device` Automatic detection of IGD-OpRegion assumes any Intel iGPU (including GVT-g) will have it but SR-IOV VFs do not.""" reproduce = """1. Configure an Intel iGPU with SR-IOV enabled, creating a VF at `00:02.1`. 2. Bind the VF to the `vfio-pci` driver: ``` echo 0000:00:02.1 > /sys/bus/pci/drivers/i915/unbind either: echo "8086 4680" > /sys/bus/pci/drivers/vfio-pci/new_id or: echo 0000:00:02.1 > /sys/bus/pci/drivers/vfio-pci/bind ``` 3. Run QEMU with the command line above, including `-device vfio-pci,host=0000:00:02.1,...,x-igd-opregion=off`.""" additional = """- **Hardware details**: - `00:02.1 VGA compatible controller [0300]: Intel Corporation AlderLake-S GT1 [8086:4680] (rev 0c)` - Host motherboard: MSI PRO Z690-A DDR4 - CPU: Intel Core i5 12600K - **Regression cause**: The issue was introduced by commit 7be29f2f1a3f5b037d27eedbd5df9f441e8c8c16, which changed `vfio_pci_igd_config_quirk` to detect OpRegion automatically, ignoring `vdev->igd_opregion=false`. - **Proposed fix**: I have a patch that adds checks for `vdev->igd_opregion` in `vfio_pci_igd_config_quirk` and `vfio_pci_kvmgt_config_quirk`, skipping OpRegion handling when `x-igd-opregion=off`. The patch has been tested, confirming the VM starts without errors. I will submit it to qemu-devel@nongnu.org with a reference to this issue."""