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
>>>>
>>>


Reply via email to