Playing with background snapshots in combination with hugetlb and virtio-mem, I found two issues and some reasonable optimizations (skip unprotecting when unregistering).
With virtio-mem (RamDiscardManager), we now won't be allocating unnecessary page tables for unplugged ranges when using uffd-wp with shmem/hugetlb. Cc: Juan Quintela <quint...@redhat.com> (maintainer:Migration) Cc: "Dr. David Alan Gilbert" <dgilb...@redhat.com> (maintainer:Migration) Cc: Peter Xu <pet...@redhat.com> Cc: Andrey Gruzdev <andrey.gruz...@virtuozzo.com> David Hildenbrand (5): migration/ram: Fix populate_read_range() migration/ram: Fix error handling in ram_write_tracking_start() migration/ram: Don't explicitly unprotect when unregistering uffd-wp migration/ram: Rely on used_length for uffd_change_protection() migration/ram: Optimize ram_write_tracking_start() for RamDiscardManager migration/ram.c | 54 ++++++++++++++++++++++++++++++++++++------------- 1 file changed, 40 insertions(+), 14 deletions(-) -- 2.39.0