mbox series

[v1,0/5] migration/ram: background snapshot fixes and optimiations

Message ID 20230105124528.93813-1-david@redhat.com
Headers show
Series migration/ram: background snapshot fixes and optimiations | expand

Message

David Hildenbrand Jan. 5, 2023, 12:45 p.m. UTC
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 <quintela@redhat.com> (maintainer:Migration)
Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com> (maintainer:Migration)
Cc: Peter Xu <peterx@redhat.com>
Cc: Andrey Gruzdev <andrey.gruzdev@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(-)

Comments

Peter Xu Jan. 5, 2023, 9:11 p.m. UTC | #1
On Thu, Jan 05, 2023 at 01:45:23PM +0100, David Hildenbrand wrote:
> 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 <quintela@redhat.com> (maintainer:Migration)
> Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com> (maintainer:Migration)
> Cc: Peter Xu <peterx@redhat.com>
> Cc: Andrey Gruzdev <andrey.gruzdev@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

For the series:

Acked-by: Peter Xu <peterx@redhat.com>

Thanks,
David Hildenbrand Jan. 9, 2023, 8:37 a.m. UTC | #2
On 05.01.23 22:11, Peter Xu wrote:
> On Thu, Jan 05, 2023 at 01:45:23PM +0100, David Hildenbrand wrote:
>> 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 <quintela@redhat.com> (maintainer:Migration)
>> Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com> (maintainer:Migration)
>> Cc: Peter Xu <peterx@redhat.com>
>> Cc: Andrey Gruzdev <andrey.gruzdev@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
> 
> For the series:
> 
> Acked-by: Peter Xu <peterx@redhat.com>

Thanks!
David Hildenbrand Jan. 23, 2023, 2:27 p.m. UTC | #3
On 05.01.23 13:45, David Hildenbrand wrote:
> 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 <quintela@redhat.com> (maintainer:Migration)
> Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com> (maintainer:Migration)
> Cc: Peter Xu <peterx@redhat.com>
> Cc: Andrey Gruzdev <andrey.gruzdev@virtuozzo.com>

@Juan, David: I can take this via my tree (especially the last patch 
only optimized virtio-mem for now). Just let me know.
Juan Quintela Feb. 2, 2023, 11:21 a.m. UTC | #4
David Hildenbrand <david@redhat.com> wrote:
> On 05.01.23 13:45, David Hildenbrand wrote:
>> 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 <quintela@redhat.com> (maintainer:Migration)
>> Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com> (maintainer:Migration)
>> Cc: Peter Xu <peterx@redhat.com>
>> Cc: Andrey Gruzdev <andrey.gruzdev@virtuozzo.com>
>
> @Juan, David: I can take this via my tree (especially the last patch
> only optimized virtio-mem for now). Just let me know.

I reviewed everything now.

Queued on my tree.

Later, Juan.