Hi Shameer,

On 9/4/26 8:05 PM, Shameer Kolothum wrote:
> Hi,
>
> This series adds live migration support for an accelerated SMMUv3
> (-device arm-smmuv3,accel=on) with vfio-pci endpoints on the iommufd
> backend.
>
> The destination replays rather than receives. The stream table, the STEs,
> the CDs and the Stage 1 page tables all live in guest RAM, so once that
> and the registers are restored, the destination walks the stream table
> again and rebuilds the vDEVICE and the nested HWPT for every device.
>
> What the series does:
>
>  - drains the kernel vEVENTQ into the guest event queue when the VM stops,
>    so that pending fault events are not lost (1, 2)
>  - migrates the resolved SMMUv3 feature set in a new smmuv3/accel
>    subsection and fails the load if the two ends differ (3)
>  - replays the guest stream table on the destination and restores the
>    vEVENTQ and the GBPA HWPT (4, 5)
>  - asks VFIO for dirty tracking on the Stage 2 nesting parent (6)
>  - replaces the accel migration blocker with one scoped to CMDQV, which
>    cannot be migrated for now (7)
>
> This depends on the host kernel supporting dirty tracking on the Stage 2
> nesting parent, for assigned devices that cannot track dirty pages
> themselves. A branch based on Jason's iommu page table work is here [0].
>
> Big caveat:
>
> This is not yet tested with a real device that supports migration as I
> do not have a test setup for that. Folks who do have such a setup have
> reached out and are copied here, so hopefully this RFC lets them give
> it a spin and provide some early feedback.

Please could you clarify all the requirements for supporting this
migration scenario (at EP, SMMU and kernel level)?

Thanks in advance

Eric
>
> QEMU branch is here:
>
> https://github.com/shamiali2008/qemu-master/tree/smmuv3-accel-live-migrn-rfcv1
>
> Please let me know your feedback.
>
> Thanks,
> Shameer
> [0]: https://github.com/shamiali2008/linux/commits/iommu_pt_arm64_s2_dbm/ 
>
> Shameer Kolothum (7):
>   hw/arm/smmuv3-accel: Factor out the single vEVENT read
>   hw/arm/smmuv3-accel: Drain the vEVENTQ when the VM stops
>   hw/arm/smmuv3: Migrate the accelerator feature set
>   hw/arm/smmuv3-accel: Add a helper to replay all STEs
>   hw/arm/smmuv3-accel: Restore accelerator state on incoming migration
>   hw/arm/smmuv3-accel: Request dirty tracking on the nesting parent
>   hw/arm/smmuv3: Support migration with accel=on
>
>  hw/arm/smmuv3-accel.h       |   2 +
>  include/hw/arm/smmuv3.h     |   7 +-
>  hw/arm/smmuv3-accel-stubs.c |  17 ++++
>  hw/arm/smmuv3-accel.c       | 192 ++++++++++++++++++++++++++++++++++--
>  hw/arm/smmuv3.c             |   6 +-
>  5 files changed, 210 insertions(+), 14 deletions(-)
>


Reply via email to