Re: [PULL 00/21] vfio queue
On 10/6/23 12:33, Cédric Le Goater wrote: On 10/6/23 08:19, Cédric Le Goater wrote: The following changes since commit 2f3913f4b2ad74baeb5a6f1d36efbd9ecdf1057d: Merge tag 'for_upstream' of https://git.kernel.org/pub/scm/virt/kvm/mst/qemu into staging (2023-10-05 09:01:01 -0400) are available in the Git repository at: https://github.com/legoater/qemu/ tags/pull-vfio-20231006 for you to fetch changes up to 6e86aaef9ac57066aa923211a164df95b7b3cdf7: vfio/common: Move legacy VFIO backend code into separate container.c (2023-10-05 22:04:52 +0200) vfio queue: * Fix for VFIO display when using Intel vGPUs * Support for dynamic MSI-X * Preliminary work for IOMMUFD support Stefan, I just did some tests on z with passthough devices (PCI and AP) and the series is not bisectable. QEMU crashes at patch : "vfio/pci: Introduce vfio_[attach/detach]_device". Also, with everything applied, the guest fails to start with : vfio: IRQ 0 not available (number of irqs 0) So, please hold on and sorry for the noise. I will start digging on my side. We found a couple of issues after further testing. Fixes are under way. Let's drop this PR. I will send a reduced one today. Thanks, C.
Re: [PULL 00/21] vfio queue
07.10.2023 13:14, Cédric Le Goater wrote: Please send a v5 for "Prerequisite changes for IOMMUFD support" with the fixes we talked about. I will rebuild a PR next week. Can you push the first bugfix at least, so it will not miss stable-8.1.2? Thanks, /mjt
Re: [PULL 00/21] vfio queue
Hello Eric, If you are ok with the above, I will squash the change in the related patch and send a v2. Unfortunately this is not sufficient. There is another regression (crash) on a double free of vbasedev->name as I reported before. I was able to hit it on a failing hotplug. How do you want me to send the fix? I can resend the whole series of just fixes on the related patches. Please send a v5 for "Prerequisite changes for IOMMUFD support" with the fixes we talked about. I will rebuild a PR next week. Thanks, C.
Re: [PULL 00/21] vfio queue
Hi Cédric, On 10/6/23 19:08, Cédric Le Goater wrote: > Hello Eric, > > On 10/6/23 14:25, Eric Auger wrote: >> Hi Cédric, >> >> On 10/6/23 13:46, Eric Auger wrote: >>> Hi Cédric, >>> >>> On 10/6/23 13:42, Eric Auger wrote: Hi Cédric, On 10/6/23 12:33, Cédric Le Goater wrote: > On 10/6/23 08:19, Cédric Le Goater wrote: >> The following changes since commit >> 2f3913f4b2ad74baeb5a6f1d36efbd9ecdf1057d: >> >> Merge tag 'for_upstream' of >> https://git.kernel.org/pub/scm/virt/kvm/mst/qemu into staging >> (2023-10-05 09:01:01 -0400) >> >> are available in the Git repository at: >> >> https://github.com/legoater/qemu/ tags/pull-vfio-20231006 >> >> for you to fetch changes up to >> 6e86aaef9ac57066aa923211a164df95b7b3cdf7: >> >> vfio/common: Move legacy VFIO backend code into separate >> container.c (2023-10-05 22:04:52 +0200) >> >> >> vfio queue: >> >> * Fix for VFIO display when using Intel vGPUs >> * Support for dynamic MSI-X >> * Preliminary work for IOMMUFD support > > Stefan, > > I just did some tests on z with passthough devices (PCI and AP) and > the series is not bisectable. QEMU crashes at patch : > > "vfio/pci: Introduce vfio_[attach/detach]_device". > > Also, with everything applied, the guest fails to start with : > > vfio: IRQ 0 not available (number of irqs 0) > > So, please hold on and sorry for the noise. I will start digging > on my side. I just tested with the head on vfio/pci: Introduce vfio_[attach/detach]_device, with PCIe assignment on ARM and I fail to reproduce the crash. Do you try hotplug or something simpler? >>> >>> also works for me with hotplug/hotunplug. Please let me know if I can >>> help. >> >> I think this is related to the error handling. >> >> if you hotplug a vfio-device and if this encounters an error, >> vfio_realize fails and you end at the 'error' label where the name of >> the device is freed: g_free(vbasedev->name); >> >> However I see that the vfio_finalize is called (Zhengzhong warned me !!) >> calls vfio_pci_put_device >> which calls g_free(vdev->vbasedev.name) again. >> please try adding >> vdev->vbasedev.name = NULL after freeing the name in vfio_realize error: >> so see if it fixes the crash. >> >> Then wrt irq stuff, I would be tempted to say it sounds unrelated to the >> iommufd prereq series but well. >> >> Please let me know how you want me to fix that mess, sorry. > > So, the issue was a bit complex to dig because it only crashed > with a s390 guest under libvirt. This is my all-in-one combo VM > which has 2 PCI, 2 AP, 1 CCW passthrough devices and the issue > is in AP I think. > > vfio_ap_realize lacks : > > @@ -188,6 +188,7 @@ static void vfio_ap_realize(DeviceState > error_report_err(err); > } > + return; Hum indeed! Thanks for fixing that. > error: > error_prepend(errp, VFIO_MSG_PREFIX, vbasedev->name); > g_free(vbasedev->name); > > > No error were to return and since everything was fine, the error > path generated a lot of mess indeed ! > > If you are ok with the above, I will squash the change in the > related patch and send a v2. Unfortunately this is not sufficient. There is another regression (crash) on a double free of vbasedev->name as I reported before. I was able to hit it on a failing hotplug. How do you want me to send the fix? I can resend the whole series of just fixes on the related patches. Thanks Eric> Thanks, > > C. > > > > >> >> Eric >> >> >>> >>> Eric Thanks Eric > > Thanks, > > C. > >> >> Alex Williamson (1): >> vfio/display: Fix missing update to set backing fields >> >> Eric Auger (7): >> scripts/update-linux-headers: Add iommufd.h >> vfio/common: Propagate KVM_SET_DEVICE_ATTR error if any >> vfio/common: Introduce >> vfio_container_add|del_section_window() >> vfio/pci: Introduce vfio_[attach/detach]_device >> vfio/platform: Use vfio_[attach/detach]_device >> vfio/ap: Use vfio_[attach/detach]_device >> vfio/ccw: Use vfio_[attach/detach]_device >> >> Jing Liu (4): >> vfio/pci: detect the support of dynamic MSI-X allocation >> vfio/pci: enable vector on dynamic MSI-X allocation >> vfio/pci: use an invalid fd to enable MSI-X >> vfio/pci: enable MSI-X in interrupt restoring on dynamic >> allocation >> >> Yi Liu (2): >> vfio/common: Move IOMMU agnostic helpers to a separate file >> vfio/common: Move legacy VFIO backend code into separate >> container.c >> >> Zhenzhong Duan (7):
Re: [PULL 00/21] vfio queue
Hello Eric, On 10/6/23 14:25, Eric Auger wrote: Hi Cédric, On 10/6/23 13:46, Eric Auger wrote: Hi Cédric, On 10/6/23 13:42, Eric Auger wrote: Hi Cédric, On 10/6/23 12:33, Cédric Le Goater wrote: On 10/6/23 08:19, Cédric Le Goater wrote: The following changes since commit 2f3913f4b2ad74baeb5a6f1d36efbd9ecdf1057d: Merge tag 'for_upstream' of https://git.kernel.org/pub/scm/virt/kvm/mst/qemu into staging (2023-10-05 09:01:01 -0400) are available in the Git repository at: https://github.com/legoater/qemu/ tags/pull-vfio-20231006 for you to fetch changes up to 6e86aaef9ac57066aa923211a164df95b7b3cdf7: vfio/common: Move legacy VFIO backend code into separate container.c (2023-10-05 22:04:52 +0200) vfio queue: * Fix for VFIO display when using Intel vGPUs * Support for dynamic MSI-X * Preliminary work for IOMMUFD support Stefan, I just did some tests on z with passthough devices (PCI and AP) and the series is not bisectable. QEMU crashes at patch : "vfio/pci: Introduce vfio_[attach/detach]_device". Also, with everything applied, the guest fails to start with : vfio: IRQ 0 not available (number of irqs 0) So, please hold on and sorry for the noise. I will start digging on my side. I just tested with the head on vfio/pci: Introduce vfio_[attach/detach]_device, with PCIe assignment on ARM and I fail to reproduce the crash. Do you try hotplug or something simpler? also works for me with hotplug/hotunplug. Please let me know if I can help. I think this is related to the error handling. if you hotplug a vfio-device and if this encounters an error, vfio_realize fails and you end at the 'error' label where the name of the device is freed: g_free(vbasedev->name); However I see that the vfio_finalize is called (Zhengzhong warned me !!) calls vfio_pci_put_device which calls g_free(vdev->vbasedev.name) again. please try adding vdev->vbasedev.name = NULL after freeing the name in vfio_realize error: so see if it fixes the crash. Then wrt irq stuff, I would be tempted to say it sounds unrelated to the iommufd prereq series but well. Please let me know how you want me to fix that mess, sorry. So, the issue was a bit complex to dig because it only crashed with a s390 guest under libvirt. This is my all-in-one combo VM which has 2 PCI, 2 AP, 1 CCW passthrough devices and the issue is in AP I think. vfio_ap_realize lacks : @@ -188,6 +188,7 @@ static void vfio_ap_realize(DeviceState error_report_err(err); } +return; error: error_prepend(errp, VFIO_MSG_PREFIX, vbasedev->name); g_free(vbasedev->name); No error were to return and since everything was fine, the error path generated a lot of mess indeed ! If you are ok with the above, I will squash the change in the related patch and send a v2. Thanks, C. Eric Eric Thanks Eric Thanks, C. Alex Williamson (1): vfio/display: Fix missing update to set backing fields Eric Auger (7): scripts/update-linux-headers: Add iommufd.h vfio/common: Propagate KVM_SET_DEVICE_ATTR error if any vfio/common: Introduce vfio_container_add|del_section_window() vfio/pci: Introduce vfio_[attach/detach]_device vfio/platform: Use vfio_[attach/detach]_device vfio/ap: Use vfio_[attach/detach]_device vfio/ccw: Use vfio_[attach/detach]_device Jing Liu (4): vfio/pci: detect the support of dynamic MSI-X allocation vfio/pci: enable vector on dynamic MSI-X allocation vfio/pci: use an invalid fd to enable MSI-X vfio/pci: enable MSI-X in interrupt restoring on dynamic allocation Yi Liu (2): vfio/common: Move IOMMU agnostic helpers to a separate file vfio/common: Move legacy VFIO backend code into separate container.c Zhenzhong Duan (7): vfio/pci: rename vfio_put_device to vfio_pci_put_device linux-headers: Add iommufd.h vfio/common: Extract out vfio_kvm_device_[add/del]_fd vfio/common: Move VFIO reset handler registration to a group agnostic function vfio/common: Introduce a per container device list vfio/common: Store the parent container in VFIODevice vfio/common: Introduce a global VFIODevice list hw/vfio/pci.h | 1 + include/hw/vfio/vfio-common.h | 60 +- linux-headers/linux/iommufd.h | 444 + hw/vfio/ap.c | 69 +- hw/vfio/ccw.c | 122 +-- hw/vfio/common.c | 1885 +++ hw/vfio/container.c | 1161 hw/vfio/display.c | 2 + hw/vfio/helpers.c | 612 + hw/vfio/pci.c | 194 ++-- hw/vfio/platform.c | 43 +- hw/vfio/meson.build |
Re: [PULL 00/21] vfio queue
Hi Cédric, On 10/6/23 13:46, Eric Auger wrote: > Hi Cédric, > > On 10/6/23 13:42, Eric Auger wrote: >> Hi Cédric, >> >> On 10/6/23 12:33, Cédric Le Goater wrote: >>> On 10/6/23 08:19, Cédric Le Goater wrote: The following changes since commit 2f3913f4b2ad74baeb5a6f1d36efbd9ecdf1057d: Merge tag 'for_upstream' of https://git.kernel.org/pub/scm/virt/kvm/mst/qemu into staging (2023-10-05 09:01:01 -0400) are available in the Git repository at: https://github.com/legoater/qemu/ tags/pull-vfio-20231006 for you to fetch changes up to 6e86aaef9ac57066aa923211a164df95b7b3cdf7: vfio/common: Move legacy VFIO backend code into separate container.c (2023-10-05 22:04:52 +0200) vfio queue: * Fix for VFIO display when using Intel vGPUs * Support for dynamic MSI-X * Preliminary work for IOMMUFD support >>> >>> Stefan, >>> >>> I just did some tests on z with passthough devices (PCI and AP) and >>> the series is not bisectable. QEMU crashes at patch : >>> >>> "vfio/pci: Introduce vfio_[attach/detach]_device". >>> >>> Also, with everything applied, the guest fails to start with : >>> >>> vfio: IRQ 0 not available (number of irqs 0) >>> >>> So, please hold on and sorry for the noise. I will start digging >>> on my side. >> I just tested with the head on vfio/pci: Introduce >> vfio_[attach/detach]_device, with PCIe assignment on ARM and I fail to >> reproduce the crash. >> >> Do you try hotplug or something simpler? > > also works for me with hotplug/hotunplug. Please let me know if I can help. I think this is related to the error handling. if you hotplug a vfio-device and if this encounters an error, vfio_realize fails and you end at the 'error' label where the name of the device is freed: g_free(vbasedev->name); However I see that the vfio_finalize is called (Zhengzhong warned me !!) calls vfio_pci_put_device which calls g_free(vdev->vbasedev.name) again. please try adding vdev->vbasedev.name = NULL after freeing the name in vfio_realize error: so see if it fixes the crash. Then wrt irq stuff, I would be tempted to say it sounds unrelated to the iommufd prereq series but well. Please let me know how you want me to fix that mess, sorry. Eric > > Eric >> >> Thanks >> >> Eric >> >> >>> >>> Thanks, >>> >>> C. >>> Alex Williamson (1): vfio/display: Fix missing update to set backing fields Eric Auger (7): scripts/update-linux-headers: Add iommufd.h vfio/common: Propagate KVM_SET_DEVICE_ATTR error if any vfio/common: Introduce vfio_container_add|del_section_window() vfio/pci: Introduce vfio_[attach/detach]_device vfio/platform: Use vfio_[attach/detach]_device vfio/ap: Use vfio_[attach/detach]_device vfio/ccw: Use vfio_[attach/detach]_device Jing Liu (4): vfio/pci: detect the support of dynamic MSI-X allocation vfio/pci: enable vector on dynamic MSI-X allocation vfio/pci: use an invalid fd to enable MSI-X vfio/pci: enable MSI-X in interrupt restoring on dynamic allocation Yi Liu (2): vfio/common: Move IOMMU agnostic helpers to a separate file vfio/common: Move legacy VFIO backend code into separate container.c Zhenzhong Duan (7): vfio/pci: rename vfio_put_device to vfio_pci_put_device linux-headers: Add iommufd.h vfio/common: Extract out vfio_kvm_device_[add/del]_fd vfio/common: Move VFIO reset handler registration to a group agnostic function vfio/common: Introduce a per container device list vfio/common: Store the parent container in VFIODevice vfio/common: Introduce a global VFIODevice list hw/vfio/pci.h | 1 + include/hw/vfio/vfio-common.h | 60 +- linux-headers/linux/iommufd.h | 444 + hw/vfio/ap.c | 69 +- hw/vfio/ccw.c | 122 +-- hw/vfio/common.c | 1885 +++ hw/vfio/container.c | 1161 hw/vfio/display.c | 2 + hw/vfio/helpers.c | 612 + hw/vfio/pci.c | 194 ++-- hw/vfio/platform.c | 43 +- hw/vfio/meson.build | 2 + hw/vfio/trace-events | 6 +- scripts/update-linux-headers.sh | 3 +- 14 files changed, 2580 insertions(+), 2024 deletions(-) create mode 100644 linux-headers/linux/iommufd.h create mode 100644 hw/vfio/container.c create mode 100644 hw/vfio/helpers.c
Re: [PULL 00/21] vfio queue
Hi Cédric, On 10/6/23 13:42, Eric Auger wrote: > Hi Cédric, > > On 10/6/23 12:33, Cédric Le Goater wrote: >> On 10/6/23 08:19, Cédric Le Goater wrote: >>> The following changes since commit >>> 2f3913f4b2ad74baeb5a6f1d36efbd9ecdf1057d: >>> >>> Merge tag 'for_upstream' of >>> https://git.kernel.org/pub/scm/virt/kvm/mst/qemu into staging >>> (2023-10-05 09:01:01 -0400) >>> >>> are available in the Git repository at: >>> >>> https://github.com/legoater/qemu/ tags/pull-vfio-20231006 >>> >>> for you to fetch changes up to 6e86aaef9ac57066aa923211a164df95b7b3cdf7: >>> >>> vfio/common: Move legacy VFIO backend code into separate >>> container.c (2023-10-05 22:04:52 +0200) >>> >>> >>> vfio queue: >>> >>> * Fix for VFIO display when using Intel vGPUs >>> * Support for dynamic MSI-X >>> * Preliminary work for IOMMUFD support >> >> Stefan, >> >> I just did some tests on z with passthough devices (PCI and AP) and >> the series is not bisectable. QEMU crashes at patch : >> >> "vfio/pci: Introduce vfio_[attach/detach]_device". >> >> Also, with everything applied, the guest fails to start with : >> >> vfio: IRQ 0 not available (number of irqs 0) >> >> So, please hold on and sorry for the noise. I will start digging >> on my side. > I just tested with the head on vfio/pci: Introduce > vfio_[attach/detach]_device, with PCIe assignment on ARM and I fail to > reproduce the crash. > > Do you try hotplug or something simpler? also works for me with hotplug/hotunplug. Please let me know if I can help. Eric > > Thanks > > Eric > > >> >> Thanks, >> >> C. >> >>> >>> Alex Williamson (1): >>> vfio/display: Fix missing update to set backing fields >>> >>> Eric Auger (7): >>> scripts/update-linux-headers: Add iommufd.h >>> vfio/common: Propagate KVM_SET_DEVICE_ATTR error if any >>> vfio/common: Introduce vfio_container_add|del_section_window() >>> vfio/pci: Introduce vfio_[attach/detach]_device >>> vfio/platform: Use vfio_[attach/detach]_device >>> vfio/ap: Use vfio_[attach/detach]_device >>> vfio/ccw: Use vfio_[attach/detach]_device >>> >>> Jing Liu (4): >>> vfio/pci: detect the support of dynamic MSI-X allocation >>> vfio/pci: enable vector on dynamic MSI-X allocation >>> vfio/pci: use an invalid fd to enable MSI-X >>> vfio/pci: enable MSI-X in interrupt restoring on dynamic >>> allocation >>> >>> Yi Liu (2): >>> vfio/common: Move IOMMU agnostic helpers to a separate file >>> vfio/common: Move legacy VFIO backend code into separate >>> container.c >>> >>> Zhenzhong Duan (7): >>> vfio/pci: rename vfio_put_device to vfio_pci_put_device >>> linux-headers: Add iommufd.h >>> vfio/common: Extract out vfio_kvm_device_[add/del]_fd >>> vfio/common: Move VFIO reset handler registration to a group >>> agnostic function >>> vfio/common: Introduce a per container device list >>> vfio/common: Store the parent container in VFIODevice >>> vfio/common: Introduce a global VFIODevice list >>> >>> hw/vfio/pci.h | 1 + >>> include/hw/vfio/vfio-common.h | 60 +- >>> linux-headers/linux/iommufd.h | 444 + >>> hw/vfio/ap.c | 69 +- >>> hw/vfio/ccw.c | 122 +-- >>> hw/vfio/common.c | 1885 >>> +++ >>> hw/vfio/container.c | 1161 >>> hw/vfio/display.c | 2 + >>> hw/vfio/helpers.c | 612 + >>> hw/vfio/pci.c | 194 ++-- >>> hw/vfio/platform.c | 43 +- >>> hw/vfio/meson.build | 2 + >>> hw/vfio/trace-events | 6 +- >>> scripts/update-linux-headers.sh | 3 +- >>> 14 files changed, 2580 insertions(+), 2024 deletions(-) >>> create mode 100644 linux-headers/linux/iommufd.h >>> create mode 100644 hw/vfio/container.c >>> create mode 100644 hw/vfio/helpers.c >>> >>
Re: [PULL 00/21] vfio queue
Hi Cédric, On 10/6/23 12:33, Cédric Le Goater wrote: > On 10/6/23 08:19, Cédric Le Goater wrote: >> The following changes since commit >> 2f3913f4b2ad74baeb5a6f1d36efbd9ecdf1057d: >> >> Merge tag 'for_upstream' of >> https://git.kernel.org/pub/scm/virt/kvm/mst/qemu into staging >> (2023-10-05 09:01:01 -0400) >> >> are available in the Git repository at: >> >> https://github.com/legoater/qemu/ tags/pull-vfio-20231006 >> >> for you to fetch changes up to 6e86aaef9ac57066aa923211a164df95b7b3cdf7: >> >> vfio/common: Move legacy VFIO backend code into separate >> container.c (2023-10-05 22:04:52 +0200) >> >> >> vfio queue: >> >> * Fix for VFIO display when using Intel vGPUs >> * Support for dynamic MSI-X >> * Preliminary work for IOMMUFD support > > Stefan, > > I just did some tests on z with passthough devices (PCI and AP) and > the series is not bisectable. QEMU crashes at patch : > > "vfio/pci: Introduce vfio_[attach/detach]_device". > > Also, with everything applied, the guest fails to start with : > > vfio: IRQ 0 not available (number of irqs 0) > > So, please hold on and sorry for the noise. I will start digging > on my side. I just tested with the head on vfio/pci: Introduce vfio_[attach/detach]_device, with PCIe assignment on ARM and I fail to reproduce the crash. Do you try hotplug or something simpler? Thanks Eric > > Thanks, > > C. > >> >> Alex Williamson (1): >> vfio/display: Fix missing update to set backing fields >> >> Eric Auger (7): >> scripts/update-linux-headers: Add iommufd.h >> vfio/common: Propagate KVM_SET_DEVICE_ATTR error if any >> vfio/common: Introduce vfio_container_add|del_section_window() >> vfio/pci: Introduce vfio_[attach/detach]_device >> vfio/platform: Use vfio_[attach/detach]_device >> vfio/ap: Use vfio_[attach/detach]_device >> vfio/ccw: Use vfio_[attach/detach]_device >> >> Jing Liu (4): >> vfio/pci: detect the support of dynamic MSI-X allocation >> vfio/pci: enable vector on dynamic MSI-X allocation >> vfio/pci: use an invalid fd to enable MSI-X >> vfio/pci: enable MSI-X in interrupt restoring on dynamic >> allocation >> >> Yi Liu (2): >> vfio/common: Move IOMMU agnostic helpers to a separate file >> vfio/common: Move legacy VFIO backend code into separate >> container.c >> >> Zhenzhong Duan (7): >> vfio/pci: rename vfio_put_device to vfio_pci_put_device >> linux-headers: Add iommufd.h >> vfio/common: Extract out vfio_kvm_device_[add/del]_fd >> vfio/common: Move VFIO reset handler registration to a group >> agnostic function >> vfio/common: Introduce a per container device list >> vfio/common: Store the parent container in VFIODevice >> vfio/common: Introduce a global VFIODevice list >> >> hw/vfio/pci.h | 1 + >> include/hw/vfio/vfio-common.h | 60 +- >> linux-headers/linux/iommufd.h | 444 + >> hw/vfio/ap.c | 69 +- >> hw/vfio/ccw.c | 122 +-- >> hw/vfio/common.c | 1885 >> +++ >> hw/vfio/container.c | 1161 >> hw/vfio/display.c | 2 + >> hw/vfio/helpers.c | 612 + >> hw/vfio/pci.c | 194 ++-- >> hw/vfio/platform.c | 43 +- >> hw/vfio/meson.build | 2 + >> hw/vfio/trace-events | 6 +- >> scripts/update-linux-headers.sh | 3 +- >> 14 files changed, 2580 insertions(+), 2024 deletions(-) >> create mode 100644 linux-headers/linux/iommufd.h >> create mode 100644 hw/vfio/container.c >> create mode 100644 hw/vfio/helpers.c >> >
Re: [PULL 00/21] vfio queue
On 10/6/23 08:19, Cédric Le Goater wrote: The following changes since commit 2f3913f4b2ad74baeb5a6f1d36efbd9ecdf1057d: Merge tag 'for_upstream' of https://git.kernel.org/pub/scm/virt/kvm/mst/qemu into staging (2023-10-05 09:01:01 -0400) are available in the Git repository at: https://github.com/legoater/qemu/ tags/pull-vfio-20231006 for you to fetch changes up to 6e86aaef9ac57066aa923211a164df95b7b3cdf7: vfio/common: Move legacy VFIO backend code into separate container.c (2023-10-05 22:04:52 +0200) vfio queue: * Fix for VFIO display when using Intel vGPUs * Support for dynamic MSI-X * Preliminary work for IOMMUFD support Stefan, I just did some tests on z with passthough devices (PCI and AP) and the series is not bisectable. QEMU crashes at patch : "vfio/pci: Introduce vfio_[attach/detach]_device". Also, with everything applied, the guest fails to start with : vfio: IRQ 0 not available (number of irqs 0) So, please hold on and sorry for the noise. I will start digging on my side. Thanks, C. Alex Williamson (1): vfio/display: Fix missing update to set backing fields Eric Auger (7): scripts/update-linux-headers: Add iommufd.h vfio/common: Propagate KVM_SET_DEVICE_ATTR error if any vfio/common: Introduce vfio_container_add|del_section_window() vfio/pci: Introduce vfio_[attach/detach]_device vfio/platform: Use vfio_[attach/detach]_device vfio/ap: Use vfio_[attach/detach]_device vfio/ccw: Use vfio_[attach/detach]_device Jing Liu (4): vfio/pci: detect the support of dynamic MSI-X allocation vfio/pci: enable vector on dynamic MSI-X allocation vfio/pci: use an invalid fd to enable MSI-X vfio/pci: enable MSI-X in interrupt restoring on dynamic allocation Yi Liu (2): vfio/common: Move IOMMU agnostic helpers to a separate file vfio/common: Move legacy VFIO backend code into separate container.c Zhenzhong Duan (7): vfio/pci: rename vfio_put_device to vfio_pci_put_device linux-headers: Add iommufd.h vfio/common: Extract out vfio_kvm_device_[add/del]_fd vfio/common: Move VFIO reset handler registration to a group agnostic function vfio/common: Introduce a per container device list vfio/common: Store the parent container in VFIODevice vfio/common: Introduce a global VFIODevice list hw/vfio/pci.h |1 + include/hw/vfio/vfio-common.h | 60 +- linux-headers/linux/iommufd.h | 444 + hw/vfio/ap.c| 69 +- hw/vfio/ccw.c | 122 +-- hw/vfio/common.c| 1885 +++ hw/vfio/container.c | 1161 hw/vfio/display.c |2 + hw/vfio/helpers.c | 612 + hw/vfio/pci.c | 194 ++-- hw/vfio/platform.c | 43 +- hw/vfio/meson.build |2 + hw/vfio/trace-events|6 +- scripts/update-linux-headers.sh |3 +- 14 files changed, 2580 insertions(+), 2024 deletions(-) create mode 100644 linux-headers/linux/iommufd.h create mode 100644 hw/vfio/container.c create mode 100644 hw/vfio/helpers.c