migration/ram: Don't explicitly unprotect when unregistering uffd-wp
When unregistering uffd-wp, older kernels before commit f369b07c86143 ("mm/uffd:reset write protection when unregister with wp-mode") won't clear the uffd-wp PTE bit. When re-registering uffd-wp, the previous uffd-wp PTE bits would trigger again. With above commit, the kernel will clear the uffd-wp PTE bits when unregistering itself. Consequently, we'll clear the uffd-wp PTE bits now twice -- whereby we don't care about clearing them at all: a new background snapshot will re-register uffd-wp and re-protect all memory either way. So let's skip the manual clearing of uffd-wp. If ever relevant, we could clear conditionally in uffd_unregister_memory() -- we just need a way to figure out more recent kernels. Reviewed-by: Peter Xu <peterx@redhat.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Signed-off-by: David Hildenbrand <david@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
This commit is contained in:
parent
72ef3a3708
commit
7cc8e9e0fa
@ -1918,12 +1918,6 @@ fail:
|
||||
if ((block->flags & RAM_UF_WRITEPROTECT) == 0) {
|
||||
continue;
|
||||
}
|
||||
/*
|
||||
* In case some memory block failed to be write-protected
|
||||
* remove protection and unregister all succeeded RAM blocks
|
||||
*/
|
||||
uffd_change_protection(rs->uffdio_fd, block->host, block->max_length,
|
||||
false, false);
|
||||
uffd_unregister_memory(rs->uffdio_fd, block->host, block->max_length);
|
||||
/* Cleanup flags and remove reference */
|
||||
block->flags &= ~RAM_UF_WRITEPROTECT;
|
||||
@ -1949,9 +1943,6 @@ void ram_write_tracking_stop(void)
|
||||
if ((block->flags & RAM_UF_WRITEPROTECT) == 0) {
|
||||
continue;
|
||||
}
|
||||
/* Remove protection and unregister all affected RAM blocks */
|
||||
uffd_change_protection(rs->uffdio_fd, block->host, block->max_length,
|
||||
false, false);
|
||||
uffd_unregister_memory(rs->uffdio_fd, block->host, block->max_length);
|
||||
|
||||
trace_ram_write_tracking_ramblock_stop(block->idstr, block->page_size,
|
||||
|
Loading…
Reference in New Issue
Block a user