On 06/03/2023 17:23, Cédric Le Goater wrote: > On 3/4/23 02:43, Joao Martins 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. > > It would be helpful to have some feed back from Avihai on the new patches > introduced in v3 or v4 before merging. > I am gonna let him comment but Avihai is definitely looking/testing it too e.g. one comment he mentioned to me that I have slated preemptively for v4 too is to remove the 2 unnecessary iova-tree.h includes in patch 7 (given that I removed the IOVATree need at all).
> Also, (being curious) did you test migration with a TCG guest ? > KVM guests only. Joao