mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-22 23:48:36 -07:00
vfio-pci: preserve MSI
Save the MSI message area as part of vfio-pci vmstate, and preserve the interrupt and notifier eventfd's. migrate_incoming loads the MSI data, then the vfio-pci post_load handler finds the eventfds in CPR state, rebuilds vector data structures, and attaches the interrupts to the new KVM instance. Signed-off-by: Steve Sistare <steven.sistare@oracle.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Link: https://lore.kernel.org/qemu-devel/1751493538-202042-2-git-send-email-steven.sistare@oracle.com Signed-off-by: Cédric Le Goater <clg@redhat.com>
This commit is contained in:
parent
3f2a36d0ef
commit
30edcb4d4e
4 changed files with 157 additions and 2 deletions
|
|
@ -15,6 +15,7 @@
|
|||
struct VFIOContainer;
|
||||
struct VFIOContainerBase;
|
||||
struct VFIOGroup;
|
||||
struct VFIOPCIDevice;
|
||||
|
||||
typedef int (*dma_map_fn)(const struct VFIOContainerBase *bcontainer,
|
||||
hwaddr iova, ram_addr_t size, void *vaddr,
|
||||
|
|
@ -53,6 +54,13 @@ void vfio_cpr_giommu_remap(struct VFIOContainerBase *bcontainer,
|
|||
bool vfio_cpr_ram_discard_register_listener(
|
||||
struct VFIOContainerBase *bcontainer, MemoryRegionSection *section);
|
||||
|
||||
void vfio_cpr_save_vector_fd(struct VFIOPCIDevice *vdev, const char *name,
|
||||
int nr, int fd);
|
||||
int vfio_cpr_load_vector_fd(struct VFIOPCIDevice *vdev, const char *name,
|
||||
int nr);
|
||||
void vfio_cpr_delete_vector_fd(struct VFIOPCIDevice *vdev, const char *name,
|
||||
int nr);
|
||||
|
||||
extern const VMStateDescription vfio_cpr_pci_vmstate;
|
||||
|
||||
#endif /* HW_VFIO_VFIO_CPR_H */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue