• Joel Savitz's avatar
    selftests/vm: enable running select groups of tests · 85463321
    Joel Savitz authored
    Our memory management kernel CI testing at Red Hat uses the VM
    selftests and we have run into two problems:
    
    First, our LTP tests overlap with the VM selftests.
    
    We want to avoid unhelpful redundancy in our testing practices.
    
    Second, we have observed the current run_vmtests.sh to report overall
    failure/ambiguous results in the case that a machine lacks the necessary
    hardware to perform one or more of the tests. E.g. ksm tests that
    require more than one numa node.
    
    We want to be able to run the vm selftests suitable to particular hardware.
    
    Add the ability to run one or more groups of vm tests via run_vmtests.sh
    instead of simply all-or-none in order to solve these problems.
    
    Preserve existing default behavior of running all tests when the script
    is invoked with no arguments.
    
    Documentation of test groups is included in the patch as follows:
    
        # ./run_vmtests.sh [ -h || --help ]
    
        usage: ./tools/testing/selftests/vm/run_vmtests.sh [ -h | -t "<categories>"]
          -t: specify specific categories to tests to run
          -h: display this message
    
        The default behavior is to run all tests.
    
        Alternatively, specific groups tests can be run by passing a string
        to the -t argument containing one or more of the following categories
        separated by spaces:
        - mmap
    	    tests for mmap(2)
        - gup_test
    	    tests for gup using gup_test interface
        - userfaultfd
    	    tests for  userfaultfd(2)
        - compaction
    	    a test for the patch "Allow compaction of unevictable pages"
        - mlock
    	    tests for mlock(2)
        - mremap
    	    tests for mremap(2)
        - hugevm
    	    tests for very large virtual address space
        - vmalloc
    	    vmalloc smoke tests
        - hmm
    	    hmm smoke tests
        - madv_populate
    	    test memadvise(2) MADV_POPULATE_{READ,WRITE} options
        - memfd_secret
    	    test memfd_secret(2)
        - process_mrelease
    	    test process_mrelease(2)
        - ksm
    	    ksm tests that do not require >=2 NUMA nodes
        - ksm_numa
    	    ksm tests that require >=2 NUMA nodes
        - pkey
    	    memory protection key tests
        - soft_dirty
        	    test soft dirty page bit semantics
        - anon_cow
                test anonymous copy-on-write semantics
        example: ./run_vmtests.sh -t "hmm mmap ksm"
    
    Link: https://lkml.kernel.org/r/20221018231222.1884715-1-jsavitz@redhat.comSigned-off-by: default avatarJoel Savitz <jsavitz@redhat.com>
    Cc: Joel Savitz <jsavitz@redhat.com>
    Cc: Nico Pache <npache@redhat.com>
    Cc: Shuah Khan <shuah@kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    85463321
run_vmtests.sh 7.24 KB