lkml.org 
[lkml]   [2021]   [May]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH v2 00/10] KVM: selftests: exercise userfaultfd minor faults
From
Date
On 19/05/21 22:03, Axel Rasmussen wrote:
> Base
> ====
>
> These patches are based upon Andrew Morton's v5.13-rc1-mmots-2021-05-13-17-23
> tag. This is because this series depends on:
>
> - UFFD minor fault support for hugetlbfs (in v5.13-rc1) [1]
> - UFFD minor fault support for shmem (in Andrew's tree) [2]
>
> [1] https://lore.kernel.org/linux-fsdevel/20210301222728.176417-1-axelrasmussen@google.com/
> [2] https://lore.kernel.org/patchwork/cover/1420967/
>
> Changelog
> =========
>
> v1->v2:
> - Picked up Reviewed-by's.
> - Change backing_src_is_shared() to check the flags, instead of the type. This
> makes it robust to adding new backing source types in the future.
> - Add another commit which refactors setup_demand_paging() error handling.
> - Print UFFD ioctl type once in setup_demand_paging, instead of on every page-in
> operation.
> - Expand comment on why we use MFD_HUGETLB instead of MAP_HUGETLB.
> - Reworded comment on addr_gpa2alias.
> - Moved demand_paging_test.c timing calls outside of the if (), deduplicating
> them.
> - Split trivial comment / logging fixups into a separate commit.
> - Add another commit which prints a clarifying message on test skip.
> - Split the commit allowing backing src_type to be modified in two.
> - Split the commit adding the shmem backing type in two.
> - Rebased onto v5.13-rc1-mmots-2021-05-13-17-23.
>
> Overview
> ========
>
> Minor fault handling is a new userfaultfd feature whose goal is generally to
> improve performance. In particular, it is intended for use with demand paging.
> There are more details in the cover letters for this new feature (linked above),
> but at a high level the idea is that we think of these three phases of live
> migration of a VM:
>
> 1. Precopy, where we copy "some" pages from the source to the target, while the
> VM is still running on the source machine.
> 2. Blackout, where execution stops on the source, and begins on the target.
> 3. Postcopy, where the VM is running on the target, some pages are already up
> to date, and others are not (because they weren't copied, or were modified
> after being copied).
>
> During postcopy, the first time the guest touches memory, we intercept a minor
> fault. Userspace checks whether or not the page is already up to date. If
> needed, we copy the final version of the page from the soure machine. This
> could be done with RDMA for example, to do it truly in place / with no copying.
> At this point, all that's left is to setup PTEs for the guest: so we issue
> UFFDIO_CONTINUE. No copying or page allocation needed.
>
> Because of this use case, it's useful to exercise this as part of the demand
> paging test. It lets us ensure the use case works correctly end-to-end, and also
> gives us an in-tree way to profile the end-to-end flow for future performance
> improvements.
>
> Axel Rasmussen (10):
> KVM: selftests: trivial comment/logging fixes
> KVM: selftests: simplify setup_demand_paging error handling
> KVM: selftests: print a message when skipping KVM tests
> KVM: selftests: compute correct demand paging size
> KVM: selftests: allow different backing source types
> KVM: selftests: refactor vm_mem_backing_src_type flags
> KVM: selftests: add shmem backing source type
> KVM: selftests: create alias mappings when using shared memory
> KVM: selftests: allow using UFFD minor faults for demand paging
> KVM: selftests: add shared hugetlbfs backing source type
>
> .../selftests/kvm/demand_paging_test.c | 175 +++++++++++-------
> .../testing/selftests/kvm/include/kvm_util.h | 1 +
> .../testing/selftests/kvm/include/test_util.h | 12 ++
> tools/testing/selftests/kvm/lib/kvm_util.c | 84 ++++++++-
> .../selftests/kvm/lib/kvm_util_internal.h | 2 +
> tools/testing/selftests/kvm/lib/test_util.c | 51 +++--
> 6 files changed, 238 insertions(+), 87 deletions(-)
>
> --
> 2.31.1.751.gd2f1c929bd-goog
>

Queued, thanks (with region->fd moved to the right patch).

Paolo

\
 
 \ /
  Last update: 2021-05-24 15:39    [W:0.134 / U:1.084 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site