From: Chen Fan <chen.fan.f...@cn.fujitsu.com> v8-v9: 1. Don't use resume notification. Host vfio driver will process aer. Poll the vfio_device_info to assure host reset completely.
v7-v8: 1. Use bitmap to record error and resume notification. v6-v7: 1. Stall any access to the device until resume is signaled. Do guest directed bus reset after receive resume notification. If don't get the resume notification after some timeout unplug the device. 2. fix the patches 11/12 as Alex sugguestion. v5-v6: 1. register resume handler both qemu and kernel to ensure the reset in order. 2. fix the patches 6/12, 7/12 as Alex and MST sugguestion. v4-v5: 1. add back the common function 0 hotplug code in pci core. 2. fix a sporadic device stuck on D3 problem when doing aer recovery. 3. fix patches 5/12 ~ 9/12 as Alex sugguestion. v3-v4: 1. rebase patchset to fit latest master branch. 2. modifying patches 5/10 ~ 8/10 as Alex sugguestion(Thanks). v2-v3: 1. fix patch 4/9, 5/9 as Alex sugguestion. 2. patches 5/9 ~ 8/9 are made to force limiting that all vfio functions are combined in the same way as on the host. v1-v2: 1. limit all devices on same bus in guest are on same bus in host in patch For now, for vfio pci passthough devices, when qemu receives an error from host aer report, it just terminate the guest. But usually user want to know what error occurred. So these patches add aer capability support for vfio devices, and pass the error to guest. Then let guest driver to recover from the error. notes: this series patches enable aer support single/multi-function, for multi-function, require all the function of the slot assigned to VM and on the same slot. Chen Fan (11): vfio: extract vfio_get_hot_reset_info as a single function vfio: squeeze out vfio_pci_do_hot_reset for support bus reset vfio: add aer support for vfio device vfio: refine function vfio_pci_host_match vfio: add check host bus reset is support or not pci: add a pci_function_is_valid callback to check function if valid vfio: add check aer functionality for hotplug device vfio: vote the function 0 to do host bus reset when aer occurred vfio-pci: pass the aer error to guest vfio: Add waiting for host aer error progress vfio: add 'aer' property to expose aercap hw/pci/pci.c | 32 +++ hw/vfio/pci.c | 620 ++++++++++++++++++++++++++++++++++++++++----- hw/vfio/pci.h | 6 + include/hw/pci/pci.h | 1 + linux-headers/linux/vfio.h | 4 + 5 files changed, 597 insertions(+), 66 deletions(-) -- 1.8.3.1