On 10/5/26 8:16 PM, Konstantin Shkolnyy wrote:
> ATTENTION! This series is built to apply on top of https://gitlab.com/efarman/qemu/-/tree/s390-next.
>
> Up until now QEMU marked any zPCI device as "unmigratable."
>
> This patch series adds support for migrating emulated devices, which are
> simpler to migrate. It leaves VFIO devices still unmigratable.
>
> To enable migration, the device state needs to be saved/restored to/from
> the migration stream.
>
> There are 2 kinds of emulated devices - those that use the zPCI IOMMU page
> table emulation in QEMU (e.g., Intel IGB NIC), and those that don't (virtio).
> This is important to note for testing purposes.
>
> This change was tested on IGB, virtio-net and virtio-blk devices by running
> I/O on them while performing "virsh managedsave, virsh start" and also live
> migration to another host and back.
>
> Changes in v12:
> - patch 14: Add a message to an error path that didn't have it.
> - patch 15: New. Extract here an isolated change from the next patch to make it smaller.
> - patch 16 (formerly 15):
> - Simplify error handling on s390_pci_ioat_validate() failure,
> - Put an assert() with a comment into unreacheable branch.
>
> Konstantin Shkolnyy (16):
> s390x/pci: Create function to contain translation status check
> s390x/pci: Move iommu_mr from S390PCIIOMMU to S390PCIBusDevice
> s390x/pci: Move dm_mr from S390PCIIOMMU to S390PCIBusDevice
> s390x/pci: Move iotlb from S390PCIIOMMU to S390PCIBusDevice
> s390x/pci: Remove a ptr to S390PCIBusDevice from S390PCIIOMMU
> s390x/pci: Move/rename enabled from S390PCIIOMMU to S390PCIBusDevice
> s390x/pci: Move dma_limit from S390PCIIOMMU to S390PCIBusDevice
> s390x/pci: Move g_iota from S390PCIIOMMU to S390PCIBusDevice
> s390x/pci: Move pba from S390PCIIOMMU to S390PCIBusDevice
> s390x/pci: Move pal from S390PCIIOMMU to S390PCIBusDevice
> s390x/pci: Move max_dma_limit from S390PCIIOMMU to S390PCIBusDevice
> s390x/pci: Add a comment explaining S390PCIIOMMU purpose
> s390x/pci: Move ioat sanity checks into new function, add error
> message
> s390x/pci: Provide each zpci device with a unique stable bus "path"
> s390x/pci: Implement migration for emulated devices
> s390x/pci: Create function to contain fmb_timer start
>
> Matthew Rosato (1):
> s390x/pci: implement IOMMU replay
>
> hw/s390x/s390-pci-bus.c | 528 +++++++++++++++++++++++++++----
> hw/s390x/s390-pci-inst.c | 174 +++++-----
> hw/s390x/s390-pci-vfio.c | 4 +-
> hw/s390x/s390-virtio-ccw.c | 4 +
> include/hw/s390x/s390-pci-bus.h | 43 ++-
> include/hw/s390x/s390-pci-inst.h | 7 +-
> 6 files changed, 611 insertions(+), 149 deletions(-)
>
Applied to the s390x queue for 11.2; thank you!