lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 24 May 2021 15:38:05 +0200
From:   Paolo Bonzini <pbonzini@...hat.com>
To:     Axel Rasmussen <axelrasmussen@...gle.com>,
        Aaron Lewis <aaronlewis@...gle.com>,
        Alexander Graf <graf@...zon.com>,
        Andrew Jones <drjones@...hat.com>,
        Andrew Morton <akpm@...ux-foundation.org>,
        Ben Gardon <bgardon@...gle.com>,
        Emanuele Giuseppe Esposito <eesposit@...hat.com>,
        Eric Auger <eric.auger@...hat.com>,
        Jacob Xu <jacobhxu@...gle.com>,
        Makarand Sonare <makarandsonare@...gle.com>,
        Oliver Upton <oupton@...gle.com>, Peter Xu <peterx@...hat.com>,
        Shuah Khan <shuah@...nel.org>,
        Yanan Wang <wangyanan55@...wei.com>
Cc:     kvm@...r.kernel.org, linux-kernel@...r.kernel.org,
        linux-kselftest@...r.kernel.org
Subject: Re: [PATCH v2 00/10] KVM: selftests: exercise userfaultfd minor
 faults

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ