summaryrefslogtreecommitdiff
path: root/tools/testing/selftests/mm/uffd-common.h
diff options
context:
space:
mode:
authorPeter Xu <peterx@redhat.com>2023-04-12 19:43:41 +0300
committerAndrew Morton <akpm@linux-foundation.org>2023-04-19 02:30:06 +0300
commit0210c43ef623a3c35cafd7dbe25b1b3c1699e7e9 (patch)
treea62b79317977942d74681ba23d931c8d0aa9a173 /tools/testing/selftests/mm/uffd-common.h
parent508340845dd1423b6c81fccf082039dff202fb9f (diff)
downloadlinux-0210c43ef623a3c35cafd7dbe25b1b3c1699e7e9.tar.xz
selftests/mm: let uffd_handle_page_fault() take wp parameter
Make the handler optionally apply WP bit when resolving page faults for either missing or minor page faults. This moves towards removing global test_uffdio_wp outside of the common code. Link: https://lkml.kernel.org/r/20230412164341.328618-1-peterx@redhat.com Signed-off-by: Peter Xu <peterx@redhat.com> Cc: Axel Rasmussen <axelrasmussen@google.com> Cc: David Hildenbrand <david@redhat.com> Cc: Dmitry Safonov <0x7f454c46@gmail.com> Cc: Mike Kravetz <mike.kravetz@oracle.com> Cc: Mike Rapoport (IBM) <rppt@kernel.org> Cc: Zach O'Keefe <zokeefe@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Diffstat (limited to 'tools/testing/selftests/mm/uffd-common.h')
-rw-r--r--tools/testing/selftests/mm/uffd-common.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/tools/testing/selftests/mm/uffd-common.h b/tools/testing/selftests/mm/uffd-common.h
index f8d2ad178827..0ec07d025cfe 100644
--- a/tools/testing/selftests/mm/uffd-common.h
+++ b/tools/testing/selftests/mm/uffd-common.h
@@ -72,6 +72,8 @@
/* Userfaultfd test statistics */
struct uffd_args {
int cpu;
+ /* Whether apply wr-protects when installing pages */
+ bool apply_wp;
unsigned long missing_faults;
unsigned long wp_faults;
unsigned long minor_faults;
@@ -104,8 +106,8 @@ void userfaultfd_open(uint64_t *features);
int uffd_read_msg(int ufd, struct uffd_msg *msg);
void wp_range(int ufd, __u64 start, __u64 len, bool wp);
void uffd_handle_page_fault(struct uffd_msg *msg, struct uffd_args *args);
-int __copy_page(int ufd, unsigned long offset, bool retry);
-int copy_page(int ufd, unsigned long offset);
+int __copy_page(int ufd, unsigned long offset, bool retry, bool wp);
+int copy_page(int ufd, unsigned long offset, bool wp);
void *uffd_poll_thread(void *arg);
#define TEST_ANON 1