Received: by 2002:ac0:e34a:0:0:0:0:0 with SMTP id g10csp569256imn; Tue, 26 Jul 2022 03:51:30 -0700 (PDT) X-Google-Smtp-Source: AGRyM1tBXBxTs/hHUOkmFazydbWlSJmh1sZx7NoeT5Q1CwzcCCQce5Gd/2N9Bdfvxm/ZxA6kktcI X-Received: by 2002:a17:906:844d:b0:72b:307d:fb52 with SMTP id e13-20020a170906844d00b0072b307dfb52mr14116648ejy.182.1658832690050; Tue, 26 Jul 2022 03:51:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1658832690; cv=none; d=google.com; s=arc-20160816; b=UcfLSY1nswd2+yOs7HXavrsxb6h+fwE14k/O9W1AdpH4lyBfNujJG/1l+w7RLKA5YR mHnKAgj9NhirHCikAA6zGStO481BT9FxiqgoH4Tlj8N9j0FY6bKRgqDBkpMN5mzpVvFx C/IF6HVDUkRUXWXEmozjo1lNhYn9pEFpVU7AJXPBMhILBjM60X2MHkikX2/j3OW2nyUE jXrqKH7rr9F1aqcCuOYjEqJEmSzP0236NyqCAeFBisFiIxf3eFvRu53Jo0kBsyR7UTEb dUfIWI//WB3lz/cSssGYVgih+YXgn5A5A085kVl0hGl18djHVM9xmFyOXxBCgACNbxfD ECjA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=hFx1Zb7iD7+PpndPtB1k00zwvs4HrDroosYNgQJPhqs=; b=x51sy7NCrcuss9vCu2dXS63VHgf9gtJ6vBFOhYXUJg+9cdJ6GukbXvnrlXhPlHcmpT DfypDxs4dYiBhEcwm/ZYYR0iSdsuNbgXJcZmN1HxMD/ezgWqELAzFKf0XeENyHo3qXwp izBEcNyh5S/TIR3RL+i6TWCY9ZvLhwUub/mu8dwDBEJSbROLL97012oDGjtYp0E05WiJ CQSx5rNq603TObVXtOVLyu64AupcJk3HkHlJx7xPJzUIcEaem0aMm624c1HxRZXdyAhu BJ9pnHTeBjVhc5BLTYIxaqFdPdoC3bdatUaKNLP1HnNr5Sh7GLPNtbhlIkkz9eSkVPpd Dt1A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=Lv5DOWqn; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id y7-20020a056402358700b0043c28d80450si4293042edc.490.2022.07.26.03.51.05; Tue, 26 Jul 2022 03:51:30 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=Lv5DOWqn; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233172AbiGZKcG (ORCPT + 99 others); Tue, 26 Jul 2022 06:32:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59500 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232649AbiGZKcD (ORCPT ); Tue, 26 Jul 2022 06:32:03 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 37D302C661 for ; Tue, 26 Jul 2022 03:31:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1658831519; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=hFx1Zb7iD7+PpndPtB1k00zwvs4HrDroosYNgQJPhqs=; b=Lv5DOWqn+lbfGhD6CZh6qdXS99e0oeExDjTVyxjoyGtbQ0JPHd7ymZoYMOwuISx9bdbzbZ MNHz2jg3RJM2TDOVqvPEfQEp7xEAMfTgfOgPVxNsbJyMVFawCfxgJC0QYVPIcM6P2WHngP GlMzDRXj64ClNHjyVKFPDFvqUnVPXdA= Received: from mail-ed1-f72.google.com (mail-ed1-f72.google.com [209.85.208.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-141-C0V6dCKFPmu7NLkVBK7Q9w-1; Tue, 26 Jul 2022 06:31:57 -0400 X-MC-Unique: C0V6dCKFPmu7NLkVBK7Q9w-1 Received: by mail-ed1-f72.google.com with SMTP id s17-20020a056402521100b0043ade613038so8651429edd.17 for ; Tue, 26 Jul 2022 03:31:57 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=hFx1Zb7iD7+PpndPtB1k00zwvs4HrDroosYNgQJPhqs=; b=4iBS1vgbgfiFpgOSRFjlvw89u8+BQ58jg/zatHTLG9N1vrOUKMEPhBEdZJnc6T95WR 2D++BNGlJgEKyTUavH1SDz4zDq+ow5qFIkKI/VVF5lGC8vcnDwIyRiMvPACVlvHJOu/g Jnh/SDvtQunLf6I54wra87RrFmBBkJ9uU9+cRp3Ccf7xo7I52h3Iy26CmRySmNXnxlBJ VKPikWN64zPO5+yVW6vs2Vuy9aK9iLq+GBnDyc6XNWaw+gAW9pLgncYR7sW2k06kuvjP egpTbLZY7QGiR8cierzzY1H47QHhw+/f+j8TgmnVP6O4Nb8ZE9lAnxAP0KX1AKSTKNWR Y01Q== X-Gm-Message-State: AJIora9SQsEozCopbfwgevwaSepBTAYx9MjjqgzD/q3+Io/S9zuRsQKT lB/377S/4X74XPGraaJ3aDyte64I8NC58E+AQuH0ymVilmjCxllfFQEjtGdKEPq8Xt3IXT8gUz2 TuC11X3Kp98NAPfOl8TBWTuO543k/IzBUoiGh/kpx X-Received: by 2002:a17:907:d88:b0:72b:1127:33f5 with SMTP id go8-20020a1709070d8800b0072b112733f5mr13656442ejc.725.1658831516221; Tue, 26 Jul 2022 03:31:56 -0700 (PDT) X-Received: by 2002:a17:907:d88:b0:72b:1127:33f5 with SMTP id go8-20020a1709070d8800b0072b112733f5mr13656415ejc.725.1658831515828; Tue, 26 Jul 2022 03:31:55 -0700 (PDT) MIME-Version: 1.0 References: <20220706205451.4133254-1-jsavitz@redhat.com> In-Reply-To: From: Nico Pache Date: Tue, 26 Jul 2022 06:31:29 -0400 Message-ID: Subject: Re: [PATCH v3] selftests/vm: enable running select groups of tests To: Joel Savitz Cc: Andrew Morton , LKML , Shuah Khan , Linux MM , linux-kselftest@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-3.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, SPF_HELO_NONE,SPF_NONE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Ok thanks for pointing that out! Andrew, would it be possible to modify the patch and make the variable name VM_SELFTEST_ITEMS? Cheers, -- Nico On Tue, Jul 19, 2022 at 6:28 PM Joel Savitz wrote: > > Hello, > > Sorry for the late reply. > > Setting TEST_ITEMS="xx yy zz" and invoking the script has the same > effect as passing -t "xx yy zz" to the script. VM_TEST_ITEMS may be a > better env variable name however. > > Best, > Joel Savitz > > On Fri, Jul 15, 2022 at 3:55 PM Nico Pache wrote: > > > > Hi Andrew and Joel, > > > > I noticed a flaw in switching to the cmdline argument over the > > environment variable. If you are utilizing the exerciser script (in > > tools/testing/selftests/run_kselftest.sh), this is not designed to > > pass cmdline variables to the individual TEST_PROGS. On the other hand > > if we utilize Env. variables we can still specify which tests we'd > > like to run. Our infrastructure is designed to utilize this wrapper, > > so we inevitably will not be able to use this the way we thought. > > > > Would you be ok with switching back to the initial approach? If so I > > believe making the name more specific would be ideal, ie) > > VM_TEST_ITEMS. > > > > Cheers, > > -- Nico > > > > On Wed, Jul 6, 2022 at 4:55 PM Joel Savitz wrote: > > > > > > 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 ""] > > > -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 > > > example: ./run_vmtests.sh -t "hmm mmap ksm" > > > > > > Changes from v2: > > > - rebase onto the mm-everyting branch in > > > https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git > > > - integrate this functionality with new the tests > > > > > > Changes from v1: > > > - use a command line argument to pass the test categories to the > > > script instead of an environmet variable > > > - remove novel prints to avoid messing with extant parsers of this > > > script > > > - update the usage text > > > > > > Signed-off-by: Joel Savitz > > > --- > > > tools/testing/selftests/vm/run_vmtests.sh | 241 +++++++++++++++------- > > > 1 file changed, 161 insertions(+), 80 deletions(-) > > > > > > diff --git a/tools/testing/selftests/vm/run_vmtests.sh b/tools/testing/selftests/vm/run_vmtests.sh > > > index d84fe0fa15e1..fb72a1338d07 100755 > > > --- a/tools/testing/selftests/vm/run_vmtests.sh > > > +++ b/tools/testing/selftests/vm/run_vmtests.sh > > > @@ -1,6 +1,6 @@ > > > #!/bin/bash > > > # SPDX-License-Identifier: GPL-2.0 > > > -#please run as root > > > +# Please run as root > > > > > > # Kselftest framework requirement - SKIP code is 4. > > > ksft_skip=4 > > > @@ -8,15 +8,75 @@ ksft_skip=4 > > > mnt=./huge > > > exitcode=0 > > > > > > -#get huge pagesize and freepages from /proc/meminfo > > > -while read -r name size unit; do > > > - if [ "$name" = "HugePages_Free:" ]; then > > > - freepgs="$size" > > > - fi > > > - if [ "$name" = "Hugepagesize:" ]; then > > > - hpgsize_KB="$size" > > > +usage() { > > > + cat < > > +usage: ${BASH_SOURCE[0]:-$0} [ -h | -t ""] > > > + -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 > > > +example: ./run_vmtests.sh -t "hmm mmap ksm" > > > +EOF > > > + exit 0 > > > +} > > > + > > > + > > > +while getopts "ht:" OPT; do > > > + case ${OPT} in > > > + "h") usage ;; > > > + "t") TEST_ITEMS=${OPTARG} ;; > > > + esac > > > +done > > > +shift $((OPTIND -1)) > > > + > > > +# default behavior: run all tests > > > +TEST_ITEMS=${TEST_ITEMS:-default} > > > + > > > +test_selected() { > > > + if [ "$TEST_ITEMS" == "default" ]; then > > > + # If no TEST_ITEMS are specified, run all tests > > > + return 0 > > > fi > > > -done < /proc/meminfo > > > + echo ${TEST_ITEMS} | grep ${1} 2>&1 >/dev/null > > > + return ${?} > > > +} > > > + > > > +# Hugepage setup only needed for hugetlb tests > > > +if test_selected "hugetlb"; then > > > > > > # Simple hugetlbfs tests have a hardcoded minimum requirement of > > > # huge pages totaling 256MB (262144KB) in size. The userfaultfd > > > @@ -28,7 +88,17 @@ hpgsize_MB=$((hpgsize_KB / 1024)) > > > half_ufd_size_MB=$((((nr_cpus * hpgsize_MB + 127) / 128) * 128)) > > > needmem_KB=$((half_ufd_size_MB * 2 * 1024)) > > > > > > -#set proper nr_hugepages > > > +# get huge pagesize and freepages from /proc/meminfo > > > +while read -r name size unit; do > > > + if [ "$name" = "HugePages_Free:" ]; then > > > + freepgs="$size" > > > + fi > > > + if [ "$name" = "Hugepagesize:" ]; then > > > + hpgsize_KB="$size" > > > + fi > > > +done < /proc/meminfo > > > + > > > +# set proper nr_hugepages > > > if [ -n "$freepgs" ] && [ -n "$hpgsize_KB" ]; then > > > nr_hugepgs=$(cat /proc/sys/vm/nr_hugepages) > > > needpgs=$((needmem_KB / hpgsize_KB)) > > > @@ -57,144 +127,155 @@ else > > > exit 1 > > > fi > > > > > > -#filter 64bit architectures > > > +fi # test_selected "hugetlb" > > > + > > > +# filter 64bit architectures > > > ARCH64STR="arm64 ia64 mips64 parisc64 ppc64 ppc64le riscv64 s390x sh64 sparc64 x86_64" > > > if [ -z "$ARCH" ]; then > > > ARCH=$(uname -m 2>/dev/null | sed -e 's/aarch64.*/arm64/') > > > fi > > > VADDR64=0 > > > -echo "$ARCH64STR" | grep "$ARCH" && VADDR64=1 > > > +echo "$ARCH64STR" | grep "$ARCH" &>/dev/null && VADDR64=1 > > > > > > # Usage: run_test [test binary] [arbitrary test arguments...] > > > run_test() { > > > - local title="running $*" > > > - local sep=$(echo -n "$title" | tr "[:graph:][:space:]" -) > > > - printf "%s\n%s\n%s\n" "$sep" "$title" "$sep" > > > - > > > - "$@" > > > - local ret=$? > > > - if [ $ret -eq 0 ]; then > > > - echo "[PASS]" > > > - elif [ $ret -eq $ksft_skip ]; then > > > - echo "[SKIP]" > > > - exitcode=$ksft_skip > > > - else > > > - echo "[FAIL]" > > > - exitcode=1 > > > - fi > > > + if test_selected ${CATEGORY}; then > > > + local title="running $*" > > > + local sep=$(echo -n "$title" | tr "[:graph:][:space:]" -) > > > + printf "%s\n%s\n%s\n" "$sep" "$title" "$sep" > > > + > > > + "$@" > > > + local ret=$? > > > + if [ $ret -eq 0 ]; then > > > + echo "[PASS]" > > > + elif [ $ret -eq $ksft_skip ]; then > > > + echo "[SKIP]" > > > + exitcode=$ksft_skip > > > + else > > > + echo "[FAIL]" > > > + exitcode=1 > > > + fi > > > + fi # test_selected > > > } > > > > > > -mkdir "$mnt" > > > -mount -t hugetlbfs none "$mnt" > > > +# setup only needed for hugetlb tests > > > +if test_selected "hugetlb"; then > > > + mkdir "$mnt" > > > + mount -t hugetlbfs none "$mnt" > > > +fi > > > > > > -run_test ./hugepage-mmap > > > +CATEGORY="hugetlb" run_test ./hugepage-mmap > > > > > > shmmax=$(cat /proc/sys/kernel/shmmax) > > > shmall=$(cat /proc/sys/kernel/shmall) > > > echo 268435456 > /proc/sys/kernel/shmmax > > > echo 4194304 > /proc/sys/kernel/shmall > > > -run_test ./hugepage-shm > > > +CATEGORY="hugetlb" run_test ./hugepage-shm > > > echo "$shmmax" > /proc/sys/kernel/shmmax > > > echo "$shmall" > /proc/sys/kernel/shmall > > > > > > -run_test ./map_hugetlb > > > +CATEGORY="hugetlb" run_test ./map_hugetlb > > > > > > -run_test ./hugepage-mremap "$mnt"/huge_mremap > > > -rm -f "$mnt"/huge_mremap > > > +CATEGORY="hugetlb" run_test ./hugepage-mremap "$mnt"/huge_mremap > > > +test_selected "hugetlb" && rm -f "$mnt"/huge_mremap > > > > > > -run_test ./hugepage-vmemmap > > > +CATEGORY="hugetlb" run_test ./hugepage-vmemmap > > > > > > -run_test ./hugetlb-madvise "$mnt"/madvise-test > > > -rm -f "$mnt"/madvise-test > > > +CATEGORY="hugetlb" run_test ./hugetlb-madvise "$mnt"/madvise-test > > > +test_selected "hugetlb" && rm -f "$mnt"/madvise-test > > > > > > -echo "NOTE: The above hugetlb tests provide minimal coverage. Use" > > > -echo " https://github.com/libhugetlbfs/libhugetlbfs.git for" > > > -echo " hugetlb regression testing." > > > +if test_selected "hugetlb"; then > > > + echo "NOTE: These hugetlb tests provide minimal coverage. Use" > > > + echo " https://github.com/libhugetlbfs/libhugetlbfs.git for" > > > + echo " hugetlb regression testing." > > > +fi > > > > > > -run_test ./map_fixed_noreplace > > > +CATEGORY="mmap" run_test ./map_fixed_noreplace > > > > > > # get_user_pages_fast() benchmark > > > -run_test ./gup_test -u > > > +CATEGORY="gup_test" run_test ./gup_test -u > > > # pin_user_pages_fast() benchmark > > > -run_test ./gup_test -a > > > +CATEGORY="gup_test" run_test ./gup_test -a > > > # Dump pages 0, 19, and 4096, using pin_user_pages: > > > -run_test ./gup_test -ct -F 0x1 0 19 0x1000 > > > +CATEGORY="gup_test" run_test ./gup_test -ct -F 0x1 0 19 0x1000 > > > > > > -run_test ./userfaultfd anon 20 16 > > > -run_test ./userfaultfd anon:dev 20 16 > > > +CATEGORY="userfaultfd" run_test ./userfaultfd anon 20 16 > > > +CATEGORY="userfaultfd" run_test ./userfaultfd anon:dev 20 16 > > > # Hugetlb tests require source and destination huge pages. Pass in half the > > > # size ($half_ufd_size_MB), which is used for *each*. > > > -run_test ./userfaultfd hugetlb "$half_ufd_size_MB" 32 > > > -run_test ./userfaultfd hugetlb:dev "$half_ufd_size_MB" 32 > > > -run_test ./userfaultfd hugetlb_shared "$half_ufd_size_MB" 32 "$mnt"/uffd-test > > > +CATEGORY="userfaultfd" run_test ./userfaultfd hugetlb "$half_ufd_size_MB" 32 > > > +CATEGORY="userfaultfd" run_test ./userfaultfd hugetlb:dev "$half_ufd_size_MB" 32 > > > +CATEGORY="userfaultfd" run_test ./userfaultfd hugetlb_shared "$half_ufd_size_MB" 32 "$mnt"/uffd-test > > > rm -f "$mnt"/uffd-test > > > -run_test ./userfaultfd hugetlb_shared:dev "$half_ufd_size_MB" 32 "$mnt"/uffd-test > > > +CATEGORY="userfaultfd" run_test ./userfaultfd hugetlb_shared:dev "$half_ufd_size_MB" 32 "$mnt"/uffd-test > > > rm -f "$mnt"/uffd-test > > > -run_test ./userfaultfd shmem 20 16 > > > -run_test ./userfaultfd shmem:dev 20 16 > > > - > > > -#cleanup > > > -umount "$mnt" > > > -rm -rf "$mnt" > > > -echo "$nr_hugepgs" > /proc/sys/vm/nr_hugepages > > > +CATEGORY="userfaultfd" run_test ./userfaultfd shmem 20 16 > > > +CATEGORY="userfaultfd" run_test ./userfaultfd shmem:dev 20 16 > > > + > > > +# cleanup (only needed when running hugetlb tests) > > > +if test_selected "hugetlb"; then > > > + umount "$mnt" > > > + rm -rf "$mnt" > > > + echo "$nr_hugepgs" > /proc/sys/vm/nr_hugepages > > > +fi > > > > > > -run_test ./compaction_test > > > +CATEGORY="compaction" run_test ./compaction_test > > > > > > -run_test sudo -u nobody ./on-fault-limit > > > +CATEGORY="mlock" run_test sudo -u nobody ./on-fault-limit > > > > > > -run_test ./map_populate > > > +CATEGORY="mmap" run_test ./map_populate > > > > > > -run_test ./mlock-random-test > > > +CATEGORY="mlock" run_test ./mlock-random-test > > > > > > -run_test ./mlock2-tests > > > +CATEGORY="mlock" run_test ./mlock2-tests > > > > > > -run_test ./mrelease_test > > > +CATEGORY="process_mrelease" run_test ./mrelease_test > > > > > > -run_test ./mremap_test > > > +CATEGORY="mremap" run_test ./mremap_test > > > > > > -run_test ./thuge-gen > > > +CATEGORY="hugetlb" run_test ./thuge-gen > > > > > > if [ $VADDR64 -ne 0 ]; then > > > - run_test ./virtual_address_range > > > + CATEGORY="hugevm" run_test ./virtual_address_range > > > > > > # virtual address 128TB switch test > > > - run_test ./va_128TBswitch.sh > > > + CATEGORY="hugevm" run_test ./va_128TBswitch.sh > > > fi # VADDR64 > > > > > > # vmalloc stability smoke test > > > -run_test ./test_vmalloc.sh smoke > > > +CATEGORY="vmalloc" run_test ./test_vmalloc.sh smoke > > > > > > -run_test ./mremap_dontunmap > > > +CATEGORY="mremap" run_test ./mremap_dontunmap > > > > > > -run_test ./test_hmm.sh smoke > > > +CATEGORY="hmm" run_test ./test_hmm.sh smoke > > > > > > # MADV_POPULATE_READ and MADV_POPULATE_WRITE tests > > > -run_test ./madv_populate > > > +CATEGORY="madv_populate" run_test ./madv_populate > > > > > > -run_test ./memfd_secret > > > +CATEGORY="memfd_secret" run_test ./memfd_secret > > > > > > # KSM MADV_MERGEABLE test with 10 identical pages > > > -run_test ./ksm_tests -M -p 10 > > > +CATEGORY="ksm" run_test ./ksm_tests -M -p 10 > > > # KSM unmerge test > > > -run_test ./ksm_tests -U > > > +CATEGORY="ksm" run_test ./ksm_tests -U > > > # KSM test with 10 zero pages and use_zero_pages = 0 > > > -run_test ./ksm_tests -Z -p 10 -z 0 > > > +CATEGORY="ksm" run_test ./ksm_tests -Z -p 10 -z 0 > > > # KSM test with 10 zero pages and use_zero_pages = 1 > > > -run_test ./ksm_tests -Z -p 10 -z 1 > > > +CATEGORY="ksm" run_test ./ksm_tests -Z -p 10 -z 1 > > > # KSM test with 2 NUMA nodes and merge_across_nodes = 1 > > > -run_test ./ksm_tests -N -m 1 > > > +CATEGORY="ksm_numa" run_test ./ksm_tests -N -m 1 > > > # KSM test with 2 NUMA nodes and merge_across_nodes = 0 > > > -run_test ./ksm_tests -N -m 0 > > > +CATEGORY="ksm_numa" run_test ./ksm_tests -N -m 0 > > > > > > # protection_keys tests > > > if [ -x ./protection_keys_32 ] > > > then > > > - run_test ./protection_keys_32 > > > + CATEGORY="pkey" run_test ./protection_keys_32 > > > fi > > > > > > if [ -x ./protection_keys_64 ] > > > then > > > - run_test ./protection_keys_64 > > > + CATEGORY="pkey" run_test ./protection_keys_64 > > > fi > > > > > > exit $exitcode > > > -- > > > 2.31.1 > > > > > >