Messages in this thread | | | From | Peter Xu <> | Subject | [PATCH v4 0/2] mm/uffd: Add feature bit UFFD_FEATURE_WP_UNPOPULATED | Date | Thu, 9 Mar 2023 17:37:09 -0500 |
| |
v1: https://lore.kernel.org/r/20230215210257.224243-1-peterx@redhat.com v2: https://lore.kernel.org/r/20230227230044.1596744-1-peterx@redhat.com v3: https://lore.kernel.org/r/20230306213925.617814-1-peterx@redhat.com
v4: - s/handle_pte_missing/do_pte_missing/, fix spellings, etc. [David] - Add a helper userfaultfd_wp_use_markers() [David] - Update userfaultfd.rst describing the new feature bit
The new feature bit will make anonymous memory acts the same like file memory on userfaultfd-wp in that it'll also wr-protect none ptes.
It can be useful in two cases:
(1) Uffd-wp app that needs to wr-protect none ptes like QEMU snapshot, so pre-fault can be replaced by enabling this flag and speed up protections
(2) It helps to implement async uffd-wp mode that Muhammad is working on [1]
It's debateable whether this is the most ideal solution because with the new feature bit set, wr-protect none pte needs to pre-populate the pgtables to the last level (PAGE_SIZE). But it seems fine so far to service either purpose above, so we can leave optimizations for later.
The series brings pte markers to anonymous memory too. There's some change in the common mm code path in the 1st patch, great to have some eye looking at it, but hopefully they're still relatively straightforward.
Thanks,
[1] https://lore.kernel.org/all/Y+v2HJ8+3i%2FKzDBu@x1n/
Peter Xu (2): mm/uffd: UFFD_FEATURE_WP_UNPOPULATED selftests/mm: Smoke test UFFD_FEATURE_WP_UNPOPULATED
Documentation/admin-guide/mm/userfaultfd.rst | 17 ++++++ fs/userfaultfd.c | 16 ++++++ include/linux/mm_inline.h | 6 +++ include/linux/userfaultfd_k.h | 23 ++++++++ include/uapi/linux/userfaultfd.h | 10 +++- mm/memory.c | 56 +++++++++++++++----- mm/mprotect.c | 51 ++++++++++++++---- tools/testing/selftests/mm/userfaultfd.c | 45 +++++++++++++++- 8 files changed, 197 insertions(+), 27 deletions(-)
-- 2.39.1
| |