On Sat, 4 Mar 2023 01:43:30 +0000 Joao Martins <joao.m.mart...@oracle.com> wrote:
> Hey, > > Presented herewith a series based on the basic VFIO migration protocol v2 > implementation [1]. > > It is split from its parent series[5] to solely focus on device dirty > page tracking. Device dirty page tracking allows the VFIO device to > record its DMAs and report them back when needed. This is part of VFIO > migration and is used during pre-copy phase of migration to track the > RAM pages that the device has written to and mark those pages dirty, so > they can later be re-sent to target. > > Device dirty page tracking uses the DMA logging uAPI to discover device > capabilities, to start and stop tracking, and to get dirty page bitmap > report. Extra details and uAPI definition can be found here [3]. > > Device dirty page tracking operates in VFIOContainer scope. I.e., When > dirty tracking is started, stopped or dirty page report is queried, all > devices within a VFIOContainer are iterated and for each of them device > dirty page tracking is started, stopped or dirty page report is queried, > respectively. > > Device dirty page tracking is used only if all devices within a > VFIOContainer support it. Otherwise, VFIO IOMMU dirty page tracking is > used, and if that is not supported as well, memory is perpetually marked > dirty by QEMU. Note that since VFIO IOMMU dirty page tracking has no HW > support, the last two usually have the same effect of perpetually > marking all pages dirty. > > Normally, when asked to start dirty tracking, all the currently DMA > mapped ranges are tracked by device dirty page tracking. If using a > vIOMMU we block live migration. It's temporary and a separate series is > going to add support for it. Thus this series focus on getting the > ground work first. > > The series is organized as follows: > > - Patches 1-7: Fix bugs and do some preparatory work required prior to > adding device dirty page tracking. > - Patches 8-10: Implement device dirty page tracking. > - Patch 11: Blocks live migration with vIOMMU. > - Patches 12-13 enable device dirty page tracking and document it. > > Comments, improvements as usual appreciated. Still some CI failures: https://gitlab.com/alex.williamson/qemu/-/pipelines/796657474 The docker failures are normal, afaict the rest are not. Thanks, Alex