mbox series

[v3,00/10] selftests/mm: Some cleanups from trying to run them

Message ID 20250228-mm-selftests-v3-0-958e3b6f0203@google.com (mailing list archive)
Headers show
Series selftests/mm: Some cleanups from trying to run them | expand

Message

Brendan Jackman Feb. 28, 2025, 4:54 p.m. UTC
I never had much luck running mm selftests so I spent a few hours
digging into why.

Looks like most of the reason is missing SKIP checks, so this series is
just adding a bunch of those that I found. I did not do anything like
all of them, just the ones I spotted in gup_longterm, gup_test, mmap,
userfaultfd and memfd_secret.

It's a bit unfortunate to have to skip those tests when ftruncate()
fails, but I don't have time to dig deep enough into it to actually make
them pass. I have observed the issue on 9pfs and heard rumours that NFS
has a similar problem.

I'm now able to run these test groups successfully:

- mmap
- gup_test
- compaction
- migration
- page_frag
- userfaultfd

Signed-off-by: Brendan Jackman <jackmanb@google.com>
---
Changes in v3:
- Added fix for userfaultfd tests.
- Dropped attempts to use sudo.
- Fixed garbage printf in uffd-stress.
  (Added EXTRA_CFLAGS=-Werror FORCE_TARGETS=1 to my scripts to prevent
   such errors happening again).
- Fixed missing newlines in ksft_test_result_skip() calls.
- Link to v2: https://lore.kernel.org/r/20250221-mm-selftests-v2-0-28c4d66383c5@google.com

Changes in v2 (Thanks to Dev for the reviews):
- Improve and cleanup some error messages
- Add some extra SKIPs
- Fix misnaming of nr_cpus variable in uffd tests
- Link to v1: https://lore.kernel.org/r/20250220-mm-selftests-v1-0-9bbf57d64463@google.com

---
Brendan Jackman (10):
      selftests/mm: Report errno when things fail in gup_longterm
      selftests/mm: Skip uffd-stress if userfaultfd not available
      selftests/mm: Skip uffd-wp-mremap if userfaultfd not available
      selftests/mm/uffd: Rename nr_cpus -> nr_threads
      selftests/mm: Print some details when uffd-stress gets bad params
      selftests/mm: Don't fail uffd-stress if too many CPUs
      selftests/mm: Skip map_populate on weird filesystems
      selftests/mm: Skip gup_longerm tests on weird filesystems
      selftests/mm: Drop unnecessary sudo usage
      selftests/mm: Ensure uffd-wp-mremap gets pages of each size

 tools/testing/selftests/mm/gup_longterm.c    | 45 ++++++++++++++++++----------
 tools/testing/selftests/mm/map_populate.c    |  7 +++++
 tools/testing/selftests/mm/run_vmtests.sh    | 25 ++++++++++++++--
 tools/testing/selftests/mm/uffd-common.c     |  8 ++---
 tools/testing/selftests/mm/uffd-common.h     |  2 +-
 tools/testing/selftests/mm/uffd-stress.c     | 42 ++++++++++++++++----------
 tools/testing/selftests/mm/uffd-unit-tests.c |  2 +-
 tools/testing/selftests/mm/uffd-wp-mremap.c  |  5 +++-
 8 files changed, 95 insertions(+), 41 deletions(-)
---
base-commit: 76544811c850a1f4c055aa182b513b7a843868ea
change-id: 20250220-mm-selftests-2d7d0542face

Best regards,

Comments

Muhammad Usama Anjum March 5, 2025, 8:25 a.m. UTC | #1
Hi,

Thanks for adding to the series Dev Jain. The series looks good. Thanks for doing
such a series. It helps everyone.

For the series:
Reviewed-by: Muhammad Usama Anjum <usama.anjum@collabora.com>

On 2/28/25 9:54 PM, Brendan Jackman wrote:
> I never had much luck running mm selftests so I spent a few hours
> digging into why.
> 
> Looks like most of the reason is missing SKIP checks, so this series is
> just adding a bunch of those that I found. I did not do anything like
> all of them, just the ones I spotted in gup_longterm, gup_test, mmap,
> userfaultfd and memfd_secret.
> 
> It's a bit unfortunate to have to skip those tests when ftruncate()
> fails, but I don't have time to dig deep enough into it to actually make
> them pass. I have observed the issue on 9pfs and heard rumours that NFS
> has a similar problem.
> 
> I'm now able to run these test groups successfully:
> 
> - mmap
> - gup_test
> - compaction
> - migration
> - page_frag
> - userfaultfd
> 
> Signed-off-by: Brendan Jackman <jackmanb@google.com>
> ---
> Changes in v3:
> - Added fix for userfaultfd tests.
> - Dropped attempts to use sudo.
> - Fixed garbage printf in uffd-stress.
>   (Added EXTRA_CFLAGS=-Werror FORCE_TARGETS=1 to my scripts to prevent
>    such errors happening again).
> - Fixed missing newlines in ksft_test_result_skip() calls.
> - Link to v2: https://lore.kernel.org/r/20250221-mm-selftests-v2-0-28c4d66383c5@google.com
> 
> Changes in v2 (Thanks to Dev for the reviews):
> - Improve and cleanup some error messages
> - Add some extra SKIPs
> - Fix misnaming of nr_cpus variable in uffd tests
> - Link to v1: https://lore.kernel.org/r/20250220-mm-selftests-v1-0-9bbf57d64463@google.com
> 
> ---
> Brendan Jackman (10):
>       selftests/mm: Report errno when things fail in gup_longterm
>       selftests/mm: Skip uffd-stress if userfaultfd not available
>       selftests/mm: Skip uffd-wp-mremap if userfaultfd not available
>       selftests/mm/uffd: Rename nr_cpus -> nr_threads
>       selftests/mm: Print some details when uffd-stress gets bad params
>       selftests/mm: Don't fail uffd-stress if too many CPUs
>       selftests/mm: Skip map_populate on weird filesystems
>       selftests/mm: Skip gup_longerm tests on weird filesystems
>       selftests/mm: Drop unnecessary sudo usage
>       selftests/mm: Ensure uffd-wp-mremap gets pages of each size
> 
>  tools/testing/selftests/mm/gup_longterm.c    | 45 ++++++++++++++++++----------
>  tools/testing/selftests/mm/map_populate.c    |  7 +++++
>  tools/testing/selftests/mm/run_vmtests.sh    | 25 ++++++++++++++--
>  tools/testing/selftests/mm/uffd-common.c     |  8 ++---
>  tools/testing/selftests/mm/uffd-common.h     |  2 +-
>  tools/testing/selftests/mm/uffd-stress.c     | 42 ++++++++++++++++----------
>  tools/testing/selftests/mm/uffd-unit-tests.c |  2 +-
>  tools/testing/selftests/mm/uffd-wp-mremap.c  |  5 +++-
>  8 files changed, 95 insertions(+), 41 deletions(-)
> ---
> base-commit: 76544811c850a1f4c055aa182b513b7a843868ea
> change-id: 20250220-mm-selftests-2d7d0542face
> 
> Best regards,