(kostja@f0)/git/vzkernel.vz10:git describe --contains 9d1483818de4f kernel-6.12.0-65.el10~6^2
(kostja@f0)/git/vzkernel.vz10:git l tools/testing/selftests/mm/memfd_secret.c 9d1483818de4f Revert "selftests/mm: remove local __NR_* definitions" => already in RHEL10.2 -- Best regards, Konstantin Khorenko, Virtuozzo Linux Kernel Team On 6/15/26 22:42, Eva Kurchatova wrote: > From: John Hubbard <[email protected]> > > This reverts commit a5c6bc590094a1a73cf6fa3f505e1945d2bf2461. > > The general approach described in commit e076eaca5906 ("selftests: break > the dependency upon local header files") was taken one step too far here: > it should not have been extended to include the syscall numbers. This is > because doing so would require per-arch support in tools/include/uapi, and > no such support exists. > > This revert fixes two separate reports of test failures, from Dave > Hansen[1], and Li Wang[2]. An excerpt of Dave's report: > > Before this commit (a5c6bc590094a1a73cf6fa3f505e1945d2bf2461) things are > fine. But after, I get: > > running PKEY tests for unsupported CPU/OS > > An excerpt of Li's report: > > I just found that mlock2_() return a wrong value in mlock2-test > > [1] https://lore.kernel.org/[email protected] > [2] > https://lore.kernel.org/CAEemH2eW=umu9+turt2jrie7+6ewuazxma6kl+vbo3cgdgu...@mail.gmail.com > > Link: https://lkml.kernel.org/r/[email protected] > Fixes: a5c6bc590094 ("selftests/mm: remove local __NR_* definitions") > Signed-off-by: John Hubbard <[email protected]> > Cc: Dave Hansen <[email protected]> > Cc: Li Wang <[email protected]> > Cc: David Hildenbrand <[email protected]> > Cc: Jeff Xu <[email protected]> > Cc: Andrei Vagin <[email protected]> > Cc: Axel Rasmussen <[email protected]> > Cc: Christian Brauner <[email protected]> > Cc: Kees Cook <[email protected]> > Cc: Kent Overstreet <[email protected]> > Cc: Liam R. Howlett <[email protected]> > Cc: Muhammad Usama Anjum <[email protected]> > Cc: Peter Xu <[email protected]> > Cc: Rich Felker <[email protected]> > Cc: Shuah Khan <[email protected]> > Cc: <[email protected]> > Signed-off-by: Andrew Morton <[email protected]> > > (cherry picked from commit 0a7565ee6ec31eb16c0476adbfc1af3f2271cb6b) > Signed-off-by: Eva Kurchatova <[email protected]> > > https://virtuozzo.atlassian.net/browse/VSTOR-134200 > Feature: fix selftests > --- > tools/testing/selftests/mm/hugepage-mremap.c | 2 +- > tools/testing/selftests/mm/ksm_functional_tests.c | 8 +++++++- > tools/testing/selftests/mm/memfd_secret.c | 14 +++++++++++++- > tools/testing/selftests/mm/mkdirty.c | 8 +++++++- > tools/testing/selftests/mm/mlock2.h | 1 - > tools/testing/selftests/mm/protection_keys.c | 2 +- > tools/testing/selftests/mm/uffd-common.c | 4 ++++ > tools/testing/selftests/mm/uffd-stress.c | 15 ++++++++++++++- > tools/testing/selftests/mm/uffd-unit-tests.c | 14 +++++++++++++- > 9 files changed, 60 insertions(+), 8 deletions(-) > > diff --git a/tools/testing/selftests/mm/hugepage-mremap.c > b/tools/testing/selftests/mm/hugepage-mremap.c > index ada9156cc497..c463d1c09c9b 100644 > --- a/tools/testing/selftests/mm/hugepage-mremap.c > +++ b/tools/testing/selftests/mm/hugepage-mremap.c > @@ -15,7 +15,7 @@ > #define _GNU_SOURCE > #include <stdlib.h> > #include <stdio.h> > -#include <asm-generic/unistd.h> > +#include <unistd.h> > #include <sys/mman.h> > #include <errno.h> > #include <fcntl.h> /* Definition of O_* constants */ > diff --git a/tools/testing/selftests/mm/ksm_functional_tests.c > b/tools/testing/selftests/mm/ksm_functional_tests.c > index 66b4e111b5a2..b61803e36d1c 100644 > --- a/tools/testing/selftests/mm/ksm_functional_tests.c > +++ b/tools/testing/selftests/mm/ksm_functional_tests.c > @@ -11,7 +11,7 @@ > #include <string.h> > #include <stdbool.h> > #include <stdint.h> > -#include <asm-generic/unistd.h> > +#include <unistd.h> > #include <errno.h> > #include <fcntl.h> > #include <sys/mman.h> > @@ -369,6 +369,7 @@ static void test_unmerge_discarded(void) > munmap(map, size); > } > > +#ifdef __NR_userfaultfd > static void test_unmerge_uffd_wp(void) > { > struct uffdio_writeprotect uffd_writeprotect; > @@ -429,6 +430,7 @@ static void test_unmerge_uffd_wp(void) > unmap: > munmap(map, size); > } > +#endif > > /* Verify that KSM can be enabled / queried with prctl. */ > static void test_prctl(void) > @@ -684,7 +686,9 @@ int main(int argc, char **argv) > exit(test_child_ksm()); > } > > +#ifdef __NR_userfaultfd > tests++; > +#endif > > ksft_print_header(); > ksft_set_plan(tests); > @@ -696,7 +700,9 @@ int main(int argc, char **argv) > test_unmerge(); > test_unmerge_zero_pages(); > test_unmerge_discarded(); > +#ifdef __NR_userfaultfd > test_unmerge_uffd_wp(); > +#endif > > test_prot_none(); > > diff --git a/tools/testing/selftests/mm/memfd_secret.c > b/tools/testing/selftests/mm/memfd_secret.c > index 74c911aa3aea..9a0597310a76 100644 > --- a/tools/testing/selftests/mm/memfd_secret.c > +++ b/tools/testing/selftests/mm/memfd_secret.c > @@ -17,7 +17,7 @@ > > #include <stdlib.h> > #include <string.h> > -#include <asm-generic/unistd.h> > +#include <unistd.h> > #include <errno.h> > #include <stdio.h> > #include <fcntl.h> > @@ -28,6 +28,8 @@ > #define pass(fmt, ...) ksft_test_result_pass(fmt, ##__VA_ARGS__) > #define skip(fmt, ...) ksft_test_result_skip(fmt, ##__VA_ARGS__) > > +#ifdef __NR_memfd_secret > + > #define PATTERN 0x55 > > static const int prot = PROT_READ | PROT_WRITE; > @@ -332,3 +334,13 @@ int main(int argc, char *argv[]) > > ksft_finished(); > } > + > +#else /* __NR_memfd_secret */ > + > +int main(int argc, char *argv[]) > +{ > + printf("skip: skipping memfd_secret test (missing > __NR_memfd_secret)\n"); > + return KSFT_SKIP; > +} > + > +#endif /* __NR_memfd_secret */ > diff --git a/tools/testing/selftests/mm/mkdirty.c > b/tools/testing/selftests/mm/mkdirty.c > index 1db134063c38..b8a7efe9204e 100644 > --- a/tools/testing/selftests/mm/mkdirty.c > +++ b/tools/testing/selftests/mm/mkdirty.c > @@ -9,7 +9,7 @@ > */ > #include <fcntl.h> > #include <signal.h> > -#include <asm-generic/unistd.h> > +#include <unistd.h> > #include <string.h> > #include <errno.h> > #include <stdlib.h> > @@ -265,6 +265,7 @@ static void test_pte_mapped_thp(void) > munmap(mmap_mem, mmap_size); > } > > +#ifdef __NR_userfaultfd > static void test_uffdio_copy(void) > { > struct uffdio_register uffdio_register; > @@ -321,6 +322,7 @@ static void test_uffdio_copy(void) > munmap(dst, pagesize); > free(src); > } > +#endif /* __NR_userfaultfd */ > > int main(void) > { > @@ -333,7 +335,9 @@ int main(void) > thpsize / 1024); > tests += 3; > } > +#ifdef __NR_userfaultfd > tests += 1; > +#endif /* __NR_userfaultfd */ > > ksft_print_header(); > ksft_set_plan(tests); > @@ -363,7 +367,9 @@ int main(void) > if (thpsize) > test_pte_mapped_thp(); > /* Placing a fresh page via userfaultfd may set the PTE dirty. */ > +#ifdef __NR_userfaultfd > test_uffdio_copy(); > +#endif /* __NR_userfaultfd */ > > err = ksft_get_fail_cnt(); > if (err) > diff --git a/tools/testing/selftests/mm/mlock2.h > b/tools/testing/selftests/mm/mlock2.h > index 1e5731bab499..4417eaa5cfb7 100644 > --- a/tools/testing/selftests/mm/mlock2.h > +++ b/tools/testing/selftests/mm/mlock2.h > @@ -3,7 +3,6 @@ > #include <errno.h> > #include <stdio.h> > #include <stdlib.h> > -#include <asm-generic/unistd.h> > > static int mlock2_(void *start, size_t len, int flags) > { > diff --git a/tools/testing/selftests/mm/protection_keys.c > b/tools/testing/selftests/mm/protection_keys.c > index 4990f7ab4cb7..4fcecfb7b189 100644 > --- a/tools/testing/selftests/mm/protection_keys.c > +++ b/tools/testing/selftests/mm/protection_keys.c > @@ -42,7 +42,7 @@ > #include <sys/wait.h> > #include <sys/stat.h> > #include <fcntl.h> > -#include <asm-generic/unistd.h> > +#include <unistd.h> > #include <sys/ptrace.h> > #include <setjmp.h> > > diff --git a/tools/testing/selftests/mm/uffd-common.c > b/tools/testing/selftests/mm/uffd-common.c > index 717539eddf98..7ad6ba660c7d 100644 > --- a/tools/testing/selftests/mm/uffd-common.c > +++ b/tools/testing/selftests/mm/uffd-common.c > @@ -673,7 +673,11 @@ int uffd_open_dev(unsigned int flags) > > int uffd_open_sys(unsigned int flags) > { > +#ifdef __NR_userfaultfd > return syscall(__NR_userfaultfd, flags); > +#else > + return -1; > +#endif > } > > int uffd_open(unsigned int flags) > diff --git a/tools/testing/selftests/mm/uffd-stress.c > b/tools/testing/selftests/mm/uffd-stress.c > index a4b83280998a..944d559ade21 100644 > --- a/tools/testing/selftests/mm/uffd-stress.c > +++ b/tools/testing/selftests/mm/uffd-stress.c > @@ -33,10 +33,11 @@ > * pthread_mutex_lock will also verify the atomicity of the memory > * transfer (UFFDIO_COPY). > */ > -#include <asm-generic/unistd.h> > + > #include "uffd-common.h" > > uint64_t features; > +#ifdef __NR_userfaultfd > > #define BOUNCE_RANDOM (1<<0) > #define BOUNCE_RACINGFAULTS (1<<1) > @@ -471,3 +472,15 @@ int main(int argc, char **argv) > nr_pages, nr_pages_per_cpu); > return userfaultfd_stress(); > } > + > +#else /* __NR_userfaultfd */ > + > +#warning "missing __NR_userfaultfd definition" > + > +int main(void) > +{ > + printf("skip: Skipping userfaultfd test (missing __NR_userfaultfd)\n"); > + return KSFT_SKIP; > +} > + > +#endif /* __NR_userfaultfd */ > diff --git a/tools/testing/selftests/mm/uffd-unit-tests.c > b/tools/testing/selftests/mm/uffd-unit-tests.c > index 795bba310151..37c3549075bb 100644 > --- a/tools/testing/selftests/mm/uffd-unit-tests.c > +++ b/tools/testing/selftests/mm/uffd-unit-tests.c > @@ -5,11 +5,12 @@ > * Copyright (C) 2015-2023 Red Hat, Inc. > */ > > -#include <asm-generic/unistd.h> > #include "uffd-common.h" > > #include "../../../../mm/gup_test.h" > > +#ifdef __NR_userfaultfd > + > /* The unit test doesn't need a large or random size, make it 32MB for now */ > #define UFFD_TEST_MEM_SIZE (32UL << 20) > > @@ -1558,3 +1559,14 @@ int main(int argc, char *argv[]) > return ksft_get_fail_cnt() ? KSFT_FAIL : KSFT_PASS; > } > > +#else /* __NR_userfaultfd */ > + > +#warning "missing __NR_userfaultfd definition" > + > +int main(void) > +{ > + printf("Skipping %s (missing __NR_userfaultfd)\n", __file__); > + return KSFT_SKIP; > +} > + > +#endif /* __NR_userfaultfd */ _______________________________________________ Devel mailing list [email protected] https://lists.openvz.org/mailman/listinfo/devel
