diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-01-20 13:25:12 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-01-20 13:25:12 -0500 |
| commit | a693c46e14c9fdadbcd68ddfa94a4f72495531a9 (patch) | |
| tree | ae8cd363c78959159b3b897b13c2d78c6923d355 /tools/testing | |
| parent | 6ffbe7d1fabddc768724656f159759cae7818cd9 (diff) | |
| parent | 73a7ac2808fa52bdab1781646568b6f90c3d7034 (diff) | |
Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull RCU updates from Ingo Molnar:
- add RCU torture scripts/tooling
- static analysis improvements
- update RCU documentation
- miscellaneous fixes
* 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (52 commits)
rcu: Remove "extern" from function declarations in kernel/rcu/rcu.h
rcu: Remove "extern" from function declarations in include/linux/*rcu*.h
rcu/torture: Dynamically allocate SRCU output buffer to avoid overflow
rcu: Don't activate RCU core on NO_HZ_FULL CPUs
rcu: Warn on allegedly impossible rcu_read_unlock_special() from irq
rcu: Add an RCU_INITIALIZER for global RCU-protected pointers
rcu: Make rcu_assign_pointer's assignment volatile and type-safe
bonding: Use RCU_INIT_POINTER() for better overhead and for sparse
rcu: Add comment on evaluate-once properties of rcu_assign_pointer().
rcu: Provide better diagnostics for blocking in RCU callback functions
rcu: Improve SRCU's grace-period comments
rcu: Fix CONFIG_RCU_FANOUT_EXACT for odd fanout/leaf values
rcu: Fix coccinelle warnings
rcutorture: Stop tracking FSF's postal address
rcutorture: Move checkarg to functions.sh
rcutorture: Flag errors and warnings with color coding
rcutorture: Record results from repeated runs of the same test scenario
rcutorture: Test summary at end of run with less chattiness
rcutorture: Update comment in kvm.sh listing typical RCU trace events
rcutorture: Add tracing-enabled version of TREE08
...
Diffstat (limited to 'tools/testing')
110 files changed, 3362 insertions, 0 deletions
diff --git a/tools/testing/selftests/rcutorture/.gitignore b/tools/testing/selftests/rcutorture/.gitignore new file mode 100644 index 000000000000..05838f6f2ebe --- /dev/null +++ b/tools/testing/selftests/rcutorture/.gitignore | |||
| @@ -0,0 +1,6 @@ | |||
| 1 | initrd | ||
| 2 | linux-2.6 | ||
| 3 | b[0-9]* | ||
| 4 | rcu-test-image | ||
| 5 | res | ||
| 6 | *.swp | ||
diff --git a/tools/testing/selftests/rcutorture/bin/config2frag.sh b/tools/testing/selftests/rcutorture/bin/config2frag.sh new file mode 100644 index 000000000000..9f9ffcd427d3 --- /dev/null +++ b/tools/testing/selftests/rcutorture/bin/config2frag.sh | |||
| @@ -0,0 +1,25 @@ | |||
| 1 | #!/bin/sh | ||
| 2 | # Usage: sh config2frag.sh < .config > configfrag | ||
| 3 | # | ||
| 4 | # Converts the "# CONFIG_XXX is not set" to "CONFIG_XXX=n" so that the | ||
| 5 | # resulting file becomes a legitimate Kconfig fragment. | ||
| 6 | # | ||
| 7 | # This program is free software; you can redistribute it and/or modify | ||
| 8 | # it under the terms of the GNU General Public License as published by | ||
| 9 | # the Free Software Foundation; either version 2 of the License, or | ||
| 10 | # (at your option) any later version. | ||
| 11 | # | ||
| 12 | # This program is distributed in the hope that it will be useful, | ||
| 13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 15 | # GNU General Public License for more details. | ||
| 16 | # | ||
| 17 | # You should have received a copy of the GNU General Public License | ||
| 18 | # along with this program; if not, you can access it online at | ||
| 19 | # http://www.gnu.org/licenses/gpl-2.0.html. | ||
| 20 | # | ||
| 21 | # Copyright (C) IBM Corporation, 2013 | ||
| 22 | # | ||
| 23 | # Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com> | ||
| 24 | |||
| 25 | LANG=C sed -e 's/^# CONFIG_\([a-zA-Z0-9_]*\) is not set$/CONFIG_\1=n/' | ||
diff --git a/tools/testing/selftests/rcutorture/bin/configNR_CPUS.sh b/tools/testing/selftests/rcutorture/bin/configNR_CPUS.sh new file mode 100755 index 000000000000..43540f1828cc --- /dev/null +++ b/tools/testing/selftests/rcutorture/bin/configNR_CPUS.sh | |||
| @@ -0,0 +1,45 @@ | |||
| 1 | #!/bin/bash | ||
| 2 | # | ||
| 3 | # Extract the number of CPUs expected from the specified Kconfig-file | ||
| 4 | # fragment by checking CONFIG_SMP and CONFIG_NR_CPUS. If the specified | ||
| 5 | # file gives no clue, base the number on the number of idle CPUs on | ||
| 6 | # the system. | ||
| 7 | # | ||
| 8 | # Usage: configNR_CPUS.sh config-frag | ||
| 9 | # | ||
| 10 | # This program is free software; you can redistribute it and/or modify | ||
| 11 | # it under the terms of the GNU General Public License as published by | ||
| 12 | # the Free Software Foundation; either version 2 of the License, or | ||
| 13 | # (at your option) any later version. | ||
| 14 | # | ||
| 15 | # This program is distributed in the hope that it will be useful, | ||
| 16 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 17 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 18 | # GNU General Public License for more details. | ||
| 19 | # | ||
| 20 | # You should have received a copy of the GNU General Public License | ||
| 21 | # along with this program; if not, you can access it online at | ||
| 22 | # http://www.gnu.org/licenses/gpl-2.0.html. | ||
| 23 | # | ||
| 24 | # Copyright (C) IBM Corporation, 2013 | ||
| 25 | # | ||
| 26 | # Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com> | ||
| 27 | |||
| 28 | cf=$1 | ||
| 29 | if test ! -r $cf | ||
| 30 | then | ||
| 31 | echo Unreadable config fragment $cf 1>&2 | ||
| 32 | exit -1 | ||
| 33 | fi | ||
| 34 | if grep -q '^CONFIG_SMP=n$' $cf | ||
| 35 | then | ||
| 36 | echo 1 | ||
| 37 | exit 0 | ||
| 38 | fi | ||
| 39 | if grep -q '^CONFIG_NR_CPUS=' $cf | ||
| 40 | then | ||
| 41 | grep '^CONFIG_NR_CPUS=' $cf | | ||
| 42 | sed -e 's/^CONFIG_NR_CPUS=\([0-9]*\).*$/\1/' | ||
| 43 | exit 0 | ||
| 44 | fi | ||
| 45 | cpus2use.sh | ||
diff --git a/tools/testing/selftests/rcutorture/bin/configcheck.sh b/tools/testing/selftests/rcutorture/bin/configcheck.sh new file mode 100755 index 000000000000..d686537dd55c --- /dev/null +++ b/tools/testing/selftests/rcutorture/bin/configcheck.sh | |||
| @@ -0,0 +1,54 @@ | |||
| 1 | #!/bin/sh | ||
| 2 | # Usage: sh configcheck.sh .config .config-template | ||
| 3 | # | ||
| 4 | # This program is free software; you can redistribute it and/or modify | ||
| 5 | # it under the terms of the GNU General Public License as published by | ||
| 6 | # the Free Software Foundation; either version 2 of the License, or | ||
| 7 | # (at your option) any later version. | ||
| 8 | # | ||
| 9 | # This program is distributed in the hope that it will be useful, | ||
| 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 12 | # GNU General Public License for more details. | ||
| 13 | # | ||
| 14 | # You should have received a copy of the GNU General Public License | ||
| 15 | # along with this program; if not, you can access it online at | ||
| 16 | # http://www.gnu.org/licenses/gpl-2.0.html. | ||
| 17 | # | ||
| 18 | # Copyright (C) IBM Corporation, 2011 | ||
| 19 | # | ||
| 20 | # Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com> | ||
| 21 | |||
| 22 | T=/tmp/abat-chk-config.sh.$$ | ||
| 23 | trap 'rm -rf $T' 0 | ||
| 24 | mkdir $T | ||
| 25 | |||
| 26 | cat $1 > $T/.config | ||
| 27 | |||
| 28 | cat $2 | sed -e 's/\(.*\)=n/# \1 is not set/' -e 's/^#CHECK#//' | | ||
| 29 | awk ' | ||
| 30 | BEGIN { | ||
| 31 | print "if grep -q \"" $0 "\" < '"$T/.config"'"; | ||
| 32 | print "then"; | ||
| 33 | print "\t:"; | ||
| 34 | print "else"; | ||
| 35 | if ($1 == "#") { | ||
| 36 | print "\tif grep -q \"" $2 "\" < '"$T/.config"'"; | ||
| 37 | print "\tthen"; | ||
| 38 | print "\t\tif test \"$firsttime\" = \"\"" | ||
| 39 | print "\t\tthen" | ||
| 40 | print "\t\t\tfirsttime=1" | ||
| 41 | print "\t\tfi" | ||
| 42 | print "\t\techo \":" $2 ": improperly set\""; | ||
| 43 | print "\telse"; | ||
| 44 | print "\t\t:"; | ||
| 45 | print "\tfi"; | ||
| 46 | } else { | ||
| 47 | print "\tif test \"$firsttime\" = \"\"" | ||
| 48 | print "\tthen" | ||
| 49 | print "\t\tfirsttime=1" | ||
| 50 | print "\tfi" | ||
| 51 | print "\techo \":" $0 ": improperly set\""; | ||
| 52 | } | ||
| 53 | print "fi"; | ||
| 54 | }' | sh | ||
diff --git a/tools/testing/selftests/rcutorture/bin/configinit.sh b/tools/testing/selftests/rcutorture/bin/configinit.sh new file mode 100755 index 000000000000..a1be6e62add1 --- /dev/null +++ b/tools/testing/selftests/rcutorture/bin/configinit.sh | |||
| @@ -0,0 +1,74 @@ | |||
| 1 | #!/bin/sh | ||
| 2 | # | ||
| 3 | # sh configinit.sh config-spec-file [ build output dir ] | ||
| 4 | # | ||
| 5 | # Create a .config file from the spec file. Run from the kernel source tree. | ||
| 6 | # Exits with 0 if all went well, with 1 if all went well but the config | ||
| 7 | # did not match, and some other number for other failures. | ||
| 8 | # | ||
| 9 | # The first argument is the .config specification file, which contains | ||
| 10 | # desired settings, for example, "CONFIG_NO_HZ=y". For best results, | ||
| 11 | # this should be a full pathname. | ||
| 12 | # | ||
| 13 | # The second argument is a optional path to a build output directory, | ||
| 14 | # for example, "O=/tmp/foo". If this argument is omitted, the .config | ||
| 15 | # file will be generated directly in the current directory. | ||
| 16 | # | ||
| 17 | # This program is free software; you can redistribute it and/or modify | ||
| 18 | # it under the terms of the GNU General Public License as published by | ||
| 19 | # the Free Software Foundation; either version 2 of the License, or | ||
| 20 | # (at your option) any later version. | ||
| 21 | # | ||
| 22 | # This program is distributed in the hope that it will be useful, | ||
| 23 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 24 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 25 | # GNU General Public License for more details. | ||
| 26 | # | ||
| 27 | # You should have received a copy of the GNU General Public License | ||
| 28 | # along with this program; if not, you can access it online at | ||
| 29 | # http://www.gnu.org/licenses/gpl-2.0.html. | ||
| 30 | # | ||
| 31 | # Copyright (C) IBM Corporation, 2013 | ||
| 32 | # | ||
| 33 | # Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com> | ||
| 34 | |||
| 35 | T=/tmp/configinit.sh.$$ | ||
| 36 | trap 'rm -rf $T' 0 | ||
| 37 | mkdir $T | ||
| 38 | |||
| 39 | # Capture config spec file. | ||
| 40 | |||
| 41 | c=$1 | ||
| 42 | buildloc=$2 | ||
| 43 | builddir= | ||
| 44 | if test -n $buildloc | ||
| 45 | then | ||
| 46 | if echo $buildloc | grep -q '^O=' | ||
| 47 | then | ||
| 48 | builddir=`echo $buildloc | sed -e 's/^O=//'` | ||
| 49 | if test ! -d $builddir | ||
| 50 | then | ||
| 51 | mkdir $builddir | ||
| 52 | fi | ||
| 53 | else | ||
| 54 | echo Bad build directory: \"$builddir\" | ||
| 55 | exit 2 | ||
| 56 | fi | ||
| 57 | fi | ||
| 58 | |||
| 59 | sed -e 's/^\(CONFIG[0-9A-Z_]*\)=.*$/grep -v "^# \1" |/' < $c > $T/u.sh | ||
| 60 | sed -e 's/^\(CONFIG[0-9A-Z_]*=\).*$/grep -v \1 |/' < $c >> $T/u.sh | ||
| 61 | grep '^grep' < $T/u.sh > $T/upd.sh | ||
| 62 | echo "cat - $c" >> $T/upd.sh | ||
| 63 | make mrproper | ||
| 64 | make $buildloc distclean > $builddir/Make.distclean 2>&1 | ||
| 65 | make $buildloc defconfig > $builddir/Make.defconfig.out 2>&1 | ||
| 66 | mv $builddir/.config $builddir/.config.sav | ||
| 67 | sh $T/upd.sh < $builddir/.config.sav > $builddir/.config | ||
| 68 | cp $builddir/.config $builddir/.config.new | ||
| 69 | yes '' | make $buildloc oldconfig > $builddir/Make.modconfig.out 2>&1 | ||
| 70 | |||
| 71 | # verify new config matches specification. | ||
| 72 | configcheck.sh $builddir/.config $c | ||
| 73 | |||
| 74 | exit 0 | ||
diff --git a/tools/testing/selftests/rcutorture/bin/cpus2use.sh b/tools/testing/selftests/rcutorture/bin/cpus2use.sh new file mode 100755 index 000000000000..abe14b7f36e9 --- /dev/null +++ b/tools/testing/selftests/rcutorture/bin/cpus2use.sh | |||
| @@ -0,0 +1,41 @@ | |||
| 1 | #!/bin/bash | ||
| 2 | # | ||
| 3 | # Get an estimate of how CPU-hoggy to be. | ||
| 4 | # | ||
| 5 | # Usage: cpus2use.sh | ||
| 6 | # | ||
| 7 | # This program is free software; you can redistribute it and/or modify | ||
| 8 | # it under the terms of the GNU General Public License as published by | ||
| 9 | # the Free Software Foundation; either version 2 of the License, or | ||
| 10 | # (at your option) any later version. | ||
| 11 | # | ||
| 12 | # This program is distributed in the hope that it will be useful, | ||
| 13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 15 | # GNU General Public License for more details. | ||
| 16 | # | ||
| 17 | # You should have received a copy of the GNU General Public License | ||
| 18 | # along with this program; if not, you can access it online at | ||
| 19 | # http://www.gnu.org/licenses/gpl-2.0.html. | ||
| 20 | # | ||
| 21 | # Copyright (C) IBM Corporation, 2013 | ||
| 22 | # | ||
| 23 | # Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com> | ||
| 24 | |||
| 25 | ncpus=`grep '^processor' /proc/cpuinfo | wc -l` | ||
| 26 | idlecpus=`mpstat | tail -1 | \ | ||
| 27 | awk -v ncpus=$ncpus '{ print ncpus * ($7 + $12) / 100 }'` | ||
| 28 | awk -v ncpus=$ncpus -v idlecpus=$idlecpus < /dev/null ' | ||
| 29 | BEGIN { | ||
| 30 | cpus2use = idlecpus; | ||
| 31 | if (cpus2use < 1) | ||
| 32 | cpus2use = 1; | ||
| 33 | if (cpus2use < ncpus / 10) | ||
| 34 | cpus2use = ncpus / 10; | ||
| 35 | if (cpus2use == int(cpus2use)) | ||
| 36 | cpus2use = int(cpus2use) | ||
| 37 | else | ||
| 38 | cpus2use = int(cpus2use) + 1 | ||
| 39 | print cpus2use; | ||
| 40 | }' | ||
| 41 | |||
diff --git a/tools/testing/selftests/rcutorture/bin/functions.sh b/tools/testing/selftests/rcutorture/bin/functions.sh new file mode 100644 index 000000000000..587561d7c035 --- /dev/null +++ b/tools/testing/selftests/rcutorture/bin/functions.sh | |||
| @@ -0,0 +1,198 @@ | |||
| 1 | #!/bin/bash | ||
| 2 | # | ||
| 3 | # Shell functions for the rest of the scripts. | ||
| 4 | # | ||
| 5 | # This program is free software; you can redistribute it and/or modify | ||
| 6 | # it under the terms of the GNU General Public License as published by | ||
| 7 | # the Free Software Foundation; either version 2 of the License, or | ||
| 8 | # (at your option) any later version. | ||
| 9 | # | ||
| 10 | # This program is distributed in the hope that it will be useful, | ||
| 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 13 | # GNU General Public License for more details. | ||
| 14 | # | ||
| 15 | # You should have received a copy of the GNU General Public License | ||
| 16 | # along with this program; if not, you can access it online at | ||
| 17 | # http://www.gnu.org/licenses/gpl-2.0.html. | ||
| 18 | # | ||
| 19 | # Copyright (C) IBM Corporation, 2013 | ||
| 20 | # | ||
| 21 | # Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com> | ||
| 22 | |||
| 23 | # bootparam_hotplug_cpu bootparam-string | ||
| 24 | # | ||
| 25 | # Returns 1 if the specified boot-parameter string tells rcutorture to | ||
| 26 | # test CPU-hotplug operations. | ||
| 27 | bootparam_hotplug_cpu () { | ||
| 28 | echo "$1" | grep -q "rcutorture\.onoff_" | ||
| 29 | } | ||
| 30 | |||
| 31 | # checkarg --argname argtype $# arg mustmatch cannotmatch | ||
| 32 | # | ||
| 33 | # Checks the specified argument "arg" against the mustmatch and cannotmatch | ||
| 34 | # patterns. | ||
| 35 | checkarg () { | ||
| 36 | if test $3 -le 1 | ||
| 37 | then | ||
| 38 | echo $1 needs argument $2 matching \"$5\" | ||
| 39 | usage | ||
| 40 | fi | ||
| 41 | if echo "$4" | grep -q -e "$5" | ||
| 42 | then | ||
| 43 | : | ||
| 44 | else | ||
| 45 | echo $1 $2 \"$4\" must match \"$5\" | ||
| 46 | usage | ||
| 47 | fi | ||
| 48 | if echo "$4" | grep -q -e "$6" | ||
| 49 | then | ||
| 50 | echo $1 $2 \"$4\" must not match \"$6\" | ||
| 51 | usage | ||
| 52 | fi | ||
| 53 | } | ||
| 54 | |||
| 55 | # configfrag_boot_params bootparam-string config-fragment-file | ||
| 56 | # | ||
| 57 | # Adds boot parameters from the .boot file, if any. | ||
| 58 | configfrag_boot_params () { | ||
| 59 | if test -r "$2.boot" | ||
| 60 | then | ||
| 61 | echo $1 `grep -v '^#' "$2.boot" | tr '\012' ' '` | ||
| 62 | else | ||
| 63 | echo $1 | ||
| 64 | fi | ||
| 65 | } | ||
| 66 | |||
| 67 | # configfrag_hotplug_cpu config-fragment-file | ||
| 68 | # | ||
| 69 | # Returns 1 if the config fragment specifies hotplug CPU. | ||
| 70 | configfrag_hotplug_cpu () { | ||
| 71 | if test ! -r "$1" | ||
| 72 | then | ||
| 73 | echo Unreadable config fragment "$1" 1>&2 | ||
| 74 | exit -1 | ||
| 75 | fi | ||
| 76 | grep -q '^CONFIG_HOTPLUG_CPU=y$' "$1" | ||
| 77 | } | ||
| 78 | |||
| 79 | # identify_qemu builddir | ||
| 80 | # | ||
| 81 | # Returns our best guess as to which qemu command is appropriate for | ||
| 82 | # the kernel at hand. Override with the RCU_QEMU_CMD environment variable. | ||
| 83 | identify_qemu () { | ||
| 84 | local u="`file "$1"`" | ||
| 85 | if test -n "$RCU_QEMU_CMD" | ||
| 86 | then | ||
| 87 | echo $RCU_QEMU_CMD | ||
| 88 | elif echo $u | grep -q x86-64 | ||
| 89 | then | ||
| 90 | echo qemu-system-x86_64 | ||
| 91 | elif echo $u | grep -q "Intel 80386" | ||
| 92 | then | ||
| 93 | echo qemu-system-i386 | ||
| 94 | elif uname -a | grep -q ppc64 | ||
| 95 | then | ||
| 96 | echo qemu-system-ppc64 | ||
| 97 | else | ||
| 98 | echo Cannot figure out what qemu command to use! 1>&2 | ||
| 99 | # Usually this will be one of /usr/bin/qemu-system-* | ||
| 100 | # Use RCU_QEMU_CMD environment variable or appropriate | ||
| 101 | # argument to top-level script. | ||
| 102 | exit 1 | ||
| 103 | fi | ||
| 104 | } | ||
| 105 | |||
| 106 | # identify_qemu_append qemu-cmd | ||
| 107 | # | ||
| 108 | # Output arguments for the qemu "-append" string based on CPU type | ||
| 109 | # and the RCU_QEMU_INTERACTIVE environment variable. | ||
| 110 | identify_qemu_append () { | ||
| 111 | case "$1" in | ||
| 112 | qemu-system-x86_64|qemu-system-i386) | ||
| 113 | echo noapic selinux=0 initcall_debug debug | ||
| 114 | ;; | ||
| 115 | esac | ||
| 116 | if test -n "$RCU_QEMU_INTERACTIVE" | ||
| 117 | then | ||
| 118 | echo root=/dev/sda | ||
| 119 | else | ||
| 120 | echo console=ttyS0 | ||
| 121 | fi | ||
| 122 | } | ||
| 123 | |||
| 124 | # identify_qemu_args qemu-cmd serial-file | ||
| 125 | # | ||
| 126 | # Output arguments for qemu arguments based on the RCU_QEMU_MAC | ||
| 127 | # and RCU_QEMU_INTERACTIVE environment variables. | ||
| 128 | identify_qemu_args () { | ||
| 129 | case "$1" in | ||
| 130 | qemu-system-x86_64|qemu-system-i386) | ||
| 131 | ;; | ||
| 132 | qemu-system-ppc64) | ||
| 133 | echo -enable-kvm -M pseries -cpu POWER7 -nodefaults | ||
| 134 | echo -device spapr-vscsi | ||
| 135 | if test -n "$RCU_QEMU_INTERACTIVE" -a -n "$RCU_QEMU_MAC" | ||
| 136 | then | ||
| 137 | echo -device spapr-vlan,netdev=net0,mac=$RCU_QEMU_MAC | ||
| 138 | echo -netdev bridge,br=br0,id=net0 | ||
| 139 | elif test -n "$RCU_QEMU_INTERACTIVE" | ||
| 140 | then | ||
| 141 | echo -net nic -net user | ||
| 142 | fi | ||
| 143 | ;; | ||
| 144 | esac | ||
| 145 | if test -n "$RCU_QEMU_INTERACTIVE" | ||
| 146 | then | ||
| 147 | echo -monitor stdio -serial pty -S | ||
| 148 | else | ||
| 149 | echo -serial file:$2 | ||
| 150 | fi | ||
| 151 | } | ||
| 152 | |||
| 153 | # identify_qemu_vcpus | ||
| 154 | # | ||
| 155 | # Returns the number of virtual CPUs available to the aggregate of the | ||
| 156 | # guest OSes. | ||
| 157 | identify_qemu_vcpus () { | ||
| 158 | lscpu | grep '^CPU(s):' | sed -e 's/CPU(s)://' | ||
| 159 | } | ||
| 160 | |||
| 161 | # print_bug | ||
| 162 | # | ||
| 163 | # Prints "BUG: " in red followed by remaining arguments | ||
| 164 | print_bug () { | ||
| 165 | printf '\033[031mBUG: \033[m' | ||
| 166 | echo $* | ||
| 167 | } | ||
| 168 | |||
| 169 | # print_warning | ||
| 170 | # | ||
| 171 | # Prints "WARNING: " in yellow followed by remaining arguments | ||
| 172 | print_warning () { | ||
| 173 | printf '\033[033mWARNING: \033[m' | ||
| 174 | echo $* | ||
| 175 | } | ||
| 176 | |||
| 177 | # specify_qemu_cpus qemu-cmd qemu-args #cpus | ||
| 178 | # | ||
| 179 | # Appends a string containing "-smp XXX" to qemu-args, unless the incoming | ||
| 180 | # qemu-args already contains "-smp". | ||
| 181 | specify_qemu_cpus () { | ||
| 182 | local nt; | ||
| 183 | |||
| 184 | if echo $2 | grep -q -e -smp | ||
| 185 | then | ||
| 186 | echo $2 | ||
| 187 | else | ||
| 188 | case "$1" in | ||
| 189 | qemu-system-x86_64|qemu-system-i386) | ||
| 190 | echo $2 -smp $3 | ||
| 191 | ;; | ||
| 192 | qemu-system-ppc64) | ||
| 193 | nt="`lscpu | grep '^NUMA node0' | sed -e 's/^[^,]*,\([0-9]*\),.*$/\1/'`" | ||
| 194 | echo $2 -smp cores=`expr \( $3 + $nt - 1 \) / $nt`,threads=$nt | ||
| 195 | ;; | ||
| 196 | esac | ||
| 197 | fi | ||
| 198 | } | ||
diff --git a/tools/testing/selftests/rcutorture/bin/kvm-build.sh b/tools/testing/selftests/rcutorture/bin/kvm-build.sh new file mode 100755 index 000000000000..197901ec10bf --- /dev/null +++ b/tools/testing/selftests/rcutorture/bin/kvm-build.sh | |||
| @@ -0,0 +1,71 @@ | |||
| 1 | #!/bin/bash | ||
| 2 | # | ||
| 3 | # Build a kvm-ready Linux kernel from the tree in the current directory. | ||
| 4 | # | ||
| 5 | # Usage: sh kvm-build.sh config-template build-dir more-configs | ||
| 6 | # | ||
| 7 | # This program is free software; you can redistribute it and/or modify | ||
| 8 | # it under the terms of the GNU General Public License as published by | ||
| 9 | # the Free Software Foundation; either version 2 of the License, or | ||
| 10 | # (at your option) any later version. | ||
| 11 | # | ||
| 12 | # This program is distributed in the hope that it will be useful, | ||
| 13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 15 | # GNU General Public License for more details. | ||
| 16 | # | ||
| 17 | # You should have received a copy of the GNU General Public License | ||
| 18 | # along with this program; if not, you can access it online at | ||
| 19 | # http://www.gnu.org/licenses/gpl-2.0.html. | ||
| 20 | # | ||
| 21 | # Copyright (C) IBM Corporation, 2011 | ||
| 22 | # | ||
| 23 | # Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com> | ||
| 24 | |||
| 25 | config_template=${1} | ||
| 26 | if test -z "$config_template" -o ! -f "$config_template" -o ! -r "$config_template" | ||
| 27 | then | ||
| 28 | echo "kvm-build.sh :$config_template: Not a readable file" | ||
| 29 | exit 1 | ||
| 30 | fi | ||
| 31 | builddir=${2} | ||
| 32 | if test -z "$builddir" -o ! -d "$builddir" -o ! -w "$builddir" | ||
| 33 | then | ||
| 34 | echo "kvm-build.sh :$builddir: Not a writable directory, cannot build into it" | ||
| 35 | exit 1 | ||
| 36 | fi | ||
| 37 | moreconfigs=${3} | ||
| 38 | if test -z "$moreconfigs" -o ! -r "$moreconfigs" | ||
| 39 | then | ||
| 40 | echo "kvm-build.sh :$moreconfigs: Not a readable file" | ||
| 41 | exit 1 | ||
| 42 | fi | ||
| 43 | |||
| 44 | T=/tmp/test-linux.sh.$$ | ||
| 45 | trap 'rm -rf $T' 0 | ||
| 46 | mkdir $T | ||
| 47 | |||
| 48 | cat ${config_template} | grep -v CONFIG_RCU_TORTURE_TEST > $T/config | ||
| 49 | cat << ___EOF___ >> $T/config | ||
| 50 | CONFIG_INITRAMFS_SOURCE="$RCU_INITRD" | ||
| 51 | CONFIG_VIRTIO_PCI=y | ||
| 52 | CONFIG_VIRTIO_CONSOLE=y | ||
| 53 | ___EOF___ | ||
| 54 | cat $moreconfigs >> $T/config | ||
| 55 | |||
| 56 | configinit.sh $T/config O=$builddir | ||
| 57 | retval=$? | ||
| 58 | if test $retval -gt 1 | ||
| 59 | then | ||
| 60 | exit 2 | ||
| 61 | fi | ||
| 62 | ncpus=`cpus2use.sh` | ||
| 63 | make O=$builddir -j$ncpus $RCU_KMAKE_ARG > $builddir/Make.out 2>&1 | ||
| 64 | retval=$? | ||
| 65 | if test $retval -ne 0 || grep "rcu[^/]*": < $builddir/Make.out | egrep -q "Stop|Error|error:|warning:" || egrep -q "Stop|Error|error:" < $builddir/Make.out | ||
| 66 | then | ||
| 67 | echo Kernel build error | ||
| 68 | egrep "Stop|Error|error:|warning:" < $builddir/Make.out | ||
| 69 | echo Run aborted. | ||
| 70 | exit 3 | ||
| 71 | fi | ||
diff --git a/tools/testing/selftests/rcutorture/bin/kvm-recheck.sh b/tools/testing/selftests/rcutorture/bin/kvm-recheck.sh new file mode 100755 index 000000000000..baef09f3469b --- /dev/null +++ b/tools/testing/selftests/rcutorture/bin/kvm-recheck.sh | |||
| @@ -0,0 +1,44 @@ | |||
| 1 | #!/bin/bash | ||
| 2 | # | ||
| 3 | # Given the results directories for previous KVM runs of rcutorture, | ||
| 4 | # check the build and console output for errors. Given a directory | ||
| 5 | # containing results directories, this recursively checks them all. | ||
| 6 | # | ||
| 7 | # Usage: sh kvm-recheck.sh resdir ... | ||
| 8 | # | ||
| 9 | # This program is free software; you can redistribute it and/or modify | ||
| 10 | # it under the terms of the GNU General Public License as published by | ||
| 11 | # the Free Software Foundation; either version 2 of the License, or | ||
| 12 | # (at your option) any later version. | ||
| 13 | # | ||
| 14 | # This program is distributed in the hope that it will be useful, | ||
| 15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 17 | # GNU General Public License for more details. | ||
| 18 | # | ||
| 19 | # You should have received a copy of the GNU General Public License | ||
| 20 | # along with this program; if not, you can access it online at | ||
| 21 | # http://www.gnu.org/licenses/gpl-2.0.html. | ||
| 22 | # | ||
| 23 | # Copyright (C) IBM Corporation, 2011 | ||
| 24 | # | ||
| 25 | # Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com> | ||
| 26 | |||
| 27 | PATH=`pwd`/tools/testing/selftests/rcutorture/bin:$PATH; export PATH | ||
| 28 | for rd in "$@" | ||
| 29 | do | ||
| 30 | dirs=`find $rd -name Make.defconfig.out -print | sort | sed -e 's,/[^/]*$,,' | sort -u` | ||
| 31 | for i in $dirs | ||
| 32 | do | ||
| 33 | configfile=`echo $i | sed -e 's/^.*\///'` | ||
| 34 | echo $configfile | ||
| 35 | configcheck.sh $i/.config $i/ConfigFragment | ||
| 36 | parse-build.sh $i/Make.out $configfile | ||
| 37 | parse-rcutorture.sh $i/console.log $configfile | ||
| 38 | parse-console.sh $i/console.log $configfile | ||
| 39 | if test -r $i/Warnings | ||
| 40 | then | ||
| 41 | cat $i/Warnings | ||
| 42 | fi | ||
| 43 | done | ||
| 44 | done | ||
diff --git a/tools/testing/selftests/rcutorture/bin/kvm-test-1-rcu.sh b/tools/testing/selftests/rcutorture/bin/kvm-test-1-rcu.sh new file mode 100755 index 000000000000..151b23788935 --- /dev/null +++ b/tools/testing/selftests/rcutorture/bin/kvm-test-1-rcu.sh | |||
| @@ -0,0 +1,192 @@ | |||
| 1 | #!/bin/bash | ||
| 2 | # | ||
| 3 | # Run a kvm-based test of the specified tree on the specified configs. | ||
| 4 | # Fully automated run and error checking, no graphics console. | ||
| 5 | # | ||
| 6 | # Execute this in the source tree. Do not run it as a background task | ||
| 7 | # because qemu does not seem to like that much. | ||
| 8 | # | ||
| 9 | # Usage: sh kvm-test-1-rcu.sh config builddir resdir minutes qemu-args bootargs | ||
| 10 | # | ||
| 11 | # qemu-args defaults to "" -- you will want "-nographic" if running headless. | ||
| 12 | # bootargs defaults to "root=/dev/sda noapic selinux=0 console=ttyS0" | ||
| 13 | # "initcall_debug debug rcutorture.stat_interval=15" | ||
| 14 | # "rcutorture.shutdown_secs=$((minutes * 60))" | ||
| 15 | # "rcutorture.rcutorture_runnable=1" | ||
| 16 | # | ||
| 17 | # Anything you specify for either qemu-args or bootargs is appended to | ||
| 18 | # the default values. The "-smp" value is deduced from the contents of | ||
| 19 | # the config fragment. | ||
| 20 | # | ||
| 21 | # More sophisticated argument parsing is clearly needed. | ||
| 22 | # | ||
| 23 | # This program is free software; you can redistribute it and/or modify | ||
| 24 | # it under the terms of the GNU General Public License as published by | ||
| 25 | # the Free Software Foundation; either version 2 of the License, or | ||
| 26 | # (at your option) any later version. | ||
| 27 | # | ||
| 28 | # This program is distributed in the hope that it will be useful, | ||
| 29 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 30 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 31 | # GNU General Public License for more details. | ||
| 32 | # | ||
| 33 | # You should have received a copy of the GNU General Public License | ||
| 34 | # along with this program; if not, you can access it online at | ||
| 35 | # http://www.gnu.org/licenses/gpl-2.0.html. | ||
| 36 | # | ||
| 37 | # Copyright (C) IBM Corporation, 2011 | ||
| 38 | # | ||
| 39 | # Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com> | ||
| 40 | |||
| 41 | grace=120 | ||
| 42 | |||
| 43 | T=/tmp/kvm-test-1-rcu.sh.$$ | ||
| 44 | trap 'rm -rf $T' 0 | ||
| 45 | |||
| 46 | . $KVM/bin/functions.sh | ||
| 47 | . $KVPATH/ver_functions.sh | ||
| 48 | |||
| 49 | config_template=${1} | ||
| 50 | title=`echo $config_template | sed -e 's/^.*\///'` | ||
| 51 | builddir=${2} | ||
| 52 | if test -z "$builddir" -o ! -d "$builddir" -o ! -w "$builddir" | ||
| 53 | then | ||
| 54 | echo "kvm-test-1-rcu.sh :$builddir: Not a writable directory, cannot build into it" | ||
| 55 | exit 1 | ||
| 56 | fi | ||
| 57 | resdir=${3} | ||
| 58 | if test -z "$resdir" -o ! -d "$resdir" -o ! -w "$resdir" | ||
| 59 | then | ||
| 60 | echo "kvm-test-1-rcu.sh :$resdir: Not a writable directory, cannot build into it" | ||
| 61 | exit 1 | ||
| 62 | fi | ||
| 63 | cp $config_template $resdir/ConfigFragment | ||
| 64 | echo ' ---' `date`: Starting build | ||
| 65 | echo ' ---' Kconfig fragment at: $config_template >> $resdir/log | ||
| 66 | cat << '___EOF___' >> $T | ||
| 67 | CONFIG_RCU_TORTURE_TEST=y | ||
| 68 | ___EOF___ | ||
| 69 | # Optimizations below this point | ||
| 70 | # CONFIG_USB=n | ||
| 71 | # CONFIG_SECURITY=n | ||
| 72 | # CONFIG_NFS_FS=n | ||
| 73 | # CONFIG_SOUND=n | ||
| 74 | # CONFIG_INPUT_JOYSTICK=n | ||
| 75 | # CONFIG_INPUT_TABLET=n | ||
| 76 | # CONFIG_INPUT_TOUCHSCREEN=n | ||
| 77 | # CONFIG_INPUT_MISC=n | ||
| 78 | # CONFIG_INPUT_MOUSE=n | ||
| 79 | # # CONFIG_NET=n # disables console access, so accept the slower build. | ||
| 80 | # CONFIG_SCSI=n | ||
| 81 | # CONFIG_ATA=n | ||
| 82 | # CONFIG_FAT_FS=n | ||
| 83 | # CONFIG_MSDOS_FS=n | ||
| 84 | # CONFIG_VFAT_FS=n | ||
| 85 | # CONFIG_ISO9660_FS=n | ||
| 86 | # CONFIG_QUOTA=n | ||
| 87 | # CONFIG_HID=n | ||
| 88 | # CONFIG_CRYPTO=n | ||
| 89 | # CONFIG_PCCARD=n | ||
| 90 | # CONFIG_PCMCIA=n | ||
| 91 | # CONFIG_CARDBUS=n | ||
| 92 | # CONFIG_YENTA=n | ||
| 93 | if kvm-build.sh $config_template $builddir $T | ||
| 94 | then | ||
| 95 | cp $builddir/Make*.out $resdir | ||
| 96 | cp $builddir/.config $resdir | ||
| 97 | cp $builddir/arch/x86/boot/bzImage $resdir | ||
| 98 | parse-build.sh $resdir/Make.out $title | ||
| 99 | else | ||
| 100 | cp $builddir/Make*.out $resdir | ||
| 101 | echo Build failed, not running KVM, see $resdir. | ||
| 102 | exit 1 | ||
| 103 | fi | ||
| 104 | minutes=$4 | ||
| 105 | seconds=$(($minutes * 60)) | ||
| 106 | qemu_args=$5 | ||
| 107 | boot_args=$6 | ||
| 108 | |||
| 109 | cd $KVM | ||
| 110 | kstarttime=`awk 'BEGIN { print systime() }' < /dev/null` | ||
| 111 | echo ' ---' `date`: Starting kernel | ||
| 112 | |||
| 113 | # Determine the appropriate flavor of qemu command. | ||
| 114 | QEMU="`identify_qemu $builddir/vmlinux.o`" | ||
| 115 | |||
| 116 | # Generate -smp qemu argument. | ||
| 117 | cpu_count=`configNR_CPUS.sh $config_template` | ||
| 118 | vcpus=`identify_qemu_vcpus` | ||
| 119 | if test $cpu_count -gt $vcpus | ||
| 120 | then | ||
| 121 | echo CPU count limited from $cpu_count to $vcpus | ||
| 122 | touch $resdir/Warnings | ||
| 123 | echo CPU count limited from $cpu_count to $vcpus >> $resdir/Warnings | ||
| 124 | cpu_count=$vcpus | ||
| 125 | fi | ||
| 126 | qemu_args="`specify_qemu_cpus "$QEMU" "$qemu_args" "$cpu_count"`" | ||
| 127 | |||
| 128 | # Generate architecture-specific and interaction-specific qemu arguments | ||
| 129 | qemu_args="$qemu_args `identify_qemu_args "$QEMU" "$builddir/console.log"`" | ||
| 130 | |||
| 131 | # Generate qemu -append arguments | ||
| 132 | qemu_append="`identify_qemu_append "$QEMU"`" | ||
| 133 | |||
| 134 | # Pull in Kconfig-fragment boot parameters | ||
| 135 | boot_args="`configfrag_boot_params "$boot_args" "$config_template"`" | ||
| 136 | # Generate CPU-hotplug boot parameters | ||
| 137 | boot_args="`rcutorture_param_onoff "$boot_args" $builddir/.config`" | ||
| 138 | # Generate rcu_barrier() boot parameter | ||
| 139 | boot_args="`rcutorture_param_n_barrier_cbs "$boot_args"`" | ||
| 140 | # Pull in standard rcutorture boot arguments | ||
| 141 | boot_args="$boot_args rcutorture.stat_interval=15 rcutorture.shutdown_secs=$seconds rcutorture.rcutorture_runnable=1" | ||
| 142 | |||
| 143 | echo $QEMU $qemu_args -m 512 -kernel $builddir/arch/x86/boot/bzImage -append \"$qemu_append $boot_args\" > $resdir/qemu-cmd | ||
| 144 | if test -n "$RCU_BUILDONLY" | ||
| 145 | then | ||
| 146 | echo Build-only run specified, boot/test omitted. | ||
| 147 | exit 0 | ||
| 148 | fi | ||
| 149 | $QEMU $qemu_args -m 512 -kernel $builddir/arch/x86/boot/bzImage -append "$qemu_append $boot_args" & | ||
| 150 | qemu_pid=$! | ||
| 151 | commandcompleted=0 | ||
| 152 | echo Monitoring qemu job at pid $qemu_pid | ||
| 153 | for ((i=0;i<$seconds;i++)) | ||
| 154 | do | ||
| 155 | if kill -0 $qemu_pid > /dev/null 2>&1 | ||
| 156 | then | ||
| 157 | sleep 1 | ||
| 158 | else | ||
| 159 | commandcompleted=1 | ||
| 160 | kruntime=`awk 'BEGIN { print systime() - '"$kstarttime"' }' < /dev/null` | ||
| 161 | if test $kruntime -lt $seconds | ||
| 162 | then | ||
| 163 | echo Completed in $kruntime vs. $seconds >> $resdir/Warnings 2>&1 | ||
| 164 | else | ||
| 165 | echo ' ---' `date`: Kernel done | ||
| 166 | fi | ||
| 167 | break | ||
| 168 | fi | ||
| 169 | done | ||
| 170 | if test $commandcompleted -eq 0 | ||
| 171 | then | ||
| 172 | echo Grace period for qemu job at pid $qemu_pid | ||
| 173 | for ((i=0;i<=$grace;i++)) | ||
| 174 | do | ||
| 175 | if kill -0 $qemu_pid > /dev/null 2>&1 | ||
| 176 | then | ||
| 177 | sleep 1 | ||
| 178 | else | ||
| 179 | break | ||
| 180 | fi | ||
| 181 | if test $i -eq $grace | ||
| 182 | then | ||
| 183 | kruntime=`awk 'BEGIN { print systime() - '"$kstarttime"' }'` | ||
| 184 | echo "!!! Hang at $kruntime vs. $seconds seconds" >> $resdir/Warnings 2>&1 | ||
| 185 | kill -KILL $qemu_pid | ||
| 186 | fi | ||
| 187 | done | ||
| 188 | fi | ||
| 189 | |||
| 190 | cp $builddir/console.log $resdir | ||
| 191 | parse-rcutorture.sh $resdir/console.log $title | ||
| 192 | parse-console.sh $resdir/console.log $title | ||
diff --git a/tools/testing/selftests/rcutorture/bin/kvm.sh b/tools/testing/selftests/rcutorture/bin/kvm.sh new file mode 100644 index 000000000000..1b7923bf6a70 --- /dev/null +++ b/tools/testing/selftests/rcutorture/bin/kvm.sh | |||
| @@ -0,0 +1,210 @@ | |||
| 1 | #!/bin/bash | ||
| 2 | # | ||
| 3 | # Run a series of 14 tests under KVM. These are not particularly | ||
| 4 | # well-selected or well-tuned, but are the current set. Run from the | ||
| 5 | # top level of the source tree. | ||
| 6 | # | ||
| 7 | # Edit the definitions below to set the locations of the various directories, | ||
| 8 | # as well as the test duration. | ||
| 9 | # | ||
| 10 | # Usage: sh kvm.sh [ options ] | ||
| 11 | # | ||
| 12 | # This program is free software; you can redistribute it and/or modify | ||
| 13 | # it under the terms of the GNU General Public License as published by | ||
| 14 | # the Free Software Foundation; either version 2 of the License, or | ||
| 15 | # (at your option) any later version. | ||
| 16 | # | ||
| 17 | # This program is distributed in the hope that it will be useful, | ||
| 18 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 19 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 20 | # GNU General Public License for more details. | ||
| 21 | # | ||
| 22 | # You should have received a copy of the GNU General Public License | ||
| 23 | # along with this program; if not, you can access it online at | ||
| 24 | # http://www.gnu.org/licenses/gpl-2.0.html. | ||
| 25 | # | ||
| 26 | # Copyright (C) IBM Corporation, 2011 | ||
| 27 | # | ||
| 28 | # Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com> | ||
| 29 | |||
| 30 | scriptname=$0 | ||
| 31 | args="$*" | ||
| 32 | |||
| 33 | dur=30 | ||
| 34 | KVM="`pwd`/tools/testing/selftests/rcutorture"; export KVM | ||
| 35 | PATH=${KVM}/bin:$PATH; export PATH | ||
| 36 | builddir="${KVM}/b1" | ||
| 37 | RCU_INITRD="$KVM/initrd"; export RCU_INITRD | ||
| 38 | RCU_KMAKE_ARG=""; export RCU_KMAKE_ARG | ||
| 39 | resdir="" | ||
| 40 | configs="" | ||
| 41 | ds=`date +%Y.%m.%d-%H:%M:%S` | ||
| 42 | kversion="" | ||
| 43 | |||
| 44 | . functions.sh | ||
| 45 | |||
| 46 | usage () { | ||
| 47 | echo "Usage: $scriptname optional arguments:" | ||
| 48 | echo " --bootargs kernel-boot-arguments" | ||
| 49 | echo " --builddir absolute-pathname" | ||
| 50 | echo " --buildonly" | ||
| 51 | echo " --configs \"config-file list\"" | ||
| 52 | echo " --datestamp string" | ||
| 53 | echo " --duration minutes" | ||
| 54 | echo " --interactive" | ||
| 55 | echo " --kmake-arg kernel-make-arguments" | ||
| 56 | echo " --kversion vN.NN" | ||
| 57 | echo " --mac nn:nn:nn:nn:nn:nn" | ||
| 58 | echo " --no-initrd" | ||
| 59 | echo " --qemu-args qemu-system-..." | ||
| 60 | echo " --qemu-cmd qemu-system-..." | ||
| 61 | echo " --results absolute-pathname" | ||
| 62 | echo " --relbuilddir relative-pathname" | ||
| 63 | exit 1 | ||
| 64 | } | ||
| 65 | |||
| 66 | while test $# -gt 0 | ||
| 67 | do | ||
| 68 | case "$1" in | ||
| 69 | --bootargs) | ||
| 70 | checkarg --bootargs "(list of kernel boot arguments)" "$#" "$2" '.*' '^--' | ||
| 71 | RCU_BOOTARGS="$2" | ||
| 72 | shift | ||
| 73 | ;; | ||
| 74 | --builddir) | ||
| 75 | checkarg --builddir "(absolute pathname)" "$#" "$2" '^/' '^error' | ||
| 76 | builddir=$2 | ||
| 77 | gotbuilddir=1 | ||
| 78 | shift | ||
| 79 | ;; | ||
| 80 | --buildonly) | ||
| 81 | RCU_BUILDONLY=1; export RCU_BUILDONLY | ||
| 82 | ;; | ||
| 83 | --configs) | ||
| 84 | checkarg --configs "(list of config files)" "$#" "$2" '^[^/]*$' '^--' | ||
| 85 | configs="$2" | ||
| 86 | shift | ||
| 87 | ;; | ||
| 88 | --datestamp) | ||
| 89 | checkarg --datestamp "(relative pathname)" "$#" "$2" '^[^/]*$' '^--' | ||
| 90 | ds=$2 | ||
| 91 | shift | ||
| 92 | ;; | ||
| 93 | --duration) | ||
| 94 | checkarg --duration "(minutes)" $# "$2" '^[0-9]*$' '^error' | ||
| 95 | dur=$2 | ||
| 96 | shift | ||
| 97 | ;; | ||
| 98 | --interactive) | ||
| 99 | RCU_QEMU_INTERACTIVE=1; export RCU_QEMU_INTERACTIVE | ||
| 100 | ;; | ||
| 101 | --kmake-arg) | ||
| 102 | checkarg --kmake-arg "(kernel make arguments)" $# "$2" '.*' '^error$' | ||
| 103 | RCU_KMAKE_ARG="$2"; export RCU_KMAKE_ARG | ||
| 104 | shift | ||
| 105 | ;; | ||
| 106 | --kversion) | ||
| 107 | checkarg --kversion "(kernel version)" $# "$2" '^v[0-9.]*$' '^error' | ||
| 108 | kversion=$2 | ||
| 109 | shift | ||
| 110 | ;; | ||
| 111 | --mac) | ||
| 112 | checkarg --mac "(MAC address)" $# "$2" '^\([0-9a-fA-F]\{2\}:\)\{5\}[0-9a-fA-F]\{2\}$' error | ||
| 113 | RCU_QEMU_MAC=$2; export RCU_QEMU_MAC | ||
| 114 | shift | ||
| 115 | ;; | ||
| 116 | --no-initrd) | ||
| 117 | RCU_INITRD=""; export RCU_INITRD | ||
| 118 | ;; | ||
| 119 | --qemu-args) | ||
| 120 | checkarg --qemu-args "-qemu args" $# "$2" '^-' '^error' | ||
| 121 | RCU_QEMU_ARG="$2" | ||
| 122 | shift | ||
| 123 | ;; | ||
| 124 | --qemu-cmd) | ||
| 125 | checkarg --qemu-cmd "(qemu-system-...)" $# "$2" 'qemu-system-' '^--' | ||
| 126 | RCU_QEMU_CMD="$2"; export RCU_QEMU_CMD | ||
| 127 | shift | ||
| 128 | ;; | ||
| 129 | --relbuilddir) | ||
| 130 | checkarg --relbuilddir "(relative pathname)" "$#" "$2" '^[^/]*$' '^--' | ||
| 131 | relbuilddir=$2 | ||
| 132 | gotrelbuilddir=1 | ||
| 133 | builddir=${KVM}/${relbuilddir} | ||
| 134 | shift | ||
| 135 | ;; | ||
| 136 | --results) | ||
| 137 | checkarg --results "(absolute pathname)" "$#" "$2" '^/' '^error' | ||
| 138 | resdir=$2 | ||
| 139 | shift | ||
| 140 | ;; | ||
| 141 | *) | ||
| 142 | echo Unknown argument $1 | ||
| 143 | usage | ||
| 144 | ;; | ||
| 145 | esac | ||
| 146 | shift | ||
| 147 | done | ||
| 148 | |||
| 149 | CONFIGFRAG=${KVM}/configs; export CONFIGFRAG | ||
| 150 | KVPATH=${CONFIGFRAG}/$kversion; export KVPATH | ||
| 151 | |||
| 152 | if test -z "$configs" | ||
| 153 | then | ||
| 154 | configs="`cat $CONFIGFRAG/$kversion/CFLIST`" | ||
| 155 | fi | ||
| 156 | |||
| 157 | if test -z "$resdir" | ||
| 158 | then | ||
| 159 | resdir=$KVM/res | ||
| 160 | if ! test -e $resdir | ||
| 161 | then | ||
| 162 | mkdir $resdir || : | ||
| 163 | fi | ||
| 164 | else | ||
| 165 | if ! test -e $resdir | ||
| 166 | then | ||
| 167 | mkdir -p "$resdir" || : | ||
| 168 | fi | ||
| 169 | fi | ||
| 170 | mkdir $resdir/$ds | ||
| 171 | touch $resdir/$ds/log | ||
| 172 | echo $scriptname $args >> $resdir/$ds/log | ||
| 173 | |||
| 174 | pwd > $resdir/$ds/testid.txt | ||
| 175 | if test -d .git | ||
| 176 | then | ||
| 177 | git status >> $resdir/$ds/testid.txt | ||
| 178 | git rev-parse HEAD >> $resdir/$ds/testid.txt | ||
| 179 | fi | ||
| 180 | builddir=$KVM/b1 | ||
| 181 | if ! test -e $builddir | ||
| 182 | then | ||
| 183 | mkdir $builddir || : | ||
| 184 | fi | ||
| 185 | |||
| 186 | for CF in $configs | ||
| 187 | do | ||
| 188 | # Running TREE01 multiple times creates TREE01, TREE01.2, TREE01.3, ... | ||
| 189 | rd=$resdir/$ds/$CF | ||
| 190 | if test -d "${rd}" | ||
| 191 | then | ||
| 192 | n="`ls -d "${rd}"* | grep '\.[0-9]\+$' | | ||
| 193 | sed -e 's/^.*\.\([0-9]\+\)/\1/' | | ||
| 194 | sort -k1n | tail -1`" | ||
| 195 | if test -z "$n" | ||
| 196 | then | ||
| 197 | rd="${rd}.2" | ||
| 198 | else | ||
| 199 | n="`expr $n + 1`" | ||
| 200 | rd="${rd}.${n}" | ||
| 201 | fi | ||
| 202 | fi | ||
| 203 | mkdir "${rd}" | ||
| 204 | echo Results directory: $rd | ||
| 205 | kvm-test-1-rcu.sh $CONFIGFRAG/$kversion/$CF $builddir $rd $dur "-nographic $RCU_QEMU_ARG" "rcutorture.test_no_idle_hz=1 rcutorture.verbose=1 $RCU_BOOTARGS" | ||
| 206 | done | ||
| 207 | # Tracing: trace_event=rcu:rcu_grace_period,rcu:rcu_future_grace_period,rcu:rcu_grace_period_init,rcu:rcu_nocb_wake,rcu:rcu_preempt_task,rcu:rcu_unlock_preempted_task,rcu:rcu_quiescent_state_report,rcu:rcu_fqs,rcu:rcu_callback,rcu:rcu_kfree_callback,rcu:rcu_batch_start,rcu:rcu_invoke_callback,rcu:rcu_invoke_kfree_callback,rcu:rcu_batch_end,rcu:rcu_torture_read,rcu:rcu_barrier | ||
| 208 | |||
| 209 | echo " --- `date` Test summary:" | ||
| 210 | kvm-recheck.sh $resdir/$ds | ||
diff --git a/tools/testing/selftests/rcutorture/bin/parse-build.sh b/tools/testing/selftests/rcutorture/bin/parse-build.sh new file mode 100755 index 000000000000..543230951c38 --- /dev/null +++ b/tools/testing/selftests/rcutorture/bin/parse-build.sh | |||
| @@ -0,0 +1,57 @@ | |||
| 1 | #!/bin/sh | ||
| 2 | # | ||
| 3 | # Check the build output from an rcutorture run for goodness. | ||
| 4 | # The "file" is a pathname on the local system, and "title" is | ||
| 5 | # a text string for error-message purposes. | ||
| 6 | # | ||
| 7 | # The file must contain kernel build output. | ||
| 8 | # | ||
| 9 | # Usage: | ||
| 10 | # sh parse-build.sh file title | ||
| 11 | # | ||
| 12 | # This program is free software; you can redistribute it and/or modify | ||
| 13 | # it under the terms of the GNU General Public License as published by | ||
| 14 | # the Free Software Foundation; either version 2 of the License, or | ||
| 15 | # (at your option) any later version. | ||
| 16 | # | ||
| 17 | # This program is distributed in the hope that it will be useful, | ||
| 18 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 19 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 20 | # GNU General Public License for more details. | ||
| 21 | # | ||
| 22 | # You should have received a copy of the GNU General Public License | ||
| 23 | # along with this program; if not, you can access it online at | ||
| 24 | # http://www.gnu.org/licenses/gpl-2.0.html. | ||
| 25 | # | ||
| 26 | # Copyright (C) IBM Corporation, 2011 | ||
| 27 | # | ||
| 28 | # Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com> | ||
| 29 | |||
| 30 | T=$1 | ||
| 31 | title=$2 | ||
| 32 | |||
| 33 | . functions.sh | ||
| 34 | |||
| 35 | if grep -q CC < $T | ||
| 36 | then | ||
| 37 | : | ||
| 38 | else | ||
| 39 | print_bug $title no build | ||
| 40 | exit 1 | ||
| 41 | fi | ||
| 42 | |||
| 43 | if grep -q "error:" < $T | ||
| 44 | then | ||
| 45 | print_bug $title build errors: | ||
| 46 | grep "error:" < $T | ||
| 47 | exit 2 | ||
| 48 | fi | ||
| 49 | exit 0 | ||
| 50 | |||
| 51 | if egrep -q "rcu[^/]*\.c.*warning:|rcu.*\.h.*warning:" < $T | ||
| 52 | then | ||
| 53 | print_warning $title build errors: | ||
| 54 | egrep "rcu[^/]*\.c.*warning:|rcu.*\.h.*warning:" < $T | ||
| 55 | exit 2 | ||
| 56 | fi | ||
| 57 | exit 0 | ||
diff --git a/tools/testing/selftests/rcutorture/bin/parse-console.sh b/tools/testing/selftests/rcutorture/bin/parse-console.sh new file mode 100755 index 000000000000..4185d4cab32e --- /dev/null +++ b/tools/testing/selftests/rcutorture/bin/parse-console.sh | |||
| @@ -0,0 +1,41 @@ | |||
| 1 | #!/bin/sh | ||
| 2 | # | ||
| 3 | # Check the console output from an rcutorture run for oopses. | ||
| 4 | # The "file" is a pathname on the local system, and "title" is | ||
| 5 | # a text string for error-message purposes. | ||
| 6 | # | ||
| 7 | # Usage: | ||
| 8 | # sh parse-console.sh file title | ||
| 9 | # | ||
| 10 | # This program is free software; you can redistribute it and/or modify | ||
| 11 | # it under the terms of the GNU General Public License as published by | ||
| 12 | # the Free Software Foundation; either version 2 of the License, or | ||
| 13 | # (at your option) any later version. | ||
| 14 | # | ||
| 15 | # This program is distributed in the hope that it will be useful, | ||
| 16 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 17 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 18 | # GNU General Public License for more details. | ||
| 19 | # | ||
| 20 | # You should have received a copy of the GNU General Public License | ||
| 21 | # along with this program; if not, you can access it online at | ||
| 22 | # http://www.gnu.org/licenses/gpl-2.0.html. | ||
| 23 | # | ||
| 24 | # Copyright (C) IBM Corporation, 2011 | ||
| 25 | # | ||
| 26 | # Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com> | ||
| 27 | |||
| 28 | T=/tmp/abat-chk-badness.sh.$$ | ||
| 29 | trap 'rm -f $T' 0 | ||
| 30 | |||
| 31 | file="$1" | ||
| 32 | title="$2" | ||
| 33 | |||
| 34 | . functions.sh | ||
| 35 | |||
| 36 | egrep 'Badness|WARNING:|Warn|BUG|===========|Call Trace:|Oops:' < $file | grep -v 'ODEBUG: ' | grep -v 'Warning: unable to open an initial console' > $T | ||
| 37 | if test -s $T | ||
| 38 | then | ||
| 39 | print_warning Assertion failure in $file $title | ||
| 40 | cat $T | ||
| 41 | fi | ||
diff --git a/tools/testing/selftests/rcutorture/bin/parse-rcutorture.sh b/tools/testing/selftests/rcutorture/bin/parse-rcutorture.sh new file mode 100755 index 000000000000..dd0a275d9796 --- /dev/null +++ b/tools/testing/selftests/rcutorture/bin/parse-rcutorture.sh | |||
| @@ -0,0 +1,106 @@ | |||
| 1 | #!/bin/sh | ||
| 2 | # | ||
| 3 | # Check the console output from an rcutorture run for goodness. | ||
| 4 | # The "file" is a pathname on the local system, and "title" is | ||
| 5 | # a text string for error-message purposes. | ||
| 6 | # | ||
| 7 | # The file must contain rcutorture output, but can be interspersed | ||
| 8 | # with other dmesg text. | ||
| 9 | # | ||
| 10 | # Usage: | ||
| 11 | # sh parse-rcutorture.sh file title | ||
| 12 | # | ||
| 13 | # This program is free software; you can redistribute it and/or modify | ||
| 14 | # it under the terms of the GNU General Public License as published by | ||
| 15 | # the Free Software Foundation; either version 2 of the License, or | ||
| 16 | # (at your option) any later version. | ||
| 17 | # | ||
| 18 | # This program is distributed in the hope that it will be useful, | ||
| 19 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 20 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 21 | # GNU General Public License for more details. | ||
| 22 | # | ||
| 23 | # You should have received a copy of the GNU General Public License | ||
| 24 | # along with this program; if not, you can access it online at | ||
| 25 | # http://www.gnu.org/licenses/gpl-2.0.html. | ||
| 26 | # | ||
| 27 | # Copyright (C) IBM Corporation, 2011 | ||
| 28 | # | ||
| 29 | # Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com> | ||
| 30 | |||
| 31 | T=/tmp/parse-rcutorture.sh.$$ | ||
| 32 | file="$1" | ||
| 33 | title="$2" | ||
| 34 | |||
| 35 | trap 'rm -f $T.seq' 0 | ||
| 36 | |||
| 37 | . functions.sh | ||
| 38 | |||
| 39 | # check for presence of rcutorture.txt file | ||
| 40 | |||
| 41 | if test -f "$file" -a -r "$file" | ||
| 42 | then | ||
| 43 | : | ||
| 44 | else | ||
| 45 | echo $title unreadable rcutorture.txt file: $file | ||
| 46 | exit 1 | ||
| 47 | fi | ||
| 48 | |||
| 49 | # check for abject failure | ||
| 50 | |||
| 51 | if grep -q FAILURE $file || grep -q -e '-torture.*!!!' $file | ||
| 52 | then | ||
| 53 | nerrs=`grep --binary-files=text '!!!' $file | tail -1 | awk '{for (i=NF-8;i<=NF;i++) sum+=$i; } END {print sum}'` | ||
| 54 | print_bug $title FAILURE, $nerrs instances | ||
| 55 | echo " " $url | ||
| 56 | exit | ||
| 57 | fi | ||
| 58 | |||
| 59 | grep --binary-files=text 'torture:.*ver:' $file | grep --binary-files=text -v '(null)' | sed -e 's/^(initramfs)[^]]*] //' -e 's/^\[[^]]*] //' | | ||
| 60 | awk ' | ||
| 61 | BEGIN { | ||
| 62 | ver = 0; | ||
| 63 | badseq = 0; | ||
| 64 | } | ||
| 65 | |||
| 66 | { | ||
| 67 | if (!badseq && ($5 + 0 != $5 || $5 <= ver)) { | ||
| 68 | badseqno1 = ver; | ||
| 69 | badseqno2 = $5; | ||
| 70 | badseqnr = NR; | ||
| 71 | badseq = 1; | ||
| 72 | } | ||
| 73 | ver = $5 | ||
| 74 | } | ||
| 75 | |||
| 76 | END { | ||
| 77 | if (badseq) { | ||
| 78 | if (badseqno1 == badseqno2 && badseqno2 == ver) | ||
| 79 | print "RCU GP HANG at " ver " rcutorture stat " badseqnr; | ||
| 80 | else | ||
| 81 | print "BAD SEQ " badseqno1 ":" badseqno2 " last:" ver " RCU version " badseqnr; | ||
| 82 | } | ||
| 83 | }' > $T.seq | ||
| 84 | |||
| 85 | if grep -q SUCCESS $file | ||
| 86 | then | ||
| 87 | if test -s $T.seq | ||
| 88 | then | ||
| 89 | print_warning $title $title `cat $T.seq` | ||
| 90 | echo " " $file | ||
| 91 | exit 2 | ||
| 92 | fi | ||
| 93 | else | ||
| 94 | if grep -q RCU_HOTPLUG $file | ||
| 95 | then | ||
| 96 | print_warning HOTPLUG FAILURES $title `cat $T.seq` | ||
| 97 | echo " " $file | ||
| 98 | exit 3 | ||
| 99 | fi | ||
| 100 | echo $title no success message, `grep --binary-files=text 'ver:' $file | wc -l` successful RCU version messages | ||
| 101 | if test -s $T.seq | ||
| 102 | then | ||
| 103 | print_warning $title `cat $T.seq` | ||
| 104 | fi | ||
| 105 | exit 2 | ||
| 106 | fi | ||
diff --git a/tools/testing/selftests/rcutorture/configs/CFLIST b/tools/testing/selftests/rcutorture/configs/CFLIST new file mode 100644 index 000000000000..cd3d29cb0a47 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/CFLIST | |||
| @@ -0,0 +1,13 @@ | |||
| 1 | TREE01 | ||
| 2 | TREE02 | ||
| 3 | TREE03 | ||
| 4 | TREE04 | ||
| 5 | TREE05 | ||
| 6 | TREE06 | ||
| 7 | TREE07 | ||
| 8 | TREE08 | ||
| 9 | TREE09 | ||
| 10 | SRCU-N | ||
| 11 | SRCU-P | ||
| 12 | TINY01 | ||
| 13 | TINY02 | ||
diff --git a/tools/testing/selftests/rcutorture/configs/SRCU-N b/tools/testing/selftests/rcutorture/configs/SRCU-N new file mode 100644 index 000000000000..10a0e27f4c75 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/SRCU-N | |||
| @@ -0,0 +1,8 @@ | |||
| 1 | CONFIG_RCU_TRACE=n | ||
| 2 | CONFIG_SMP=y | ||
| 3 | CONFIG_NR_CPUS=8 | ||
| 4 | CONFIG_HOTPLUG_CPU=y | ||
| 5 | CONFIG_PREEMPT_NONE=y | ||
| 6 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 7 | CONFIG_PREEMPT=n | ||
| 8 | CONFIG_PRINTK_TIME=y | ||
diff --git a/tools/testing/selftests/rcutorture/configs/SRCU-N.boot b/tools/testing/selftests/rcutorture/configs/SRCU-N.boot new file mode 100644 index 000000000000..238bfe3bd0cc --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/SRCU-N.boot | |||
| @@ -0,0 +1 @@ | |||
| rcutorture.torture_type=srcu | |||
diff --git a/tools/testing/selftests/rcutorture/configs/SRCU-P b/tools/testing/selftests/rcutorture/configs/SRCU-P new file mode 100644 index 000000000000..6650e00c6d91 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/SRCU-P | |||
| @@ -0,0 +1,8 @@ | |||
| 1 | CONFIG_RCU_TRACE=n | ||
| 2 | CONFIG_SMP=y | ||
| 3 | CONFIG_NR_CPUS=8 | ||
| 4 | CONFIG_HOTPLUG_CPU=y | ||
| 5 | CONFIG_PREEMPT_NONE=n | ||
| 6 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 7 | CONFIG_PREEMPT=y | ||
| 8 | CONFIG_PRINTK_TIME=y | ||
diff --git a/tools/testing/selftests/rcutorture/configs/SRCU-P.boot b/tools/testing/selftests/rcutorture/configs/SRCU-P.boot new file mode 100644 index 000000000000..238bfe3bd0cc --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/SRCU-P.boot | |||
| @@ -0,0 +1 @@ | |||
| rcutorture.torture_type=srcu | |||
diff --git a/tools/testing/selftests/rcutorture/configs/TINY01 b/tools/testing/selftests/rcutorture/configs/TINY01 new file mode 100644 index 000000000000..0c2823f21712 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/TINY01 | |||
| @@ -0,0 +1,13 @@ | |||
| 1 | CONFIG_SMP=n | ||
| 2 | CONFIG_PREEMPT_NONE=y | ||
| 3 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 4 | CONFIG_PREEMPT=n | ||
| 5 | #CHECK#CONFIG_TINY_RCU=y | ||
| 6 | CONFIG_HZ_PERIODIC=n | ||
| 7 | CONFIG_NO_HZ_IDLE=y | ||
| 8 | CONFIG_NO_HZ_FULL=n | ||
| 9 | CONFIG_RCU_TRACE=n | ||
| 10 | CONFIG_DEBUG_LOCK_ALLOC=n | ||
| 11 | CONFIG_DEBUG_OBJECTS_RCU_HEAD=n | ||
| 12 | CONFIG_PREEMPT_COUNT=n | ||
| 13 | CONFIG_PRINTK_TIME=y | ||
diff --git a/tools/testing/selftests/rcutorture/configs/TINY02 b/tools/testing/selftests/rcutorture/configs/TINY02 new file mode 100644 index 000000000000..e5072d7528b6 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/TINY02 | |||
| @@ -0,0 +1,13 @@ | |||
| 1 | CONFIG_SMP=n | ||
| 2 | CONFIG_PREEMPT_NONE=y | ||
| 3 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 4 | CONFIG_PREEMPT=n | ||
| 5 | #CHECK#CONFIG_TINY_RCU=y | ||
| 6 | CONFIG_HZ_PERIODIC=y | ||
| 7 | CONFIG_NO_HZ_IDLE=n | ||
| 8 | CONFIG_NO_HZ_FULL=n | ||
| 9 | CONFIG_RCU_TRACE=y | ||
| 10 | CONFIG_DEBUG_LOCK_ALLOC=y | ||
| 11 | CONFIG_DEBUG_OBJECTS_RCU_HEAD=n | ||
| 12 | CONFIG_PREEMPT_COUNT=y | ||
| 13 | CONFIG_PRINTK_TIME=y | ||
diff --git a/tools/testing/selftests/rcutorture/configs/TREE01 b/tools/testing/selftests/rcutorture/configs/TREE01 new file mode 100644 index 000000000000..141119a00044 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/TREE01 | |||
| @@ -0,0 +1,23 @@ | |||
| 1 | CONFIG_SMP=y | ||
| 2 | CONFIG_NR_CPUS=8 | ||
| 3 | CONFIG_PREEMPT_NONE=n | ||
| 4 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 5 | CONFIG_PREEMPT=y | ||
| 6 | #CHECK#CONFIG_TREE_PREEMPT_RCU=y | ||
| 7 | CONFIG_HZ_PERIODIC=n | ||
| 8 | CONFIG_NO_HZ_IDLE=y | ||
| 9 | CONFIG_NO_HZ_FULL=n | ||
| 10 | CONFIG_RCU_FAST_NO_HZ=y | ||
| 11 | CONFIG_RCU_TRACE=y | ||
| 12 | CONFIG_HOTPLUG_CPU=y | ||
| 13 | CONFIG_RCU_FANOUT=8 | ||
| 14 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 15 | CONFIG_RCU_NOCB_CPU=y | ||
| 16 | CONFIG_RCU_NOCB_CPU_ZERO=y | ||
| 17 | CONFIG_DEBUG_LOCK_ALLOC=n | ||
| 18 | CONFIG_PROVE_RCU_DELAY=n | ||
| 19 | CONFIG_RCU_CPU_STALL_INFO=n | ||
| 20 | CONFIG_RCU_CPU_STALL_VERBOSE=n | ||
| 21 | CONFIG_RCU_BOOST=n | ||
| 22 | CONFIG_DEBUG_OBJECTS_RCU_HEAD=n | ||
| 23 | CONFIG_PRINTK_TIME=y | ||
diff --git a/tools/testing/selftests/rcutorture/configs/TREE01.boot b/tools/testing/selftests/rcutorture/configs/TREE01.boot new file mode 100644 index 000000000000..0fc8a3428938 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/TREE01.boot | |||
| @@ -0,0 +1 @@ | |||
| rcutorture.torture_type=rcu_bh | |||
diff --git a/tools/testing/selftests/rcutorture/configs/TREE02 b/tools/testing/selftests/rcutorture/configs/TREE02 new file mode 100644 index 000000000000..2d4d09608528 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/TREE02 | |||
| @@ -0,0 +1,26 @@ | |||
| 1 | CONFIG_SMP=y | ||
| 2 | CONFIG_NR_CPUS=8 | ||
| 3 | CONFIG_PREEMPT_NONE=n | ||
| 4 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 5 | CONFIG_PREEMPT=y | ||
| 6 | #CHECK#CONFIG_TREE_PREEMPT_RCU=y | ||
| 7 | CONFIG_HZ_PERIODIC=n | ||
| 8 | CONFIG_NO_HZ_IDLE=y | ||
| 9 | CONFIG_NO_HZ_FULL=n | ||
| 10 | CONFIG_RCU_FAST_NO_HZ=n | ||
| 11 | CONFIG_RCU_TRACE=n | ||
| 12 | CONFIG_HOTPLUG_CPU=n | ||
| 13 | CONFIG_SUSPEND=n | ||
| 14 | CONFIG_HIBERNATION=n | ||
| 15 | CONFIG_RCU_FANOUT=3 | ||
| 16 | CONFIG_RCU_FANOUT_LEAF=3 | ||
| 17 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 18 | CONFIG_RCU_NOCB_CPU=n | ||
| 19 | CONFIG_DEBUG_LOCK_ALLOC=y | ||
| 20 | CONFIG_PROVE_LOCKING=n | ||
| 21 | CONFIG_PROVE_RCU_DELAY=n | ||
| 22 | CONFIG_RCU_CPU_STALL_INFO=n | ||
| 23 | CONFIG_RCU_CPU_STALL_VERBOSE=y | ||
| 24 | CONFIG_RCU_BOOST=n | ||
| 25 | CONFIG_DEBUG_OBJECTS_RCU_HEAD=n | ||
| 26 | CONFIG_PRINTK_TIME=y | ||
diff --git a/tools/testing/selftests/rcutorture/configs/TREE03 b/tools/testing/selftests/rcutorture/configs/TREE03 new file mode 100644 index 000000000000..a47de5be8a04 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/TREE03 | |||
| @@ -0,0 +1,23 @@ | |||
| 1 | CONFIG_SMP=y | ||
| 2 | CONFIG_NR_CPUS=8 | ||
| 3 | CONFIG_PREEMPT_NONE=n | ||
| 4 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 5 | CONFIG_PREEMPT=y | ||
| 6 | #CHECK#CONFIG_TREE_PREEMPT_RCU=y | ||
| 7 | CONFIG_HZ_PERIODIC=y | ||
| 8 | CONFIG_NO_HZ_IDLE=n | ||
| 9 | CONFIG_NO_HZ_FULL=n | ||
| 10 | CONFIG_RCU_TRACE=y | ||
| 11 | CONFIG_HOTPLUG_CPU=y | ||
| 12 | CONFIG_RCU_FANOUT=4 | ||
| 13 | CONFIG_RCU_FANOUT_LEAF=4 | ||
| 14 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 15 | CONFIG_RCU_NOCB_CPU=n | ||
| 16 | CONFIG_DEBUG_LOCK_ALLOC=n | ||
| 17 | CONFIG_PROVE_RCU_DELAY=n | ||
| 18 | CONFIG_RCU_CPU_STALL_INFO=n | ||
| 19 | CONFIG_RCU_CPU_STALL_VERBOSE=n | ||
| 20 | CONFIG_RCU_BOOST=y | ||
| 21 | CONFIG_RCU_BOOST_PRIO=2 | ||
| 22 | CONFIG_DEBUG_OBJECTS_RCU_HEAD=n | ||
| 23 | CONFIG_PRINTK_TIME=y | ||
diff --git a/tools/testing/selftests/rcutorture/configs/TREE04 b/tools/testing/selftests/rcutorture/configs/TREE04 new file mode 100644 index 000000000000..8d839b86a1d5 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/TREE04 | |||
| @@ -0,0 +1,25 @@ | |||
| 1 | CONFIG_SMP=y | ||
| 2 | CONFIG_NR_CPUS=8 | ||
| 3 | CONFIG_PREEMPT_NONE=y | ||
| 4 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 5 | CONFIG_PREEMPT=n | ||
| 6 | #CHECK#CONFIG_TREE_RCU=y | ||
| 7 | CONFIG_HZ_PERIODIC=n | ||
| 8 | CONFIG_NO_HZ_IDLE=n | ||
| 9 | CONFIG_NO_HZ_FULL=y | ||
| 10 | CONFIG_NO_HZ_FULL_ALL=y | ||
| 11 | CONFIG_RCU_FAST_NO_HZ=y | ||
| 12 | CONFIG_RCU_TRACE=y | ||
| 13 | CONFIG_HOTPLUG_CPU=n | ||
| 14 | CONFIG_SUSPEND=n | ||
| 15 | CONFIG_HIBERNATION=n | ||
| 16 | CONFIG_RCU_FANOUT=2 | ||
| 17 | CONFIG_RCU_FANOUT_LEAF=2 | ||
| 18 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 19 | CONFIG_RCU_NOCB_CPU=n | ||
| 20 | CONFIG_DEBUG_LOCK_ALLOC=n | ||
| 21 | CONFIG_PROVE_RCU_DELAY=n | ||
| 22 | CONFIG_RCU_CPU_STALL_INFO=y | ||
| 23 | CONFIG_RCU_CPU_STALL_VERBOSE=y | ||
| 24 | CONFIG_DEBUG_OBJECTS_RCU_HEAD=n | ||
| 25 | CONFIG_PRINTK_TIME=y | ||
diff --git a/tools/testing/selftests/rcutorture/configs/TREE04.boot b/tools/testing/selftests/rcutorture/configs/TREE04.boot new file mode 100644 index 000000000000..0fc8a3428938 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/TREE04.boot | |||
| @@ -0,0 +1 @@ | |||
| rcutorture.torture_type=rcu_bh | |||
diff --git a/tools/testing/selftests/rcutorture/configs/TREE05 b/tools/testing/selftests/rcutorture/configs/TREE05 new file mode 100644 index 000000000000..b5ba72ea25cb --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/TREE05 | |||
| @@ -0,0 +1,25 @@ | |||
| 1 | CONFIG_SMP=y | ||
| 2 | CONFIG_NR_CPUS=8 | ||
| 3 | CONFIG_PREEMPT_NONE=y | ||
| 4 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 5 | CONFIG_PREEMPT=n | ||
| 6 | #CHECK#CONFIG_TREE_RCU=y | ||
| 7 | CONFIG_HZ_PERIODIC=n | ||
| 8 | CONFIG_NO_HZ_IDLE=y | ||
| 9 | CONFIG_NO_HZ_FULL=n | ||
| 10 | CONFIG_RCU_FAST_NO_HZ=n | ||
| 11 | CONFIG_RCU_TRACE=n | ||
| 12 | CONFIG_HOTPLUG_CPU=y | ||
| 13 | CONFIG_RCU_FANOUT=6 | ||
| 14 | CONFIG_RCU_FANOUT_LEAF=6 | ||
| 15 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 16 | CONFIG_RCU_NOCB_CPU=y | ||
| 17 | CONFIG_RCU_NOCB_CPU_NONE=y | ||
| 18 | CONFIG_DEBUG_LOCK_ALLOC=y | ||
| 19 | CONFIG_PROVE_LOCKING=y | ||
| 20 | CONFIG_PROVE_RCU=y | ||
| 21 | CONFIG_PROVE_RCU_DELAY=y | ||
| 22 | CONFIG_RCU_CPU_STALL_INFO=n | ||
| 23 | CONFIG_RCU_CPU_STALL_VERBOSE=n | ||
| 24 | CONFIG_DEBUG_OBJECTS_RCU_HEAD=n | ||
| 25 | CONFIG_PRINTK_TIME=y | ||
diff --git a/tools/testing/selftests/rcutorture/configs/TREE05.boot b/tools/testing/selftests/rcutorture/configs/TREE05.boot new file mode 100644 index 000000000000..3b42b8b033cd --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/TREE05.boot | |||
| @@ -0,0 +1 @@ | |||
| rcutorture.torture_type=sched | |||
diff --git a/tools/testing/selftests/rcutorture/configs/TREE06 b/tools/testing/selftests/rcutorture/configs/TREE06 new file mode 100644 index 000000000000..7c95ab48d29f --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/TREE06 | |||
| @@ -0,0 +1,26 @@ | |||
| 1 | CONFIG_SMP=y | ||
| 2 | CONFIG_NR_CPUS=8 | ||
| 3 | CONFIG_PREEMPT_NONE=y | ||
| 4 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 5 | CONFIG_PREEMPT=n | ||
| 6 | #CHECK#CONFIG_TREE_RCU=y | ||
| 7 | CONFIG_HZ_PERIODIC=n | ||
| 8 | CONFIG_NO_HZ_IDLE=y | ||
| 9 | CONFIG_NO_HZ_FULL=n | ||
| 10 | CONFIG_RCU_FAST_NO_HZ=n | ||
| 11 | CONFIG_RCU_TRACE=n | ||
| 12 | CONFIG_HOTPLUG_CPU=n | ||
| 13 | CONFIG_SUSPEND=n | ||
| 14 | CONFIG_HIBERNATION=n | ||
| 15 | CONFIG_RCU_FANOUT=6 | ||
| 16 | CONFIG_RCU_FANOUT_LEAF=6 | ||
| 17 | CONFIG_RCU_FANOUT_EXACT=y | ||
| 18 | CONFIG_RCU_NOCB_CPU=n | ||
| 19 | CONFIG_DEBUG_LOCK_ALLOC=y | ||
| 20 | CONFIG_PROVE_LOCKING=y | ||
| 21 | CONFIG_PROVE_RCU=y | ||
| 22 | CONFIG_PROVE_RCU_DELAY=n | ||
| 23 | CONFIG_RCU_CPU_STALL_INFO=n | ||
| 24 | CONFIG_RCU_CPU_STALL_VERBOSE=n | ||
| 25 | CONFIG_DEBUG_OBJECTS_RCU_HEAD=y | ||
| 26 | CONFIG_PRINTK_TIME=y | ||
diff --git a/tools/testing/selftests/rcutorture/configs/TREE07 b/tools/testing/selftests/rcutorture/configs/TREE07 new file mode 100644 index 000000000000..1467404bdec1 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/TREE07 | |||
| @@ -0,0 +1,24 @@ | |||
| 1 | CONFIG_SMP=y | ||
| 2 | CONFIG_NR_CPUS=16 | ||
| 3 | CONFIG_PREEMPT_NONE=y | ||
| 4 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 5 | CONFIG_PREEMPT=n | ||
| 6 | #CHECK#CONFIG_TREE_RCU=y | ||
| 7 | CONFIG_HZ_PERIODIC=n | ||
| 8 | CONFIG_NO_HZ_IDLE=n | ||
| 9 | CONFIG_NO_HZ_FULL=y | ||
| 10 | CONFIG_NO_HZ_FULL_ALL=y | ||
| 11 | CONFIG_NO_HZ_FULL_SYSIDLE=y | ||
| 12 | CONFIG_RCU_FAST_NO_HZ=n | ||
| 13 | CONFIG_RCU_TRACE=y | ||
| 14 | CONFIG_HOTPLUG_CPU=y | ||
| 15 | CONFIG_RCU_FANOUT=2 | ||
| 16 | CONFIG_RCU_FANOUT_LEAF=2 | ||
| 17 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 18 | CONFIG_RCU_NOCB_CPU=n | ||
| 19 | CONFIG_DEBUG_LOCK_ALLOC=n | ||
| 20 | CONFIG_PROVE_RCU_DELAY=n | ||
| 21 | CONFIG_RCU_CPU_STALL_INFO=y | ||
| 22 | CONFIG_RCU_CPU_STALL_VERBOSE=n | ||
| 23 | CONFIG_DEBUG_OBJECTS_RCU_HEAD=n | ||
| 24 | CONFIG_PRINTK_TIME=y | ||
diff --git a/tools/testing/selftests/rcutorture/configs/TREE08 b/tools/testing/selftests/rcutorture/configs/TREE08 new file mode 100644 index 000000000000..7d097a61ac2a --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/TREE08 | |||
| @@ -0,0 +1,26 @@ | |||
| 1 | CONFIG_SMP=y | ||
| 2 | CONFIG_NR_CPUS=16 | ||
| 3 | CONFIG_PREEMPT_NONE=n | ||
| 4 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 5 | CONFIG_PREEMPT=y | ||
| 6 | #CHECK#CONFIG_TREE_PREEMPT_RCU=y | ||
| 7 | CONFIG_HZ_PERIODIC=n | ||
| 8 | CONFIG_NO_HZ_IDLE=y | ||
| 9 | CONFIG_NO_HZ_FULL=n | ||
| 10 | CONFIG_RCU_FAST_NO_HZ=n | ||
| 11 | CONFIG_RCU_TRACE=n | ||
| 12 | CONFIG_HOTPLUG_CPU=n | ||
| 13 | CONFIG_SUSPEND=n | ||
| 14 | CONFIG_HIBERNATION=n | ||
| 15 | CONFIG_RCU_FANOUT=3 | ||
| 16 | CONFIG_RCU_FANOUT_EXACT=y | ||
| 17 | CONFIG_RCU_FANOUT_LEAF=2 | ||
| 18 | CONFIG_RCU_NOCB_CPU=y | ||
| 19 | CONFIG_RCU_NOCB_CPU_ALL=y | ||
| 20 | CONFIG_DEBUG_LOCK_ALLOC=n | ||
| 21 | CONFIG_PROVE_RCU_DELAY=n | ||
| 22 | CONFIG_RCU_CPU_STALL_INFO=n | ||
| 23 | CONFIG_RCU_CPU_STALL_VERBOSE=n | ||
| 24 | CONFIG_RCU_BOOST=n | ||
| 25 | CONFIG_DEBUG_OBJECTS_RCU_HEAD=n | ||
| 26 | CONFIG_PRINTK_TIME=y | ||
diff --git a/tools/testing/selftests/rcutorture/configs/TREE08-T b/tools/testing/selftests/rcutorture/configs/TREE08-T new file mode 100644 index 000000000000..442c4e450ab3 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/TREE08-T | |||
| @@ -0,0 +1,26 @@ | |||
| 1 | CONFIG_SMP=y | ||
| 2 | CONFIG_NR_CPUS=16 | ||
| 3 | CONFIG_PREEMPT_NONE=n | ||
| 4 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 5 | CONFIG_PREEMPT=y | ||
| 6 | #CHECK#CONFIG_TREE_PREEMPT_RCU=y | ||
| 7 | CONFIG_HZ_PERIODIC=n | ||
| 8 | CONFIG_NO_HZ_IDLE=y | ||
| 9 | CONFIG_NO_HZ_FULL=n | ||
| 10 | CONFIG_RCU_FAST_NO_HZ=n | ||
| 11 | CONFIG_RCU_TRACE=y | ||
| 12 | CONFIG_HOTPLUG_CPU=n | ||
| 13 | CONFIG_SUSPEND=n | ||
| 14 | CONFIG_HIBERNATION=n | ||
| 15 | CONFIG_RCU_FANOUT=3 | ||
| 16 | CONFIG_RCU_FANOUT_EXACT=y | ||
| 17 | CONFIG_RCU_FANOUT_LEAF=2 | ||
| 18 | CONFIG_RCU_NOCB_CPU=y | ||
| 19 | CONFIG_RCU_NOCB_CPU_ALL=y | ||
| 20 | CONFIG_DEBUG_LOCK_ALLOC=n | ||
| 21 | CONFIG_PROVE_RCU_DELAY=n | ||
| 22 | CONFIG_RCU_CPU_STALL_INFO=n | ||
| 23 | CONFIG_RCU_CPU_STALL_VERBOSE=n | ||
| 24 | CONFIG_RCU_BOOST=n | ||
| 25 | CONFIG_DEBUG_OBJECTS_RCU_HEAD=n | ||
| 26 | CONFIG_PRINTK_TIME=y | ||
diff --git a/tools/testing/selftests/rcutorture/configs/TREE09 b/tools/testing/selftests/rcutorture/configs/TREE09 new file mode 100644 index 000000000000..0d1ec0d3dfee --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/TREE09 | |||
| @@ -0,0 +1,21 @@ | |||
| 1 | CONFIG_SMP=n | ||
| 2 | CONFIG_NR_CPUS=1 | ||
| 3 | CONFIG_PREEMPT_NONE=n | ||
| 4 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 5 | CONFIG_PREEMPT=y | ||
| 6 | #CHECK#CONFIG_TREE_PREEMPT_RCU=y | ||
| 7 | CONFIG_HZ_PERIODIC=n | ||
| 8 | CONFIG_NO_HZ_IDLE=y | ||
| 9 | CONFIG_NO_HZ_FULL=n | ||
| 10 | CONFIG_RCU_TRACE=n | ||
| 11 | CONFIG_HOTPLUG_CPU=n | ||
| 12 | CONFIG_SUSPEND=n | ||
| 13 | CONFIG_HIBERNATION=n | ||
| 14 | CONFIG_RCU_NOCB_CPU=n | ||
| 15 | CONFIG_DEBUG_LOCK_ALLOC=n | ||
| 16 | CONFIG_PROVE_RCU_DELAY=n | ||
| 17 | CONFIG_RCU_CPU_STALL_INFO=n | ||
| 18 | CONFIG_RCU_CPU_STALL_VERBOSE=n | ||
| 19 | CONFIG_RCU_BOOST=n | ||
| 20 | CONFIG_DEBUG_OBJECTS_RCU_HEAD=n | ||
| 21 | CONFIG_PRINTK_TIME=y | ||
diff --git a/tools/testing/selftests/rcutorture/configs/v0.0/CFLIST b/tools/testing/selftests/rcutorture/configs/v0.0/CFLIST new file mode 100644 index 000000000000..18223947bbcb --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v0.0/CFLIST | |||
| @@ -0,0 +1,14 @@ | |||
| 1 | P1-S-T-NH-SD-SMP-HP | ||
| 2 | P2-2-t-nh-sd-SMP-hp | ||
| 3 | P3-3-T-nh-SD-SMP-hp | ||
| 4 | P4-A-t-NH-sd-SMP-HP | ||
| 5 | P5-U-T-NH-sd-SMP-hp | ||
| 6 | N1-S-T-NH-SD-SMP-HP | ||
| 7 | N2-2-t-nh-sd-SMP-hp | ||
| 8 | N3-3-T-nh-SD-SMP-hp | ||
| 9 | N4-A-t-NH-sd-SMP-HP | ||
| 10 | N5-U-T-NH-sd-SMP-hp | ||
| 11 | PT1-nh | ||
| 12 | PT2-NH | ||
| 13 | NT1-nh | ||
| 14 | NT3-NH | ||
diff --git a/tools/testing/selftests/rcutorture/configs/v0.0/N1-S-T-NH-SD-SMP-HP b/tools/testing/selftests/rcutorture/configs/v0.0/N1-S-T-NH-SD-SMP-HP new file mode 100644 index 000000000000..d3ef873eb6e7 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v0.0/N1-S-T-NH-SD-SMP-HP | |||
| @@ -0,0 +1,18 @@ | |||
| 1 | CONFIG_RCU_TRACE=y | ||
| 2 | CONFIG_NO_HZ=y | ||
| 3 | CONFIG_SMP=y | ||
| 4 | CONFIG_RCU_FANOUT=8 | ||
| 5 | CONFIG_NR_CPUS=8 | ||
| 6 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 7 | CONFIG_HOTPLUG_CPU=y | ||
| 8 | CONFIG_PREEMPT_NONE=y | ||
| 9 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 10 | CONFIG_PREEMPT=n | ||
| 11 | #CHECK#CONFIG_TREE_RCU=y | ||
| 12 | CONFIG_RCU_TORTURE_TEST=m | ||
| 13 | CONFIG_MODULE_UNLOAD=y | ||
| 14 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 15 | CONFIG_IKCONFIG=y | ||
| 16 | CONFIG_IKCONFIG_PROC=y | ||
| 17 | CONFIG_PRINTK_TIME=y | ||
| 18 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v0.0/N2-2-t-nh-sd-SMP-hp b/tools/testing/selftests/rcutorture/configs/v0.0/N2-2-t-nh-sd-SMP-hp new file mode 100644 index 000000000000..02e418572b1b --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v0.0/N2-2-t-nh-sd-SMP-hp | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | CONFIG_RCU_TRACE=n | ||
| 2 | CONFIG_NO_HZ=n | ||
| 3 | CONFIG_SMP=y | ||
| 4 | CONFIG_RCU_FANOUT=4 | ||
| 5 | CONFIG_NR_CPUS=8 | ||
| 6 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 7 | CONFIG_HOTPLUG_CPU=n | ||
| 8 | CONFIG_SUSPEND=n | ||
| 9 | CONFIG_HIBERNATION=n | ||
| 10 | CONFIG_PREEMPT_NONE=y | ||
| 11 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 12 | CONFIG_PREEMPT=n | ||
| 13 | #CHECK#CONFIG_TREE_RCU=y | ||
| 14 | CONFIG_RCU_TORTURE_TEST=m | ||
| 15 | CONFIG_MODULE_UNLOAD=y | ||
| 16 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 17 | CONFIG_IKCONFIG=y | ||
| 18 | CONFIG_IKCONFIG_PROC=y | ||
| 19 | CONFIG_PRINTK_TIME=y | ||
| 20 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v0.0/N3-3-T-nh-SD-SMP-hp b/tools/testing/selftests/rcutorture/configs/v0.0/N3-3-T-nh-SD-SMP-hp new file mode 100644 index 000000000000..b3100f69c8cf --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v0.0/N3-3-T-nh-SD-SMP-hp | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | CONFIG_RCU_TRACE=y | ||
| 2 | CONFIG_NO_HZ=n | ||
| 3 | CONFIG_SMP=y | ||
| 4 | CONFIG_RCU_FANOUT=2 | ||
| 5 | CONFIG_NR_CPUS=8 | ||
| 6 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 7 | CONFIG_HOTPLUG_CPU=n | ||
| 8 | CONFIG_SUSPEND=n | ||
| 9 | CONFIG_HIBERNATION=n | ||
| 10 | CONFIG_PREEMPT_NONE=y | ||
| 11 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 12 | CONFIG_PREEMPT=n | ||
| 13 | #CHECK#CONFIG_TREE_RCU=y | ||
| 14 | CONFIG_RCU_TORTURE_TEST=m | ||
| 15 | CONFIG_MODULE_UNLOAD=y | ||
| 16 | CONFIG_PROVE_LOCKING=y | ||
| 17 | CONFIG_PROVE_RCU=y | ||
| 18 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 19 | CONFIG_IKCONFIG=y | ||
| 20 | CONFIG_IKCONFIG_PROC=y | ||
| 21 | CONFIG_PRINTK_TIME=y | ||
| 22 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v0.0/N4-A-t-NH-sd-SMP-HP b/tools/testing/selftests/rcutorture/configs/v0.0/N4-A-t-NH-sd-SMP-HP new file mode 100644 index 000000000000..c56b44530725 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v0.0/N4-A-t-NH-sd-SMP-HP | |||
| @@ -0,0 +1,18 @@ | |||
| 1 | CONFIG_RCU_TRACE=n | ||
| 2 | CONFIG_NO_HZ=y | ||
| 3 | CONFIG_SMP=y | ||
| 4 | CONFIG_RCU_FANOUT=6 | ||
| 5 | CONFIG_NR_CPUS=8 | ||
| 6 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 7 | CONFIG_HOTPLUG_CPU=y | ||
| 8 | CONFIG_PREEMPT_NONE=y | ||
| 9 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 10 | CONFIG_PREEMPT=n | ||
| 11 | #CHECK#CONFIG_TREE_RCU=y | ||
| 12 | CONFIG_RCU_TORTURE_TEST=m | ||
| 13 | CONFIG_MODULE_UNLOAD=y | ||
| 14 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 15 | CONFIG_IKCONFIG=y | ||
| 16 | CONFIG_IKCONFIG_PROC=y | ||
| 17 | CONFIG_PRINTK_TIME=y | ||
| 18 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v0.0/N5-U-T-NH-sd-SMP-hp b/tools/testing/selftests/rcutorture/configs/v0.0/N5-U-T-NH-sd-SMP-hp new file mode 100644 index 000000000000..90d924fea9e9 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v0.0/N5-U-T-NH-sd-SMP-hp | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | CONFIG_RCU_TRACE=y | ||
| 2 | CONFIG_DEBUG_KERNEL=y | ||
| 3 | CONFIG_RCU_CPU_STALL_INFO=y | ||
| 4 | CONFIG_NO_HZ=y | ||
| 5 | CONFIG_SMP=y | ||
| 6 | CONFIG_RCU_FANOUT=6 | ||
| 7 | CONFIG_NR_CPUS=8 | ||
| 8 | CONFIG_RCU_FANOUT_EXACT=y | ||
| 9 | CONFIG_HOTPLUG_CPU=n | ||
| 10 | CONFIG_SUSPEND=n | ||
| 11 | CONFIG_HIBERNATION=n | ||
| 12 | CONFIG_PREEMPT_NONE=y | ||
| 13 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 14 | CONFIG_PREEMPT=n | ||
| 15 | #CHECK#CONFIG_TREE_RCU=y | ||
| 16 | CONFIG_RCU_TORTURE_TEST=m | ||
| 17 | CONFIG_MODULE_UNLOAD=y | ||
| 18 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 19 | CONFIG_IKCONFIG=y | ||
| 20 | CONFIG_IKCONFIG_PROC=y | ||
| 21 | CONFIG_PRINTK_TIME=y | ||
| 22 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v0.0/NT1-nh b/tools/testing/selftests/rcutorture/configs/v0.0/NT1-nh new file mode 100644 index 000000000000..023f312a931c --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v0.0/NT1-nh | |||
| @@ -0,0 +1,23 @@ | |||
| 1 | #CHECK#CONFIG_TINY_RCU=y | ||
| 2 | CONFIG_RCU_TRACE=y | ||
| 3 | CONFIG_RCU_TORTURE_TEST=m | ||
| 4 | CONFIG_MODULE_UNLOAD=y | ||
| 5 | CONFIG_SUSPEND=n | ||
| 6 | CONFIG_HIBERNATION=n | ||
| 7 | # | ||
| 8 | CONFIG_SMP=n | ||
| 9 | # | ||
| 10 | CONFIG_HOTPLUG_CPU=n | ||
| 11 | # | ||
| 12 | CONFIG_NO_HZ=n | ||
| 13 | # | ||
| 14 | CONFIG_PREEMPT_NONE=y | ||
| 15 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 16 | CONFIG_PREEMPT=n | ||
| 17 | CONFIG_PROVE_LOCKING=y | ||
| 18 | CONFIG_PROVE_RCU=y | ||
| 19 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 20 | CONFIG_IKCONFIG=y | ||
| 21 | CONFIG_IKCONFIG_PROC=y | ||
| 22 | CONFIG_PRINTK_TIME=y | ||
| 23 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v0.0/NT3-NH b/tools/testing/selftests/rcutorture/configs/v0.0/NT3-NH new file mode 100644 index 000000000000..6fd0235dae73 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v0.0/NT3-NH | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | #CHECK#CONFIG_TINY_RCU=y | ||
| 2 | CONFIG_RCU_TORTURE_TEST=m | ||
| 3 | CONFIG_MODULE_UNLOAD=y | ||
| 4 | CONFIG_SUSPEND=n | ||
| 5 | CONFIG_HIBERNATION=n | ||
| 6 | # | ||
| 7 | CONFIG_SMP=n | ||
| 8 | # | ||
| 9 | CONFIG_HOTPLUG_CPU=n | ||
| 10 | # | ||
| 11 | CONFIG_NO_HZ=y | ||
| 12 | # | ||
| 13 | CONFIG_PREEMPT_NONE=y | ||
| 14 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 15 | CONFIG_PREEMPT=n | ||
| 16 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 17 | CONFIG_IKCONFIG=y | ||
| 18 | CONFIG_IKCONFIG_PROC=y | ||
| 19 | CONFIG_PRINTK_TIME=y | ||
| 20 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v0.0/P1-S-T-NH-SD-SMP-HP b/tools/testing/selftests/rcutorture/configs/v0.0/P1-S-T-NH-SD-SMP-HP new file mode 100644 index 000000000000..f72402d7c13d --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v0.0/P1-S-T-NH-SD-SMP-HP | |||
| @@ -0,0 +1,19 @@ | |||
| 1 | CONFIG_RCU_TRACE=y | ||
| 2 | CONFIG_RCU_CPU_STALL_INFO=y | ||
| 3 | CONFIG_NO_HZ=y | ||
| 4 | CONFIG_SMP=y | ||
| 5 | CONFIG_RCU_FANOUT=8 | ||
| 6 | CONFIG_NR_CPUS=8 | ||
| 7 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 8 | CONFIG_HOTPLUG_CPU=y | ||
| 9 | CONFIG_PREEMPT_NONE=n | ||
| 10 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 11 | CONFIG_PREEMPT=y | ||
| 12 | #CHECK#CONFIG_TREE_PREEMPT_RCU=y | ||
| 13 | CONFIG_RCU_TORTURE_TEST=m | ||
| 14 | CONFIG_MODULE_UNLOAD=y | ||
| 15 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 16 | CONFIG_IKCONFIG=y | ||
| 17 | CONFIG_IKCONFIG_PROC=y | ||
| 18 | CONFIG_PRINTK_TIME=y | ||
| 19 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v0.0/P2-2-t-nh-sd-SMP-hp b/tools/testing/selftests/rcutorture/configs/v0.0/P2-2-t-nh-sd-SMP-hp new file mode 100644 index 000000000000..0f3b667d2a9f --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v0.0/P2-2-t-nh-sd-SMP-hp | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | CONFIG_RCU_TRACE=n | ||
| 2 | CONFIG_NO_HZ=n | ||
| 3 | CONFIG_SMP=y | ||
| 4 | CONFIG_RCU_FANOUT=4 | ||
| 5 | CONFIG_NR_CPUS=8 | ||
| 6 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 7 | CONFIG_HOTPLUG_CPU=n | ||
| 8 | CONFIG_SUSPEND=n | ||
| 9 | CONFIG_HIBERNATION=n | ||
| 10 | CONFIG_PREEMPT_NONE=n | ||
| 11 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 12 | CONFIG_PREEMPT=y | ||
| 13 | #CHECK#CONFIG_TREE_PREEMPT_RCU=y | ||
| 14 | CONFIG_RCU_TORTURE_TEST=m | ||
| 15 | CONFIG_MODULE_UNLOAD=y | ||
| 16 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 17 | CONFIG_IKCONFIG=y | ||
| 18 | CONFIG_IKCONFIG_PROC=y | ||
| 19 | CONFIG_PRINTK_TIME=y | ||
| 20 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v0.0/P3-3-T-nh-SD-SMP-hp b/tools/testing/selftests/rcutorture/configs/v0.0/P3-3-T-nh-SD-SMP-hp new file mode 100644 index 000000000000..b035e141bf2a --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v0.0/P3-3-T-nh-SD-SMP-hp | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | CONFIG_RCU_TRACE=y | ||
| 2 | CONFIG_NO_HZ=n | ||
| 3 | CONFIG_SMP=y | ||
| 4 | CONFIG_RCU_FANOUT=2 | ||
| 5 | CONFIG_NR_CPUS=8 | ||
| 6 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 7 | CONFIG_HOTPLUG_CPU=n | ||
| 8 | CONFIG_SUSPEND=n | ||
| 9 | CONFIG_HIBERNATION=n | ||
| 10 | CONFIG_PREEMPT_NONE=n | ||
| 11 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 12 | CONFIG_PREEMPT=y | ||
| 13 | #CHECK#CONFIG_TREE_PREEMPT_RCU=y | ||
| 14 | CONFIG_RCU_TORTURE_TEST=m | ||
| 15 | CONFIG_MODULE_UNLOAD=y | ||
| 16 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 17 | CONFIG_IKCONFIG=y | ||
| 18 | CONFIG_IKCONFIG_PROC=y | ||
| 19 | CONFIG_PRINTK_TIME=y | ||
| 20 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v0.0/P4-A-t-NH-sd-SMP-HP b/tools/testing/selftests/rcutorture/configs/v0.0/P4-A-t-NH-sd-SMP-HP new file mode 100644 index 000000000000..3ccf6a9447f5 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v0.0/P4-A-t-NH-sd-SMP-HP | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | CONFIG_RCU_TRACE=n | ||
| 2 | CONFIG_NO_HZ=y | ||
| 3 | CONFIG_SMP=y | ||
| 4 | CONFIG_RCU_FANOUT=6 | ||
| 5 | CONFIG_NR_CPUS=8 | ||
| 6 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 7 | CONFIG_HOTPLUG_CPU=y | ||
| 8 | CONFIG_PREEMPT_NONE=n | ||
| 9 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 10 | CONFIG_PREEMPT=y | ||
| 11 | #CHECK#CONFIG_TREE_PREEMPT_RCU=y | ||
| 12 | CONFIG_RCU_TORTURE_TEST=m | ||
| 13 | CONFIG_MODULE_UNLOAD=y | ||
| 14 | CONFIG_RT_MUTEXES=y | ||
| 15 | CONFIG_RCU_BOOST=y | ||
| 16 | CONFIG_RCU_BOOST_PRIO=2 | ||
| 17 | CONFIG_PROVE_LOCKING=y | ||
| 18 | CONFIG_PROVE_RCU=y | ||
| 19 | CONFIG_IKCONFIG=y | ||
| 20 | CONFIG_IKCONFIG_PROC=y | ||
| 21 | CONFIG_PRINTK_TIME=y | ||
| 22 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v0.0/P5-U-T-NH-sd-SMP-hp b/tools/testing/selftests/rcutorture/configs/v0.0/P5-U-T-NH-sd-SMP-hp new file mode 100644 index 000000000000..ef624ce73d8e --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v0.0/P5-U-T-NH-sd-SMP-hp | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | CONFIG_RCU_TRACE=y | ||
| 2 | CONFIG_RCU_CPU_STALL_INFO=y | ||
| 3 | CONFIG_NO_HZ=y | ||
| 4 | CONFIG_SMP=y | ||
| 5 | CONFIG_RCU_FANOUT=6 | ||
| 6 | CONFIG_NR_CPUS=8 | ||
| 7 | CONFIG_RCU_FANOUT_EXACT=y | ||
| 8 | CONFIG_HOTPLUG_CPU=n | ||
| 9 | CONFIG_SUSPEND=n | ||
| 10 | CONFIG_HIBERNATION=n | ||
| 11 | CONFIG_PREEMPT_NONE=n | ||
| 12 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 13 | CONFIG_PREEMPT=y | ||
| 14 | #CHECK#CONFIG_TREE_PREEMPT_RCU=y | ||
| 15 | CONFIG_DEBUG_KERNEL=y | ||
| 16 | CONFIG_PROVE_RCU_DELAY=y | ||
| 17 | CONFIG_DEBUG_OBJECTS=y | ||
| 18 | CONFIG_DEBUG_OBJECTS_RCU_HEAD=y | ||
| 19 | CONFIG_RT_MUTEXES=y | ||
| 20 | CONFIG_RCU_BOOST=y | ||
| 21 | CONFIG_RCU_BOOST_PRIO=2 | ||
| 22 | CONFIG_RCU_TORTURE_TEST=m | ||
| 23 | CONFIG_MODULE_UNLOAD=y | ||
| 24 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 25 | CONFIG_IKCONFIG=y | ||
| 26 | CONFIG_IKCONFIG_PROC=y | ||
| 27 | CONFIG_PRINTK_TIME=y | ||
| 28 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v0.0/PT1-nh b/tools/testing/selftests/rcutorture/configs/v0.0/PT1-nh new file mode 100644 index 000000000000..e3361c3894a1 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v0.0/PT1-nh | |||
| @@ -0,0 +1,23 @@ | |||
| 1 | CONFIG_TINY_PREEMPT_RCU=y | ||
| 2 | CONFIG_RCU_BOOST=y | ||
| 3 | CONFIG_RCU_BOOST_PRIO=2 | ||
| 4 | CONFIG_RCU_TRACE=y | ||
| 5 | CONFIG_RCU_TORTURE_TEST=m | ||
| 6 | CONFIG_MODULE_UNLOAD=y | ||
| 7 | CONFIG_SUSPEND=n | ||
| 8 | CONFIG_HIBERNATION=n | ||
| 9 | # | ||
| 10 | CONFIG_SMP=n | ||
| 11 | # | ||
| 12 | CONFIG_HOTPLUG_CPU=n | ||
| 13 | # | ||
| 14 | CONFIG_NO_HZ=n | ||
| 15 | # | ||
| 16 | CONFIG_PREEMPT_NONE=n | ||
| 17 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 18 | CONFIG_PREEMPT=y | ||
| 19 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 20 | CONFIG_IKCONFIG=y | ||
| 21 | CONFIG_IKCONFIG_PROC=y | ||
| 22 | CONFIG_PRINTK_TIME=y | ||
| 23 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v0.0/PT2-NH b/tools/testing/selftests/rcutorture/configs/v0.0/PT2-NH new file mode 100644 index 000000000000..64abfc3b4d94 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v0.0/PT2-NH | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | CONFIG_TINY_PREEMPT_RCU=y | ||
| 2 | CONFIG_RCU_TORTURE_TEST=m | ||
| 3 | CONFIG_MODULE_UNLOAD=y | ||
| 4 | CONFIG_SUSPEND=n | ||
| 5 | CONFIG_HIBERNATION=n | ||
| 6 | # | ||
| 7 | CONFIG_SMP=n | ||
| 8 | # | ||
| 9 | CONFIG_HOTPLUG_CPU=n | ||
| 10 | # | ||
| 11 | CONFIG_NO_HZ=y | ||
| 12 | # | ||
| 13 | CONFIG_PREEMPT_NONE=n | ||
| 14 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 15 | CONFIG_PREEMPT=y | ||
| 16 | CONFIG_PROVE_LOCKING=y | ||
| 17 | CONFIG_PROVE_RCU=y | ||
| 18 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 19 | CONFIG_IKCONFIG=y | ||
| 20 | CONFIG_IKCONFIG_PROC=y | ||
| 21 | CONFIG_PRINTK_TIME=y | ||
| 22 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v0.0/ver_functions.sh b/tools/testing/selftests/rcutorture/configs/v0.0/ver_functions.sh new file mode 100644 index 000000000000..e8052539af54 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v0.0/ver_functions.sh | |||
| @@ -0,0 +1,35 @@ | |||
| 1 | #!/bin/bash | ||
| 2 | # | ||
| 3 | # Kernel-version-dependent shell functions for the rest of the scripts. | ||
| 4 | # | ||
| 5 | # This program is free software; you can redistribute it and/or modify | ||
| 6 | # it under the terms of the GNU General Public License as published by | ||
| 7 | # the Free Software Foundation; either version 2 of the License, or | ||
| 8 | # (at your option) any later version. | ||
| 9 | # | ||
| 10 | # This program is distributed in the hope that it will be useful, | ||
| 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 13 | # GNU General Public License for more details. | ||
| 14 | # | ||
| 15 | # You should have received a copy of the GNU General Public License | ||
| 16 | # along with this program; if not, you can access it online at | ||
| 17 | # http://www.gnu.org/licenses/gpl-2.0.html. | ||
| 18 | # | ||
| 19 | # Copyright (C) IBM Corporation, 2013 | ||
| 20 | # | ||
| 21 | # Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com> | ||
| 22 | |||
| 23 | # rcutorture_param_n_barrier_cbs bootparam-string | ||
| 24 | # | ||
| 25 | # Adds n_barrier_cbs rcutorture module parameter to kernels having it. | ||
| 26 | rcutorture_param_n_barrier_cbs () { | ||
| 27 | echo $1 | ||
| 28 | } | ||
| 29 | |||
| 30 | # rcutorture_param_onoff bootparam-string config-file | ||
| 31 | # | ||
| 32 | # Adds onoff rcutorture module parameters to kernels having it. | ||
| 33 | rcutorture_param_onoff () { | ||
| 34 | echo $1 | ||
| 35 | } | ||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.12/CFLIST b/tools/testing/selftests/rcutorture/configs/v3.12/CFLIST new file mode 100644 index 000000000000..da4cbc668f2a --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.12/CFLIST | |||
| @@ -0,0 +1,17 @@ | |||
| 1 | sysidleY.2013.06.19a | ||
| 2 | sysidleN.2013.06.19a | ||
| 3 | P1-S-T-NH-SD-SMP-HP | ||
| 4 | P2-2-t-nh-sd-SMP-hp | ||
| 5 | P3-3-T-nh-SD-SMP-hp | ||
| 6 | P4-A-t-NH-sd-SMP-HP | ||
| 7 | P5-U-T-NH-sd-SMP-hp | ||
| 8 | P6---t-nh-SD-smp-hp | ||
| 9 | N1-S-T-NH-SD-SMP-HP | ||
| 10 | N2-2-t-nh-sd-SMP-hp | ||
| 11 | N3-3-T-nh-SD-SMP-hp | ||
| 12 | N4-A-t-NH-sd-SMP-HP | ||
| 13 | N5-U-T-NH-sd-SMP-hp | ||
| 14 | PT1-nh | ||
| 15 | PT2-NH | ||
| 16 | NT1-nh | ||
| 17 | NT3-NH | ||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.12/N1-S-T-NH-SD-SMP-HP b/tools/testing/selftests/rcutorture/configs/v3.12/N1-S-T-NH-SD-SMP-HP new file mode 100644 index 000000000000..d81e11d280aa --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.12/N1-S-T-NH-SD-SMP-HP | |||
| @@ -0,0 +1,19 @@ | |||
| 1 | CONFIG_RCU_TRACE=y | ||
| 2 | CONFIG_RCU_FAST_NO_HZ=y | ||
| 3 | CONFIG_NO_HZ=y | ||
| 4 | CONFIG_SMP=y | ||
| 5 | CONFIG_RCU_FANOUT=8 | ||
| 6 | CONFIG_NR_CPUS=8 | ||
| 7 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 8 | CONFIG_HOTPLUG_CPU=y | ||
| 9 | CONFIG_PREEMPT_NONE=y | ||
| 10 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 11 | CONFIG_PREEMPT=n | ||
| 12 | #CHECK#CONFIG_TREE_RCU=y | ||
| 13 | CONFIG_RCU_TORTURE_TEST=m | ||
| 14 | CONFIG_MODULE_UNLOAD=y | ||
| 15 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 16 | CONFIG_IKCONFIG=y | ||
| 17 | CONFIG_IKCONFIG_PROC=y | ||
| 18 | CONFIG_PRINTK_TIME=y | ||
| 19 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.12/N2-2-t-nh-sd-SMP-hp b/tools/testing/selftests/rcutorture/configs/v3.12/N2-2-t-nh-sd-SMP-hp new file mode 100644 index 000000000000..02e418572b1b --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.12/N2-2-t-nh-sd-SMP-hp | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | CONFIG_RCU_TRACE=n | ||
| 2 | CONFIG_NO_HZ=n | ||
| 3 | CONFIG_SMP=y | ||
| 4 | CONFIG_RCU_FANOUT=4 | ||
| 5 | CONFIG_NR_CPUS=8 | ||
| 6 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 7 | CONFIG_HOTPLUG_CPU=n | ||
| 8 | CONFIG_SUSPEND=n | ||
| 9 | CONFIG_HIBERNATION=n | ||
| 10 | CONFIG_PREEMPT_NONE=y | ||
| 11 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 12 | CONFIG_PREEMPT=n | ||
| 13 | #CHECK#CONFIG_TREE_RCU=y | ||
| 14 | CONFIG_RCU_TORTURE_TEST=m | ||
| 15 | CONFIG_MODULE_UNLOAD=y | ||
| 16 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 17 | CONFIG_IKCONFIG=y | ||
| 18 | CONFIG_IKCONFIG_PROC=y | ||
| 19 | CONFIG_PRINTK_TIME=y | ||
| 20 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.12/N3-3-T-nh-SD-SMP-hp b/tools/testing/selftests/rcutorture/configs/v3.12/N3-3-T-nh-SD-SMP-hp new file mode 100644 index 000000000000..b3100f69c8cf --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.12/N3-3-T-nh-SD-SMP-hp | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | CONFIG_RCU_TRACE=y | ||
| 2 | CONFIG_NO_HZ=n | ||
| 3 | CONFIG_SMP=y | ||
| 4 | CONFIG_RCU_FANOUT=2 | ||
| 5 | CONFIG_NR_CPUS=8 | ||
| 6 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 7 | CONFIG_HOTPLUG_CPU=n | ||
| 8 | CONFIG_SUSPEND=n | ||
| 9 | CONFIG_HIBERNATION=n | ||
| 10 | CONFIG_PREEMPT_NONE=y | ||
| 11 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 12 | CONFIG_PREEMPT=n | ||
| 13 | #CHECK#CONFIG_TREE_RCU=y | ||
| 14 | CONFIG_RCU_TORTURE_TEST=m | ||
| 15 | CONFIG_MODULE_UNLOAD=y | ||
| 16 | CONFIG_PROVE_LOCKING=y | ||
| 17 | CONFIG_PROVE_RCU=y | ||
| 18 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 19 | CONFIG_IKCONFIG=y | ||
| 20 | CONFIG_IKCONFIG_PROC=y | ||
| 21 | CONFIG_PRINTK_TIME=y | ||
| 22 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.12/N4-A-t-NH-sd-SMP-HP b/tools/testing/selftests/rcutorture/configs/v3.12/N4-A-t-NH-sd-SMP-HP new file mode 100644 index 000000000000..c56b44530725 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.12/N4-A-t-NH-sd-SMP-HP | |||
| @@ -0,0 +1,18 @@ | |||
| 1 | CONFIG_RCU_TRACE=n | ||
| 2 | CONFIG_NO_HZ=y | ||
| 3 | CONFIG_SMP=y | ||
| 4 | CONFIG_RCU_FANOUT=6 | ||
| 5 | CONFIG_NR_CPUS=8 | ||
| 6 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 7 | CONFIG_HOTPLUG_CPU=y | ||
| 8 | CONFIG_PREEMPT_NONE=y | ||
| 9 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 10 | CONFIG_PREEMPT=n | ||
| 11 | #CHECK#CONFIG_TREE_RCU=y | ||
| 12 | CONFIG_RCU_TORTURE_TEST=m | ||
| 13 | CONFIG_MODULE_UNLOAD=y | ||
| 14 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 15 | CONFIG_IKCONFIG=y | ||
| 16 | CONFIG_IKCONFIG_PROC=y | ||
| 17 | CONFIG_PRINTK_TIME=y | ||
| 18 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.12/N5-U-T-NH-sd-SMP-hp b/tools/testing/selftests/rcutorture/configs/v3.12/N5-U-T-NH-sd-SMP-hp new file mode 100644 index 000000000000..90d924fea9e9 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.12/N5-U-T-NH-sd-SMP-hp | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | CONFIG_RCU_TRACE=y | ||
| 2 | CONFIG_DEBUG_KERNEL=y | ||
| 3 | CONFIG_RCU_CPU_STALL_INFO=y | ||
| 4 | CONFIG_NO_HZ=y | ||
| 5 | CONFIG_SMP=y | ||
| 6 | CONFIG_RCU_FANOUT=6 | ||
| 7 | CONFIG_NR_CPUS=8 | ||
| 8 | CONFIG_RCU_FANOUT_EXACT=y | ||
| 9 | CONFIG_HOTPLUG_CPU=n | ||
| 10 | CONFIG_SUSPEND=n | ||
| 11 | CONFIG_HIBERNATION=n | ||
| 12 | CONFIG_PREEMPT_NONE=y | ||
| 13 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 14 | CONFIG_PREEMPT=n | ||
| 15 | #CHECK#CONFIG_TREE_RCU=y | ||
| 16 | CONFIG_RCU_TORTURE_TEST=m | ||
| 17 | CONFIG_MODULE_UNLOAD=y | ||
| 18 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 19 | CONFIG_IKCONFIG=y | ||
| 20 | CONFIG_IKCONFIG_PROC=y | ||
| 21 | CONFIG_PRINTK_TIME=y | ||
| 22 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.12/N6---t-nh-SD-smp-hp b/tools/testing/selftests/rcutorture/configs/v3.12/N6---t-nh-SD-smp-hp new file mode 100644 index 000000000000..0ccc36d72738 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.12/N6---t-nh-SD-smp-hp | |||
| @@ -0,0 +1,19 @@ | |||
| 1 | CONFIG_RCU_TRACE=n | ||
| 2 | CONFIG_NO_HZ=n | ||
| 3 | CONFIG_SMP=y | ||
| 4 | CONFIG_NR_CPUS=1 | ||
| 5 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 6 | CONFIG_HOTPLUG_CPU=n | ||
| 7 | CONFIG_SUSPEND=n | ||
| 8 | CONFIG_HIBERNATION=n | ||
| 9 | CONFIG_PREEMPT_NONE=y | ||
| 10 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 11 | CONFIG_PREEMPT=n | ||
| 12 | #CHECK#CONFIG_TREE_RCU=y | ||
| 13 | CONFIG_RCU_TORTURE_TEST=m | ||
| 14 | CONFIG_MODULE_UNLOAD=y | ||
| 15 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 16 | CONFIG_IKCONFIG=y | ||
| 17 | CONFIG_IKCONFIG_PROC=y | ||
| 18 | CONFIG_PRINTK_TIME=y | ||
| 19 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.12/N7-4-T-NH-SD-SMP-HP b/tools/testing/selftests/rcutorture/configs/v3.12/N7-4-T-NH-SD-SMP-HP new file mode 100644 index 000000000000..3f640cf84973 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.12/N7-4-T-NH-SD-SMP-HP | |||
| @@ -0,0 +1,26 @@ | |||
| 1 | CONFIG_RCU_TRACE=y | ||
| 2 | CONFIG_DEBUG_KERNEL=y | ||
| 3 | CONFIG_RCU_CPU_STALL_INFO=y | ||
| 4 | CONFIG_NO_HZ=y | ||
| 5 | CONFIG_SMP=y | ||
| 6 | CONFIG_RCU_FANOUT=2 | ||
| 7 | CONFIG_NR_CPUS=16 | ||
| 8 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 9 | CONFIG_HOTPLUG_CPU=y | ||
| 10 | CONFIG_RCU_NOCB_CPU=y | ||
| 11 | CONFIG_RCU_NOCB_CPU_NONE=y | ||
| 12 | CONFIG_RCU_NOCB_CPU_ZERO=n | ||
| 13 | CONFIG_RCU_NOCB_CPU_ALL=n | ||
| 14 | CONFIG_SUSPEND=n | ||
| 15 | CONFIG_HIBERNATION=n | ||
| 16 | CONFIG_PREEMPT_NONE=y | ||
| 17 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 18 | CONFIG_PREEMPT=n | ||
| 19 | #CHECK#CONFIG_TREE_RCU=y | ||
| 20 | CONFIG_RCU_TORTURE_TEST=m | ||
| 21 | CONFIG_MODULE_UNLOAD=y | ||
| 22 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 23 | CONFIG_IKCONFIG=y | ||
| 24 | CONFIG_IKCONFIG_PROC=y | ||
| 25 | CONFIG_PRINTK_TIME=y | ||
| 26 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.12/N8-2-T-NH-SD-SMP-HP b/tools/testing/selftests/rcutorture/configs/v3.12/N8-2-T-NH-SD-SMP-HP new file mode 100644 index 000000000000..285da2dd8ac3 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.12/N8-2-T-NH-SD-SMP-HP | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | CONFIG_RCU_TRACE=y | ||
| 2 | CONFIG_DEBUG_KERNEL=y | ||
| 3 | CONFIG_RCU_CPU_STALL_INFO=y | ||
| 4 | CONFIG_NO_HZ=y | ||
| 5 | CONFIG_SMP=y | ||
| 6 | CONFIG_RCU_FANOUT=14 | ||
| 7 | CONFIG_NR_CPUS=16 | ||
| 8 | CONFIG_RCU_FANOUT_EXACT=y | ||
| 9 | CONFIG_HOTPLUG_CPU=y | ||
| 10 | CONFIG_SUSPEND=n | ||
| 11 | CONFIG_HIBERNATION=n | ||
| 12 | CONFIG_PREEMPT_NONE=y | ||
| 13 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 14 | CONFIG_PREEMPT=n | ||
| 15 | #CHECK#CONFIG_TREE_RCU=y | ||
| 16 | CONFIG_RCU_TORTURE_TEST=m | ||
| 17 | CONFIG_MODULE_UNLOAD=y | ||
| 18 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 19 | CONFIG_IKCONFIG=y | ||
| 20 | CONFIG_IKCONFIG_PROC=y | ||
| 21 | CONFIG_PRINTK_TIME=y | ||
| 22 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.12/NT1-nh b/tools/testing/selftests/rcutorture/configs/v3.12/NT1-nh new file mode 100644 index 000000000000..023f312a931c --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.12/NT1-nh | |||
| @@ -0,0 +1,23 @@ | |||
| 1 | #CHECK#CONFIG_TINY_RCU=y | ||
| 2 | CONFIG_RCU_TRACE=y | ||
| 3 | CONFIG_RCU_TORTURE_TEST=m | ||
| 4 | CONFIG_MODULE_UNLOAD=y | ||
| 5 | CONFIG_SUSPEND=n | ||
| 6 | CONFIG_HIBERNATION=n | ||
| 7 | # | ||
| 8 | CONFIG_SMP=n | ||
| 9 | # | ||
| 10 | CONFIG_HOTPLUG_CPU=n | ||
| 11 | # | ||
| 12 | CONFIG_NO_HZ=n | ||
| 13 | # | ||
| 14 | CONFIG_PREEMPT_NONE=y | ||
| 15 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 16 | CONFIG_PREEMPT=n | ||
| 17 | CONFIG_PROVE_LOCKING=y | ||
| 18 | CONFIG_PROVE_RCU=y | ||
| 19 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 20 | CONFIG_IKCONFIG=y | ||
| 21 | CONFIG_IKCONFIG_PROC=y | ||
| 22 | CONFIG_PRINTK_TIME=y | ||
| 23 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.12/NT3-NH b/tools/testing/selftests/rcutorture/configs/v3.12/NT3-NH new file mode 100644 index 000000000000..6fd0235dae73 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.12/NT3-NH | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | #CHECK#CONFIG_TINY_RCU=y | ||
| 2 | CONFIG_RCU_TORTURE_TEST=m | ||
| 3 | CONFIG_MODULE_UNLOAD=y | ||
| 4 | CONFIG_SUSPEND=n | ||
| 5 | CONFIG_HIBERNATION=n | ||
| 6 | # | ||
| 7 | CONFIG_SMP=n | ||
| 8 | # | ||
| 9 | CONFIG_HOTPLUG_CPU=n | ||
| 10 | # | ||
| 11 | CONFIG_NO_HZ=y | ||
| 12 | # | ||
| 13 | CONFIG_PREEMPT_NONE=y | ||
| 14 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 15 | CONFIG_PREEMPT=n | ||
| 16 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 17 | CONFIG_IKCONFIG=y | ||
| 18 | CONFIG_IKCONFIG_PROC=y | ||
| 19 | CONFIG_PRINTK_TIME=y | ||
| 20 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.12/P1-S-T-NH-SD-SMP-HP b/tools/testing/selftests/rcutorture/configs/v3.12/P1-S-T-NH-SD-SMP-HP new file mode 100644 index 000000000000..9647c44cf4b7 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.12/P1-S-T-NH-SD-SMP-HP | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | CONFIG_RCU_TRACE=y | ||
| 2 | CONFIG_RCU_CPU_STALL_INFO=y | ||
| 3 | CONFIG_NO_HZ=y | ||
| 4 | CONFIG_RCU_FAST_NO_HZ=y | ||
| 5 | CONFIG_SMP=y | ||
| 6 | CONFIG_RCU_FANOUT=8 | ||
| 7 | CONFIG_NR_CPUS=8 | ||
| 8 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 9 | CONFIG_HOTPLUG_CPU=y | ||
| 10 | CONFIG_PREEMPT_NONE=n | ||
| 11 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 12 | CONFIG_PREEMPT=y | ||
| 13 | #CHECK#CONFIG_TREE_PREEMPT_RCU=y | ||
| 14 | CONFIG_RCU_TORTURE_TEST=m | ||
| 15 | CONFIG_MODULE_UNLOAD=y | ||
| 16 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 17 | CONFIG_IKCONFIG=y | ||
| 18 | CONFIG_IKCONFIG_PROC=y | ||
| 19 | CONFIG_PRINTK_TIME=y | ||
| 20 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.12/P2-2-t-nh-sd-SMP-hp b/tools/testing/selftests/rcutorture/configs/v3.12/P2-2-t-nh-sd-SMP-hp new file mode 100644 index 000000000000..0f3b667d2a9f --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.12/P2-2-t-nh-sd-SMP-hp | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | CONFIG_RCU_TRACE=n | ||
| 2 | CONFIG_NO_HZ=n | ||
| 3 | CONFIG_SMP=y | ||
| 4 | CONFIG_RCU_FANOUT=4 | ||
| 5 | CONFIG_NR_CPUS=8 | ||
| 6 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 7 | CONFIG_HOTPLUG_CPU=n | ||
| 8 | CONFIG_SUSPEND=n | ||
| 9 | CONFIG_HIBERNATION=n | ||
| 10 | CONFIG_PREEMPT_NONE=n | ||
| 11 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 12 | CONFIG_PREEMPT=y | ||
| 13 | #CHECK#CONFIG_TREE_PREEMPT_RCU=y | ||
| 14 | CONFIG_RCU_TORTURE_TEST=m | ||
| 15 | CONFIG_MODULE_UNLOAD=y | ||
| 16 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 17 | CONFIG_IKCONFIG=y | ||
| 18 | CONFIG_IKCONFIG_PROC=y | ||
| 19 | CONFIG_PRINTK_TIME=y | ||
| 20 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.12/P3-3-T-nh-SD-SMP-hp b/tools/testing/selftests/rcutorture/configs/v3.12/P3-3-T-nh-SD-SMP-hp new file mode 100644 index 000000000000..b035e141bf2a --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.12/P3-3-T-nh-SD-SMP-hp | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | CONFIG_RCU_TRACE=y | ||
| 2 | CONFIG_NO_HZ=n | ||
| 3 | CONFIG_SMP=y | ||
| 4 | CONFIG_RCU_FANOUT=2 | ||
| 5 | CONFIG_NR_CPUS=8 | ||
| 6 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 7 | CONFIG_HOTPLUG_CPU=n | ||
| 8 | CONFIG_SUSPEND=n | ||
| 9 | CONFIG_HIBERNATION=n | ||
| 10 | CONFIG_PREEMPT_NONE=n | ||
| 11 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 12 | CONFIG_PREEMPT=y | ||
| 13 | #CHECK#CONFIG_TREE_PREEMPT_RCU=y | ||
| 14 | CONFIG_RCU_TORTURE_TEST=m | ||
| 15 | CONFIG_MODULE_UNLOAD=y | ||
| 16 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 17 | CONFIG_IKCONFIG=y | ||
| 18 | CONFIG_IKCONFIG_PROC=y | ||
| 19 | CONFIG_PRINTK_TIME=y | ||
| 20 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.12/P4-A-t-NH-sd-SMP-HP b/tools/testing/selftests/rcutorture/configs/v3.12/P4-A-t-NH-sd-SMP-HP new file mode 100644 index 000000000000..3ccf6a9447f5 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.12/P4-A-t-NH-sd-SMP-HP | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | CONFIG_RCU_TRACE=n | ||
| 2 | CONFIG_NO_HZ=y | ||
| 3 | CONFIG_SMP=y | ||
| 4 | CONFIG_RCU_FANOUT=6 | ||
| 5 | CONFIG_NR_CPUS=8 | ||
| 6 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 7 | CONFIG_HOTPLUG_CPU=y | ||
| 8 | CONFIG_PREEMPT_NONE=n | ||
| 9 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 10 | CONFIG_PREEMPT=y | ||
| 11 | #CHECK#CONFIG_TREE_PREEMPT_RCU=y | ||
| 12 | CONFIG_RCU_TORTURE_TEST=m | ||
| 13 | CONFIG_MODULE_UNLOAD=y | ||
| 14 | CONFIG_RT_MUTEXES=y | ||
| 15 | CONFIG_RCU_BOOST=y | ||
| 16 | CONFIG_RCU_BOOST_PRIO=2 | ||
| 17 | CONFIG_PROVE_LOCKING=y | ||
| 18 | CONFIG_PROVE_RCU=y | ||
| 19 | CONFIG_IKCONFIG=y | ||
| 20 | CONFIG_IKCONFIG_PROC=y | ||
| 21 | CONFIG_PRINTK_TIME=y | ||
| 22 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.12/P5-U-T-NH-sd-SMP-hp b/tools/testing/selftests/rcutorture/configs/v3.12/P5-U-T-NH-sd-SMP-hp new file mode 100644 index 000000000000..ef624ce73d8e --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.12/P5-U-T-NH-sd-SMP-hp | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | CONFIG_RCU_TRACE=y | ||
| 2 | CONFIG_RCU_CPU_STALL_INFO=y | ||
| 3 | CONFIG_NO_HZ=y | ||
| 4 | CONFIG_SMP=y | ||
| 5 | CONFIG_RCU_FANOUT=6 | ||
| 6 | CONFIG_NR_CPUS=8 | ||
| 7 | CONFIG_RCU_FANOUT_EXACT=y | ||
| 8 | CONFIG_HOTPLUG_CPU=n | ||
| 9 | CONFIG_SUSPEND=n | ||
| 10 | CONFIG_HIBERNATION=n | ||
| 11 | CONFIG_PREEMPT_NONE=n | ||
| 12 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 13 | CONFIG_PREEMPT=y | ||
| 14 | #CHECK#CONFIG_TREE_PREEMPT_RCU=y | ||
| 15 | CONFIG_DEBUG_KERNEL=y | ||
| 16 | CONFIG_PROVE_RCU_DELAY=y | ||
| 17 | CONFIG_DEBUG_OBJECTS=y | ||
| 18 | CONFIG_DEBUG_OBJECTS_RCU_HEAD=y | ||
| 19 | CONFIG_RT_MUTEXES=y | ||
| 20 | CONFIG_RCU_BOOST=y | ||
| 21 | CONFIG_RCU_BOOST_PRIO=2 | ||
| 22 | CONFIG_RCU_TORTURE_TEST=m | ||
| 23 | CONFIG_MODULE_UNLOAD=y | ||
| 24 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 25 | CONFIG_IKCONFIG=y | ||
| 26 | CONFIG_IKCONFIG_PROC=y | ||
| 27 | CONFIG_PRINTK_TIME=y | ||
| 28 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.12/P6---t-nh-SD-smp-hp b/tools/testing/selftests/rcutorture/configs/v3.12/P6---t-nh-SD-smp-hp new file mode 100644 index 000000000000..f4c9175828bf --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.12/P6---t-nh-SD-smp-hp | |||
| @@ -0,0 +1,18 @@ | |||
| 1 | CONFIG_RCU_TRACE=n | ||
| 2 | CONFIG_NO_HZ=n | ||
| 3 | CONFIG_SMP=n | ||
| 4 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 5 | CONFIG_HOTPLUG_CPU=n | ||
| 6 | CONFIG_SUSPEND=n | ||
| 7 | CONFIG_HIBERNATION=n | ||
| 8 | CONFIG_PREEMPT_NONE=n | ||
| 9 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 10 | CONFIG_PREEMPT=y | ||
| 11 | CONFIG_TREE_PREEMPT_RCU=y | ||
| 12 | CONFIG_RCU_TORTURE_TEST=m | ||
| 13 | CONFIG_MODULE_UNLOAD=y | ||
| 14 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 15 | CONFIG_IKCONFIG=y | ||
| 16 | CONFIG_IKCONFIG_PROC=y | ||
| 17 | CONFIG_PRINTK_TIME=y | ||
| 18 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.12/P7-4-T-NH-SD-SMP-HP b/tools/testing/selftests/rcutorture/configs/v3.12/P7-4-T-NH-SD-SMP-HP new file mode 100644 index 000000000000..77a8c5b75763 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.12/P7-4-T-NH-SD-SMP-HP | |||
| @@ -0,0 +1,30 @@ | |||
| 1 | CONFIG_RCU_TRACE=y | ||
| 2 | CONFIG_NO_HZ=y | ||
| 3 | CONFIG_SMP=y | ||
| 4 | CONFIG_RCU_FANOUT=2 | ||
| 5 | CONFIG_NR_CPUS=16 | ||
| 6 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 7 | CONFIG_HOTPLUG_CPU=y | ||
| 8 | CONFIG_RCU_NOCB_CPU=y | ||
| 9 | CONFIG_RCU_NOCB_CPU_NONE=n | ||
| 10 | CONFIG_RCU_NOCB_CPU_ZERO=n | ||
| 11 | CONFIG_RCU_NOCB_CPU_ALL=y | ||
| 12 | CONFIG_SUSPEND=n | ||
| 13 | CONFIG_HIBERNATION=n | ||
| 14 | CONFIG_PREEMPT_NONE=n | ||
| 15 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 16 | CONFIG_PREEMPT=y | ||
| 17 | #CHECK#CONFIG_TREE_PREEMPT_RCU=y | ||
| 18 | CONFIG_RCU_TORTURE_TEST=m | ||
| 19 | CONFIG_MODULE_UNLOAD=y | ||
| 20 | CONFIG_PROVE_LOCKING=y | ||
| 21 | CONFIG_PROVE_RCU=y | ||
| 22 | CONFIG_DEBUG_KERNEL=y | ||
| 23 | CONFIG_DEBUG_OBJECTS=y | ||
| 24 | CONFIG_DEBUG_OBJECTS_RCU_HEAD=y | ||
| 25 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 26 | CONFIG_SLUB=y | ||
| 27 | CONFIG_IKCONFIG=y | ||
| 28 | CONFIG_IKCONFIG_PROC=y | ||
| 29 | CONFIG_PRINTK_TIME=y | ||
| 30 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.12/P7-4-T-NH-SD-SMP-HP-all b/tools/testing/selftests/rcutorture/configs/v3.12/P7-4-T-NH-SD-SMP-HP-all new file mode 100644 index 000000000000..0eecebc6e95f --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.12/P7-4-T-NH-SD-SMP-HP-all | |||
| @@ -0,0 +1,30 @@ | |||
| 1 | CONFIG_RCU_TRACE=y | ||
| 2 | CONFIG_NO_HZ=y | ||
| 3 | CONFIG_SMP=y | ||
| 4 | CONFIG_RCU_FANOUT=2 | ||
| 5 | CONFIG_NR_CPUS=16 | ||
| 6 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 7 | CONFIG_HOTPLUG_CPU=y | ||
| 8 | CONFIG_RCU_NOCB_CPU=y | ||
| 9 | CONFIG_RCU_NOCB_CPU_NONE=y | ||
| 10 | CONFIG_RCU_NOCB_CPU_ZERO=n | ||
| 11 | CONFIG_RCU_NOCB_CPU_ALL=n | ||
| 12 | CONFIG_SUSPEND=n | ||
| 13 | CONFIG_HIBERNATION=n | ||
| 14 | CONFIG_PREEMPT_NONE=n | ||
| 15 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 16 | CONFIG_PREEMPT=y | ||
| 17 | #CHECK#CONFIG_TREE_PREEMPT_RCU=y | ||
| 18 | CONFIG_RCU_TORTURE_TEST=m | ||
| 19 | CONFIG_MODULE_UNLOAD=y | ||
| 20 | CONFIG_PROVE_LOCKING=y | ||
| 21 | CONFIG_PROVE_RCU=y | ||
| 22 | CONFIG_DEBUG_KERNEL=y | ||
| 23 | CONFIG_DEBUG_OBJECTS=y | ||
| 24 | CONFIG_DEBUG_OBJECTS_RCU_HEAD=y | ||
| 25 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 26 | CONFIG_SLUB=y | ||
| 27 | CONFIG_IKCONFIG=y | ||
| 28 | CONFIG_IKCONFIG_PROC=y | ||
| 29 | CONFIG_PRINTK_TIME=y | ||
| 30 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.12/P7-4-T-NH-SD-SMP-HP-none b/tools/testing/selftests/rcutorture/configs/v3.12/P7-4-T-NH-SD-SMP-HP-none new file mode 100644 index 000000000000..0eecebc6e95f --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.12/P7-4-T-NH-SD-SMP-HP-none | |||
| @@ -0,0 +1,30 @@ | |||
| 1 | CONFIG_RCU_TRACE=y | ||
| 2 | CONFIG_NO_HZ=y | ||
| 3 | CONFIG_SMP=y | ||
| 4 | CONFIG_RCU_FANOUT=2 | ||
| 5 | CONFIG_NR_CPUS=16 | ||
| 6 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 7 | CONFIG_HOTPLUG_CPU=y | ||
| 8 | CONFIG_RCU_NOCB_CPU=y | ||
| 9 | CONFIG_RCU_NOCB_CPU_NONE=y | ||
| 10 | CONFIG_RCU_NOCB_CPU_ZERO=n | ||
| 11 | CONFIG_RCU_NOCB_CPU_ALL=n | ||
| 12 | CONFIG_SUSPEND=n | ||
| 13 | CONFIG_HIBERNATION=n | ||
| 14 | CONFIG_PREEMPT_NONE=n | ||
| 15 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 16 | CONFIG_PREEMPT=y | ||
| 17 | #CHECK#CONFIG_TREE_PREEMPT_RCU=y | ||
| 18 | CONFIG_RCU_TORTURE_TEST=m | ||
| 19 | CONFIG_MODULE_UNLOAD=y | ||
| 20 | CONFIG_PROVE_LOCKING=y | ||
| 21 | CONFIG_PROVE_RCU=y | ||
| 22 | CONFIG_DEBUG_KERNEL=y | ||
| 23 | CONFIG_DEBUG_OBJECTS=y | ||
| 24 | CONFIG_DEBUG_OBJECTS_RCU_HEAD=y | ||
| 25 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 26 | CONFIG_SLUB=y | ||
| 27 | CONFIG_IKCONFIG=y | ||
| 28 | CONFIG_IKCONFIG_PROC=y | ||
| 29 | CONFIG_PRINTK_TIME=y | ||
| 30 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.12/P7-4-T-NH-SD-SMP-hp b/tools/testing/selftests/rcutorture/configs/v3.12/P7-4-T-NH-SD-SMP-hp new file mode 100644 index 000000000000..588bc70420cd --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.12/P7-4-T-NH-SD-SMP-hp | |||
| @@ -0,0 +1,30 @@ | |||
| 1 | CONFIG_RCU_TRACE=y | ||
| 2 | CONFIG_NO_HZ=y | ||
| 3 | CONFIG_SMP=y | ||
| 4 | CONFIG_RCU_FANOUT=2 | ||
| 5 | CONFIG_NR_CPUS=16 | ||
| 6 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 7 | CONFIG_HOTPLUG_CPU=n | ||
| 8 | CONFIG_RCU_NOCB_CPU=y | ||
| 9 | CONFIG_RCU_NOCB_CPU_NONE=n | ||
| 10 | CONFIG_RCU_NOCB_CPU_ZERO=y | ||
| 11 | CONFIG_RCU_NOCB_CPU_ALL=n | ||
| 12 | CONFIG_SUSPEND=n | ||
| 13 | CONFIG_HIBERNATION=n | ||
| 14 | CONFIG_PREEMPT_NONE=n | ||
| 15 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 16 | CONFIG_PREEMPT=y | ||
| 17 | #CHECK#CONFIG_TREE_PREEMPT_RCU=y | ||
| 18 | CONFIG_RCU_TORTURE_TEST=m | ||
| 19 | CONFIG_MODULE_UNLOAD=y | ||
| 20 | CONFIG_PROVE_LOCKING=y | ||
| 21 | CONFIG_PROVE_RCU=y | ||
| 22 | CONFIG_DEBUG_KERNEL=y | ||
| 23 | CONFIG_DEBUG_OBJECTS=y | ||
| 24 | CONFIG_DEBUG_OBJECTS_RCU_HEAD=y | ||
| 25 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 26 | CONFIG_SLUB=y | ||
| 27 | CONFIG_IKCONFIG=y | ||
| 28 | CONFIG_IKCONFIG_PROC=y | ||
| 29 | CONFIG_PRINTK_TIME=y | ||
| 30 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.12/PT1-nh b/tools/testing/selftests/rcutorture/configs/v3.12/PT1-nh new file mode 100644 index 000000000000..e3361c3894a1 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.12/PT1-nh | |||
| @@ -0,0 +1,23 @@ | |||
| 1 | CONFIG_TINY_PREEMPT_RCU=y | ||
| 2 | CONFIG_RCU_BOOST=y | ||
| 3 | CONFIG_RCU_BOOST_PRIO=2 | ||
| 4 | CONFIG_RCU_TRACE=y | ||
| 5 | CONFIG_RCU_TORTURE_TEST=m | ||
| 6 | CONFIG_MODULE_UNLOAD=y | ||
| 7 | CONFIG_SUSPEND=n | ||
| 8 | CONFIG_HIBERNATION=n | ||
| 9 | # | ||
| 10 | CONFIG_SMP=n | ||
| 11 | # | ||
| 12 | CONFIG_HOTPLUG_CPU=n | ||
| 13 | # | ||
| 14 | CONFIG_NO_HZ=n | ||
| 15 | # | ||
| 16 | CONFIG_PREEMPT_NONE=n | ||
| 17 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 18 | CONFIG_PREEMPT=y | ||
| 19 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 20 | CONFIG_IKCONFIG=y | ||
| 21 | CONFIG_IKCONFIG_PROC=y | ||
| 22 | CONFIG_PRINTK_TIME=y | ||
| 23 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.12/PT2-NH b/tools/testing/selftests/rcutorture/configs/v3.12/PT2-NH new file mode 100644 index 000000000000..64abfc3b4d94 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.12/PT2-NH | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | CONFIG_TINY_PREEMPT_RCU=y | ||
| 2 | CONFIG_RCU_TORTURE_TEST=m | ||
| 3 | CONFIG_MODULE_UNLOAD=y | ||
| 4 | CONFIG_SUSPEND=n | ||
| 5 | CONFIG_HIBERNATION=n | ||
| 6 | # | ||
| 7 | CONFIG_SMP=n | ||
| 8 | # | ||
| 9 | CONFIG_HOTPLUG_CPU=n | ||
| 10 | # | ||
| 11 | CONFIG_NO_HZ=y | ||
| 12 | # | ||
| 13 | CONFIG_PREEMPT_NONE=n | ||
| 14 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 15 | CONFIG_PREEMPT=y | ||
| 16 | CONFIG_PROVE_LOCKING=y | ||
| 17 | CONFIG_PROVE_RCU=y | ||
| 18 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 19 | CONFIG_IKCONFIG=y | ||
| 20 | CONFIG_IKCONFIG_PROC=y | ||
| 21 | CONFIG_PRINTK_TIME=y | ||
| 22 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.3/CFLIST b/tools/testing/selftests/rcutorture/configs/v3.3/CFLIST new file mode 100644 index 000000000000..18223947bbcb --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.3/CFLIST | |||
| @@ -0,0 +1,14 @@ | |||
| 1 | P1-S-T-NH-SD-SMP-HP | ||
| 2 | P2-2-t-nh-sd-SMP-hp | ||
| 3 | P3-3-T-nh-SD-SMP-hp | ||
| 4 | P4-A-t-NH-sd-SMP-HP | ||
| 5 | P5-U-T-NH-sd-SMP-hp | ||
| 6 | N1-S-T-NH-SD-SMP-HP | ||
| 7 | N2-2-t-nh-sd-SMP-hp | ||
| 8 | N3-3-T-nh-SD-SMP-hp | ||
| 9 | N4-A-t-NH-sd-SMP-HP | ||
| 10 | N5-U-T-NH-sd-SMP-hp | ||
| 11 | PT1-nh | ||
| 12 | PT2-NH | ||
| 13 | NT1-nh | ||
| 14 | NT3-NH | ||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.3/N1-S-T-NH-SD-SMP-HP b/tools/testing/selftests/rcutorture/configs/v3.3/N1-S-T-NH-SD-SMP-HP new file mode 100644 index 000000000000..d81e11d280aa --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.3/N1-S-T-NH-SD-SMP-HP | |||
| @@ -0,0 +1,19 @@ | |||
| 1 | CONFIG_RCU_TRACE=y | ||
| 2 | CONFIG_RCU_FAST_NO_HZ=y | ||
| 3 | CONFIG_NO_HZ=y | ||
| 4 | CONFIG_SMP=y | ||
| 5 | CONFIG_RCU_FANOUT=8 | ||
| 6 | CONFIG_NR_CPUS=8 | ||
| 7 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 8 | CONFIG_HOTPLUG_CPU=y | ||
| 9 | CONFIG_PREEMPT_NONE=y | ||
| 10 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 11 | CONFIG_PREEMPT=n | ||
| 12 | #CHECK#CONFIG_TREE_RCU=y | ||
| 13 | CONFIG_RCU_TORTURE_TEST=m | ||
| 14 | CONFIG_MODULE_UNLOAD=y | ||
| 15 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 16 | CONFIG_IKCONFIG=y | ||
| 17 | CONFIG_IKCONFIG_PROC=y | ||
| 18 | CONFIG_PRINTK_TIME=y | ||
| 19 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.3/N2-2-t-nh-sd-SMP-hp b/tools/testing/selftests/rcutorture/configs/v3.3/N2-2-t-nh-sd-SMP-hp new file mode 100644 index 000000000000..02e418572b1b --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.3/N2-2-t-nh-sd-SMP-hp | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | CONFIG_RCU_TRACE=n | ||
| 2 | CONFIG_NO_HZ=n | ||
| 3 | CONFIG_SMP=y | ||
| 4 | CONFIG_RCU_FANOUT=4 | ||
| 5 | CONFIG_NR_CPUS=8 | ||
| 6 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 7 | CONFIG_HOTPLUG_CPU=n | ||
| 8 | CONFIG_SUSPEND=n | ||
| 9 | CONFIG_HIBERNATION=n | ||
| 10 | CONFIG_PREEMPT_NONE=y | ||
| 11 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 12 | CONFIG_PREEMPT=n | ||
| 13 | #CHECK#CONFIG_TREE_RCU=y | ||
| 14 | CONFIG_RCU_TORTURE_TEST=m | ||
| 15 | CONFIG_MODULE_UNLOAD=y | ||
| 16 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 17 | CONFIG_IKCONFIG=y | ||
| 18 | CONFIG_IKCONFIG_PROC=y | ||
| 19 | CONFIG_PRINTK_TIME=y | ||
| 20 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.3/N3-3-T-nh-SD-SMP-hp b/tools/testing/selftests/rcutorture/configs/v3.3/N3-3-T-nh-SD-SMP-hp new file mode 100644 index 000000000000..b3100f69c8cf --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.3/N3-3-T-nh-SD-SMP-hp | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | CONFIG_RCU_TRACE=y | ||
| 2 | CONFIG_NO_HZ=n | ||
| 3 | CONFIG_SMP=y | ||
| 4 | CONFIG_RCU_FANOUT=2 | ||
| 5 | CONFIG_NR_CPUS=8 | ||
| 6 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 7 | CONFIG_HOTPLUG_CPU=n | ||
| 8 | CONFIG_SUSPEND=n | ||
| 9 | CONFIG_HIBERNATION=n | ||
| 10 | CONFIG_PREEMPT_NONE=y | ||
| 11 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 12 | CONFIG_PREEMPT=n | ||
| 13 | #CHECK#CONFIG_TREE_RCU=y | ||
| 14 | CONFIG_RCU_TORTURE_TEST=m | ||
| 15 | CONFIG_MODULE_UNLOAD=y | ||
| 16 | CONFIG_PROVE_LOCKING=y | ||
| 17 | CONFIG_PROVE_RCU=y | ||
| 18 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 19 | CONFIG_IKCONFIG=y | ||
| 20 | CONFIG_IKCONFIG_PROC=y | ||
| 21 | CONFIG_PRINTK_TIME=y | ||
| 22 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.3/N4-A-t-NH-sd-SMP-HP b/tools/testing/selftests/rcutorture/configs/v3.3/N4-A-t-NH-sd-SMP-HP new file mode 100644 index 000000000000..c56b44530725 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.3/N4-A-t-NH-sd-SMP-HP | |||
| @@ -0,0 +1,18 @@ | |||
| 1 | CONFIG_RCU_TRACE=n | ||
| 2 | CONFIG_NO_HZ=y | ||
| 3 | CONFIG_SMP=y | ||
| 4 | CONFIG_RCU_FANOUT=6 | ||
| 5 | CONFIG_NR_CPUS=8 | ||
| 6 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 7 | CONFIG_HOTPLUG_CPU=y | ||
| 8 | CONFIG_PREEMPT_NONE=y | ||
| 9 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 10 | CONFIG_PREEMPT=n | ||
| 11 | #CHECK#CONFIG_TREE_RCU=y | ||
| 12 | CONFIG_RCU_TORTURE_TEST=m | ||
| 13 | CONFIG_MODULE_UNLOAD=y | ||
| 14 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 15 | CONFIG_IKCONFIG=y | ||
| 16 | CONFIG_IKCONFIG_PROC=y | ||
| 17 | CONFIG_PRINTK_TIME=y | ||
| 18 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.3/N5-U-T-NH-sd-SMP-hp b/tools/testing/selftests/rcutorture/configs/v3.3/N5-U-T-NH-sd-SMP-hp new file mode 100644 index 000000000000..90d924fea9e9 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.3/N5-U-T-NH-sd-SMP-hp | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | CONFIG_RCU_TRACE=y | ||
| 2 | CONFIG_DEBUG_KERNEL=y | ||
| 3 | CONFIG_RCU_CPU_STALL_INFO=y | ||
| 4 | CONFIG_NO_HZ=y | ||
| 5 | CONFIG_SMP=y | ||
| 6 | CONFIG_RCU_FANOUT=6 | ||
| 7 | CONFIG_NR_CPUS=8 | ||
| 8 | CONFIG_RCU_FANOUT_EXACT=y | ||
| 9 | CONFIG_HOTPLUG_CPU=n | ||
| 10 | CONFIG_SUSPEND=n | ||
| 11 | CONFIG_HIBERNATION=n | ||
| 12 | CONFIG_PREEMPT_NONE=y | ||
| 13 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 14 | CONFIG_PREEMPT=n | ||
| 15 | #CHECK#CONFIG_TREE_RCU=y | ||
| 16 | CONFIG_RCU_TORTURE_TEST=m | ||
| 17 | CONFIG_MODULE_UNLOAD=y | ||
| 18 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 19 | CONFIG_IKCONFIG=y | ||
| 20 | CONFIG_IKCONFIG_PROC=y | ||
| 21 | CONFIG_PRINTK_TIME=y | ||
| 22 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.3/NT1-nh b/tools/testing/selftests/rcutorture/configs/v3.3/NT1-nh new file mode 100644 index 000000000000..023f312a931c --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.3/NT1-nh | |||
| @@ -0,0 +1,23 @@ | |||
| 1 | #CHECK#CONFIG_TINY_RCU=y | ||
| 2 | CONFIG_RCU_TRACE=y | ||
| 3 | CONFIG_RCU_TORTURE_TEST=m | ||
| 4 | CONFIG_MODULE_UNLOAD=y | ||
| 5 | CONFIG_SUSPEND=n | ||
| 6 | CONFIG_HIBERNATION=n | ||
| 7 | # | ||
| 8 | CONFIG_SMP=n | ||
| 9 | # | ||
| 10 | CONFIG_HOTPLUG_CPU=n | ||
| 11 | # | ||
| 12 | CONFIG_NO_HZ=n | ||
| 13 | # | ||
| 14 | CONFIG_PREEMPT_NONE=y | ||
| 15 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 16 | CONFIG_PREEMPT=n | ||
| 17 | CONFIG_PROVE_LOCKING=y | ||
| 18 | CONFIG_PROVE_RCU=y | ||
| 19 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 20 | CONFIG_IKCONFIG=y | ||
| 21 | CONFIG_IKCONFIG_PROC=y | ||
| 22 | CONFIG_PRINTK_TIME=y | ||
| 23 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.3/NT3-NH b/tools/testing/selftests/rcutorture/configs/v3.3/NT3-NH new file mode 100644 index 000000000000..6fd0235dae73 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.3/NT3-NH | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | #CHECK#CONFIG_TINY_RCU=y | ||
| 2 | CONFIG_RCU_TORTURE_TEST=m | ||
| 3 | CONFIG_MODULE_UNLOAD=y | ||
| 4 | CONFIG_SUSPEND=n | ||
| 5 | CONFIG_HIBERNATION=n | ||
| 6 | # | ||
| 7 | CONFIG_SMP=n | ||
| 8 | # | ||
| 9 | CONFIG_HOTPLUG_CPU=n | ||
| 10 | # | ||
| 11 | CONFIG_NO_HZ=y | ||
| 12 | # | ||
| 13 | CONFIG_PREEMPT_NONE=y | ||
| 14 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 15 | CONFIG_PREEMPT=n | ||
| 16 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 17 | CONFIG_IKCONFIG=y | ||
| 18 | CONFIG_IKCONFIG_PROC=y | ||
| 19 | CONFIG_PRINTK_TIME=y | ||
| 20 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.3/P1-S-T-NH-SD-SMP-HP b/tools/testing/selftests/rcutorture/configs/v3.3/P1-S-T-NH-SD-SMP-HP new file mode 100644 index 000000000000..9647c44cf4b7 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.3/P1-S-T-NH-SD-SMP-HP | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | CONFIG_RCU_TRACE=y | ||
| 2 | CONFIG_RCU_CPU_STALL_INFO=y | ||
| 3 | CONFIG_NO_HZ=y | ||
| 4 | CONFIG_RCU_FAST_NO_HZ=y | ||
| 5 | CONFIG_SMP=y | ||
| 6 | CONFIG_RCU_FANOUT=8 | ||
| 7 | CONFIG_NR_CPUS=8 | ||
| 8 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 9 | CONFIG_HOTPLUG_CPU=y | ||
| 10 | CONFIG_PREEMPT_NONE=n | ||
| 11 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 12 | CONFIG_PREEMPT=y | ||
| 13 | #CHECK#CONFIG_TREE_PREEMPT_RCU=y | ||
| 14 | CONFIG_RCU_TORTURE_TEST=m | ||
| 15 | CONFIG_MODULE_UNLOAD=y | ||
| 16 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 17 | CONFIG_IKCONFIG=y | ||
| 18 | CONFIG_IKCONFIG_PROC=y | ||
| 19 | CONFIG_PRINTK_TIME=y | ||
| 20 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.3/P2-2-t-nh-sd-SMP-hp b/tools/testing/selftests/rcutorture/configs/v3.3/P2-2-t-nh-sd-SMP-hp new file mode 100644 index 000000000000..0f3b667d2a9f --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.3/P2-2-t-nh-sd-SMP-hp | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | CONFIG_RCU_TRACE=n | ||
| 2 | CONFIG_NO_HZ=n | ||
| 3 | CONFIG_SMP=y | ||
| 4 | CONFIG_RCU_FANOUT=4 | ||
| 5 | CONFIG_NR_CPUS=8 | ||
| 6 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 7 | CONFIG_HOTPLUG_CPU=n | ||
| 8 | CONFIG_SUSPEND=n | ||
| 9 | CONFIG_HIBERNATION=n | ||
| 10 | CONFIG_PREEMPT_NONE=n | ||
| 11 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 12 | CONFIG_PREEMPT=y | ||
| 13 | #CHECK#CONFIG_TREE_PREEMPT_RCU=y | ||
| 14 | CONFIG_RCU_TORTURE_TEST=m | ||
| 15 | CONFIG_MODULE_UNLOAD=y | ||
| 16 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 17 | CONFIG_IKCONFIG=y | ||
| 18 | CONFIG_IKCONFIG_PROC=y | ||
| 19 | CONFIG_PRINTK_TIME=y | ||
| 20 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.3/P3-3-T-nh-SD-SMP-hp b/tools/testing/selftests/rcutorture/configs/v3.3/P3-3-T-nh-SD-SMP-hp new file mode 100644 index 000000000000..b035e141bf2a --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.3/P3-3-T-nh-SD-SMP-hp | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | CONFIG_RCU_TRACE=y | ||
| 2 | CONFIG_NO_HZ=n | ||
| 3 | CONFIG_SMP=y | ||
| 4 | CONFIG_RCU_FANOUT=2 | ||
| 5 | CONFIG_NR_CPUS=8 | ||
| 6 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 7 | CONFIG_HOTPLUG_CPU=n | ||
| 8 | CONFIG_SUSPEND=n | ||
| 9 | CONFIG_HIBERNATION=n | ||
| 10 | CONFIG_PREEMPT_NONE=n | ||
| 11 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 12 | CONFIG_PREEMPT=y | ||
| 13 | #CHECK#CONFIG_TREE_PREEMPT_RCU=y | ||
| 14 | CONFIG_RCU_TORTURE_TEST=m | ||
| 15 | CONFIG_MODULE_UNLOAD=y | ||
| 16 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 17 | CONFIG_IKCONFIG=y | ||
| 18 | CONFIG_IKCONFIG_PROC=y | ||
| 19 | CONFIG_PRINTK_TIME=y | ||
| 20 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.3/P4-A-t-NH-sd-SMP-HP b/tools/testing/selftests/rcutorture/configs/v3.3/P4-A-t-NH-sd-SMP-HP new file mode 100644 index 000000000000..3ccf6a9447f5 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.3/P4-A-t-NH-sd-SMP-HP | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | CONFIG_RCU_TRACE=n | ||
| 2 | CONFIG_NO_HZ=y | ||
| 3 | CONFIG_SMP=y | ||
| 4 | CONFIG_RCU_FANOUT=6 | ||
| 5 | CONFIG_NR_CPUS=8 | ||
| 6 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 7 | CONFIG_HOTPLUG_CPU=y | ||
| 8 | CONFIG_PREEMPT_NONE=n | ||
| 9 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 10 | CONFIG_PREEMPT=y | ||
| 11 | #CHECK#CONFIG_TREE_PREEMPT_RCU=y | ||
| 12 | CONFIG_RCU_TORTURE_TEST=m | ||
| 13 | CONFIG_MODULE_UNLOAD=y | ||
| 14 | CONFIG_RT_MUTEXES=y | ||
| 15 | CONFIG_RCU_BOOST=y | ||
| 16 | CONFIG_RCU_BOOST_PRIO=2 | ||
| 17 | CONFIG_PROVE_LOCKING=y | ||
| 18 | CONFIG_PROVE_RCU=y | ||
| 19 | CONFIG_IKCONFIG=y | ||
| 20 | CONFIG_IKCONFIG_PROC=y | ||
| 21 | CONFIG_PRINTK_TIME=y | ||
| 22 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.3/P5-U-T-NH-sd-SMP-hp b/tools/testing/selftests/rcutorture/configs/v3.3/P5-U-T-NH-sd-SMP-hp new file mode 100644 index 000000000000..ef624ce73d8e --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.3/P5-U-T-NH-sd-SMP-hp | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | CONFIG_RCU_TRACE=y | ||
| 2 | CONFIG_RCU_CPU_STALL_INFO=y | ||
| 3 | CONFIG_NO_HZ=y | ||
| 4 | CONFIG_SMP=y | ||
| 5 | CONFIG_RCU_FANOUT=6 | ||
| 6 | CONFIG_NR_CPUS=8 | ||
| 7 | CONFIG_RCU_FANOUT_EXACT=y | ||
| 8 | CONFIG_HOTPLUG_CPU=n | ||
| 9 | CONFIG_SUSPEND=n | ||
| 10 | CONFIG_HIBERNATION=n | ||
| 11 | CONFIG_PREEMPT_NONE=n | ||
| 12 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 13 | CONFIG_PREEMPT=y | ||
| 14 | #CHECK#CONFIG_TREE_PREEMPT_RCU=y | ||
| 15 | CONFIG_DEBUG_KERNEL=y | ||
| 16 | CONFIG_PROVE_RCU_DELAY=y | ||
| 17 | CONFIG_DEBUG_OBJECTS=y | ||
| 18 | CONFIG_DEBUG_OBJECTS_RCU_HEAD=y | ||
| 19 | CONFIG_RT_MUTEXES=y | ||
| 20 | CONFIG_RCU_BOOST=y | ||
| 21 | CONFIG_RCU_BOOST_PRIO=2 | ||
| 22 | CONFIG_RCU_TORTURE_TEST=m | ||
| 23 | CONFIG_MODULE_UNLOAD=y | ||
| 24 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 25 | CONFIG_IKCONFIG=y | ||
| 26 | CONFIG_IKCONFIG_PROC=y | ||
| 27 | CONFIG_PRINTK_TIME=y | ||
| 28 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.3/PT1-nh b/tools/testing/selftests/rcutorture/configs/v3.3/PT1-nh new file mode 100644 index 000000000000..e3361c3894a1 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.3/PT1-nh | |||
| @@ -0,0 +1,23 @@ | |||
| 1 | CONFIG_TINY_PREEMPT_RCU=y | ||
| 2 | CONFIG_RCU_BOOST=y | ||
| 3 | CONFIG_RCU_BOOST_PRIO=2 | ||
| 4 | CONFIG_RCU_TRACE=y | ||
| 5 | CONFIG_RCU_TORTURE_TEST=m | ||
| 6 | CONFIG_MODULE_UNLOAD=y | ||
| 7 | CONFIG_SUSPEND=n | ||
| 8 | CONFIG_HIBERNATION=n | ||
| 9 | # | ||
| 10 | CONFIG_SMP=n | ||
| 11 | # | ||
| 12 | CONFIG_HOTPLUG_CPU=n | ||
| 13 | # | ||
| 14 | CONFIG_NO_HZ=n | ||
| 15 | # | ||
| 16 | CONFIG_PREEMPT_NONE=n | ||
| 17 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 18 | CONFIG_PREEMPT=y | ||
| 19 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 20 | CONFIG_IKCONFIG=y | ||
| 21 | CONFIG_IKCONFIG_PROC=y | ||
| 22 | CONFIG_PRINTK_TIME=y | ||
| 23 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.3/PT2-NH b/tools/testing/selftests/rcutorture/configs/v3.3/PT2-NH new file mode 100644 index 000000000000..64abfc3b4d94 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.3/PT2-NH | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | CONFIG_TINY_PREEMPT_RCU=y | ||
| 2 | CONFIG_RCU_TORTURE_TEST=m | ||
| 3 | CONFIG_MODULE_UNLOAD=y | ||
| 4 | CONFIG_SUSPEND=n | ||
| 5 | CONFIG_HIBERNATION=n | ||
| 6 | # | ||
| 7 | CONFIG_SMP=n | ||
| 8 | # | ||
| 9 | CONFIG_HOTPLUG_CPU=n | ||
| 10 | # | ||
| 11 | CONFIG_NO_HZ=y | ||
| 12 | # | ||
| 13 | CONFIG_PREEMPT_NONE=n | ||
| 14 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 15 | CONFIG_PREEMPT=y | ||
| 16 | CONFIG_PROVE_LOCKING=y | ||
| 17 | CONFIG_PROVE_RCU=y | ||
| 18 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 19 | CONFIG_IKCONFIG=y | ||
| 20 | CONFIG_IKCONFIG_PROC=y | ||
| 21 | CONFIG_PRINTK_TIME=y | ||
| 22 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.3/ver_functions.sh b/tools/testing/selftests/rcutorture/configs/v3.3/ver_functions.sh new file mode 100644 index 000000000000..c37432f3572c --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.3/ver_functions.sh | |||
| @@ -0,0 +1,41 @@ | |||
| 1 | #!/bin/bash | ||
| 2 | # | ||
| 3 | # Kernel-version-dependent shell functions for the rest of the scripts. | ||
| 4 | # | ||
| 5 | # This program is free software; you can redistribute it and/or modify | ||
| 6 | # it under the terms of the GNU General Public License as published by | ||
| 7 | # the Free Software Foundation; either version 2 of the License, or | ||
| 8 | # (at your option) any later version. | ||
| 9 | # | ||
| 10 | # This program is distributed in the hope that it will be useful, | ||
| 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 13 | # GNU General Public License for more details. | ||
| 14 | # | ||
| 15 | # You should have received a copy of the GNU General Public License | ||
| 16 | # along with this program; if not, you can access it online at | ||
| 17 | # http://www.gnu.org/licenses/gpl-2.0.html. | ||
| 18 | # | ||
| 19 | # Copyright (C) IBM Corporation, 2013 | ||
| 20 | # | ||
| 21 | # Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com> | ||
| 22 | |||
| 23 | # rcutorture_param_n_barrier_cbs bootparam-string | ||
| 24 | # | ||
| 25 | # Adds n_barrier_cbs rcutorture module parameter to kernels having it. | ||
| 26 | rcutorture_param_n_barrier_cbs () { | ||
| 27 | echo $1 | ||
| 28 | } | ||
| 29 | |||
| 30 | # rcutorture_param_onoff bootparam-string config-file | ||
| 31 | # | ||
| 32 | # Adds onoff rcutorture module parameters to kernels having it. | ||
| 33 | rcutorture_param_onoff () { | ||
| 34 | if ! bootparam_hotplug_cpu "$1" && configfrag_hotplug_cpu "$2" | ||
| 35 | then | ||
| 36 | echo CPU-hotplug kernel, adding rcutorture onoff. | ||
| 37 | echo $1 rcutorture.onoff_interval=3 rcutorture.onoff_holdoff=30 | ||
| 38 | else | ||
| 39 | echo $1 | ||
| 40 | fi | ||
| 41 | } | ||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.5/CFLIST b/tools/testing/selftests/rcutorture/configs/v3.5/CFLIST new file mode 100644 index 000000000000..18223947bbcb --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.5/CFLIST | |||
| @@ -0,0 +1,14 @@ | |||
| 1 | P1-S-T-NH-SD-SMP-HP | ||
| 2 | P2-2-t-nh-sd-SMP-hp | ||
| 3 | P3-3-T-nh-SD-SMP-hp | ||
| 4 | P4-A-t-NH-sd-SMP-HP | ||
| 5 | P5-U-T-NH-sd-SMP-hp | ||
| 6 | N1-S-T-NH-SD-SMP-HP | ||
| 7 | N2-2-t-nh-sd-SMP-hp | ||
| 8 | N3-3-T-nh-SD-SMP-hp | ||
| 9 | N4-A-t-NH-sd-SMP-HP | ||
| 10 | N5-U-T-NH-sd-SMP-hp | ||
| 11 | PT1-nh | ||
| 12 | PT2-NH | ||
| 13 | NT1-nh | ||
| 14 | NT3-NH | ||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.5/N1-S-T-NH-SD-SMP-HP b/tools/testing/selftests/rcutorture/configs/v3.5/N1-S-T-NH-SD-SMP-HP new file mode 100644 index 000000000000..d81e11d280aa --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.5/N1-S-T-NH-SD-SMP-HP | |||
| @@ -0,0 +1,19 @@ | |||
| 1 | CONFIG_RCU_TRACE=y | ||
| 2 | CONFIG_RCU_FAST_NO_HZ=y | ||
| 3 | CONFIG_NO_HZ=y | ||
| 4 | CONFIG_SMP=y | ||
| 5 | CONFIG_RCU_FANOUT=8 | ||
| 6 | CONFIG_NR_CPUS=8 | ||
| 7 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 8 | CONFIG_HOTPLUG_CPU=y | ||
| 9 | CONFIG_PREEMPT_NONE=y | ||
| 10 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 11 | CONFIG_PREEMPT=n | ||
| 12 | #CHECK#CONFIG_TREE_RCU=y | ||
| 13 | CONFIG_RCU_TORTURE_TEST=m | ||
| 14 | CONFIG_MODULE_UNLOAD=y | ||
| 15 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 16 | CONFIG_IKCONFIG=y | ||
| 17 | CONFIG_IKCONFIG_PROC=y | ||
| 18 | CONFIG_PRINTK_TIME=y | ||
| 19 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.5/N2-2-t-nh-sd-SMP-hp b/tools/testing/selftests/rcutorture/configs/v3.5/N2-2-t-nh-sd-SMP-hp new file mode 100644 index 000000000000..02e418572b1b --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.5/N2-2-t-nh-sd-SMP-hp | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | CONFIG_RCU_TRACE=n | ||
| 2 | CONFIG_NO_HZ=n | ||
| 3 | CONFIG_SMP=y | ||
| 4 | CONFIG_RCU_FANOUT=4 | ||
| 5 | CONFIG_NR_CPUS=8 | ||
| 6 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 7 | CONFIG_HOTPLUG_CPU=n | ||
| 8 | CONFIG_SUSPEND=n | ||
| 9 | CONFIG_HIBERNATION=n | ||
| 10 | CONFIG_PREEMPT_NONE=y | ||
| 11 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 12 | CONFIG_PREEMPT=n | ||
| 13 | #CHECK#CONFIG_TREE_RCU=y | ||
| 14 | CONFIG_RCU_TORTURE_TEST=m | ||
| 15 | CONFIG_MODULE_UNLOAD=y | ||
| 16 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 17 | CONFIG_IKCONFIG=y | ||
| 18 | CONFIG_IKCONFIG_PROC=y | ||
| 19 | CONFIG_PRINTK_TIME=y | ||
| 20 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.5/N3-3-T-nh-SD-SMP-hp b/tools/testing/selftests/rcutorture/configs/v3.5/N3-3-T-nh-SD-SMP-hp new file mode 100644 index 000000000000..b3100f69c8cf --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.5/N3-3-T-nh-SD-SMP-hp | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | CONFIG_RCU_TRACE=y | ||
| 2 | CONFIG_NO_HZ=n | ||
| 3 | CONFIG_SMP=y | ||
| 4 | CONFIG_RCU_FANOUT=2 | ||
| 5 | CONFIG_NR_CPUS=8 | ||
| 6 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 7 | CONFIG_HOTPLUG_CPU=n | ||
| 8 | CONFIG_SUSPEND=n | ||
| 9 | CONFIG_HIBERNATION=n | ||
| 10 | CONFIG_PREEMPT_NONE=y | ||
| 11 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 12 | CONFIG_PREEMPT=n | ||
| 13 | #CHECK#CONFIG_TREE_RCU=y | ||
| 14 | CONFIG_RCU_TORTURE_TEST=m | ||
| 15 | CONFIG_MODULE_UNLOAD=y | ||
| 16 | CONFIG_PROVE_LOCKING=y | ||
| 17 | CONFIG_PROVE_RCU=y | ||
| 18 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 19 | CONFIG_IKCONFIG=y | ||
| 20 | CONFIG_IKCONFIG_PROC=y | ||
| 21 | CONFIG_PRINTK_TIME=y | ||
| 22 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.5/N4-A-t-NH-sd-SMP-HP b/tools/testing/selftests/rcutorture/configs/v3.5/N4-A-t-NH-sd-SMP-HP new file mode 100644 index 000000000000..c56b44530725 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.5/N4-A-t-NH-sd-SMP-HP | |||
| @@ -0,0 +1,18 @@ | |||
| 1 | CONFIG_RCU_TRACE=n | ||
| 2 | CONFIG_NO_HZ=y | ||
| 3 | CONFIG_SMP=y | ||
| 4 | CONFIG_RCU_FANOUT=6 | ||
| 5 | CONFIG_NR_CPUS=8 | ||
| 6 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 7 | CONFIG_HOTPLUG_CPU=y | ||
| 8 | CONFIG_PREEMPT_NONE=y | ||
| 9 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 10 | CONFIG_PREEMPT=n | ||
| 11 | #CHECK#CONFIG_TREE_RCU=y | ||
| 12 | CONFIG_RCU_TORTURE_TEST=m | ||
| 13 | CONFIG_MODULE_UNLOAD=y | ||
| 14 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 15 | CONFIG_IKCONFIG=y | ||
| 16 | CONFIG_IKCONFIG_PROC=y | ||
| 17 | CONFIG_PRINTK_TIME=y | ||
| 18 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.5/N5-U-T-NH-sd-SMP-hp b/tools/testing/selftests/rcutorture/configs/v3.5/N5-U-T-NH-sd-SMP-hp new file mode 100644 index 000000000000..90d924fea9e9 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.5/N5-U-T-NH-sd-SMP-hp | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | CONFIG_RCU_TRACE=y | ||
| 2 | CONFIG_DEBUG_KERNEL=y | ||
| 3 | CONFIG_RCU_CPU_STALL_INFO=y | ||
| 4 | CONFIG_NO_HZ=y | ||
| 5 | CONFIG_SMP=y | ||
| 6 | CONFIG_RCU_FANOUT=6 | ||
| 7 | CONFIG_NR_CPUS=8 | ||
| 8 | CONFIG_RCU_FANOUT_EXACT=y | ||
| 9 | CONFIG_HOTPLUG_CPU=n | ||
| 10 | CONFIG_SUSPEND=n | ||
| 11 | CONFIG_HIBERNATION=n | ||
| 12 | CONFIG_PREEMPT_NONE=y | ||
| 13 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 14 | CONFIG_PREEMPT=n | ||
| 15 | #CHECK#CONFIG_TREE_RCU=y | ||
| 16 | CONFIG_RCU_TORTURE_TEST=m | ||
| 17 | CONFIG_MODULE_UNLOAD=y | ||
| 18 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 19 | CONFIG_IKCONFIG=y | ||
| 20 | CONFIG_IKCONFIG_PROC=y | ||
| 21 | CONFIG_PRINTK_TIME=y | ||
| 22 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.5/NT1-nh b/tools/testing/selftests/rcutorture/configs/v3.5/NT1-nh new file mode 100644 index 000000000000..023f312a931c --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.5/NT1-nh | |||
| @@ -0,0 +1,23 @@ | |||
| 1 | #CHECK#CONFIG_TINY_RCU=y | ||
| 2 | CONFIG_RCU_TRACE=y | ||
| 3 | CONFIG_RCU_TORTURE_TEST=m | ||
| 4 | CONFIG_MODULE_UNLOAD=y | ||
| 5 | CONFIG_SUSPEND=n | ||
| 6 | CONFIG_HIBERNATION=n | ||
| 7 | # | ||
| 8 | CONFIG_SMP=n | ||
| 9 | # | ||
| 10 | CONFIG_HOTPLUG_CPU=n | ||
| 11 | # | ||
| 12 | CONFIG_NO_HZ=n | ||
| 13 | # | ||
| 14 | CONFIG_PREEMPT_NONE=y | ||
| 15 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 16 | CONFIG_PREEMPT=n | ||
| 17 | CONFIG_PROVE_LOCKING=y | ||
| 18 | CONFIG_PROVE_RCU=y | ||
| 19 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 20 | CONFIG_IKCONFIG=y | ||
| 21 | CONFIG_IKCONFIG_PROC=y | ||
| 22 | CONFIG_PRINTK_TIME=y | ||
| 23 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.5/NT3-NH b/tools/testing/selftests/rcutorture/configs/v3.5/NT3-NH new file mode 100644 index 000000000000..6fd0235dae73 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.5/NT3-NH | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | #CHECK#CONFIG_TINY_RCU=y | ||
| 2 | CONFIG_RCU_TORTURE_TEST=m | ||
| 3 | CONFIG_MODULE_UNLOAD=y | ||
| 4 | CONFIG_SUSPEND=n | ||
| 5 | CONFIG_HIBERNATION=n | ||
| 6 | # | ||
| 7 | CONFIG_SMP=n | ||
| 8 | # | ||
| 9 | CONFIG_HOTPLUG_CPU=n | ||
| 10 | # | ||
| 11 | CONFIG_NO_HZ=y | ||
| 12 | # | ||
| 13 | CONFIG_PREEMPT_NONE=y | ||
| 14 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 15 | CONFIG_PREEMPT=n | ||
| 16 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 17 | CONFIG_IKCONFIG=y | ||
| 18 | CONFIG_IKCONFIG_PROC=y | ||
| 19 | CONFIG_PRINTK_TIME=y | ||
| 20 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.5/P1-S-T-NH-SD-SMP-HP b/tools/testing/selftests/rcutorture/configs/v3.5/P1-S-T-NH-SD-SMP-HP new file mode 100644 index 000000000000..9647c44cf4b7 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.5/P1-S-T-NH-SD-SMP-HP | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | CONFIG_RCU_TRACE=y | ||
| 2 | CONFIG_RCU_CPU_STALL_INFO=y | ||
| 3 | CONFIG_NO_HZ=y | ||
| 4 | CONFIG_RCU_FAST_NO_HZ=y | ||
| 5 | CONFIG_SMP=y | ||
| 6 | CONFIG_RCU_FANOUT=8 | ||
| 7 | CONFIG_NR_CPUS=8 | ||
| 8 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 9 | CONFIG_HOTPLUG_CPU=y | ||
| 10 | CONFIG_PREEMPT_NONE=n | ||
| 11 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 12 | CONFIG_PREEMPT=y | ||
| 13 | #CHECK#CONFIG_TREE_PREEMPT_RCU=y | ||
| 14 | CONFIG_RCU_TORTURE_TEST=m | ||
| 15 | CONFIG_MODULE_UNLOAD=y | ||
| 16 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 17 | CONFIG_IKCONFIG=y | ||
| 18 | CONFIG_IKCONFIG_PROC=y | ||
| 19 | CONFIG_PRINTK_TIME=y | ||
| 20 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.5/P2-2-t-nh-sd-SMP-hp b/tools/testing/selftests/rcutorture/configs/v3.5/P2-2-t-nh-sd-SMP-hp new file mode 100644 index 000000000000..0f3b667d2a9f --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.5/P2-2-t-nh-sd-SMP-hp | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | CONFIG_RCU_TRACE=n | ||
| 2 | CONFIG_NO_HZ=n | ||
| 3 | CONFIG_SMP=y | ||
| 4 | CONFIG_RCU_FANOUT=4 | ||
| 5 | CONFIG_NR_CPUS=8 | ||
| 6 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 7 | CONFIG_HOTPLUG_CPU=n | ||
| 8 | CONFIG_SUSPEND=n | ||
| 9 | CONFIG_HIBERNATION=n | ||
| 10 | CONFIG_PREEMPT_NONE=n | ||
| 11 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 12 | CONFIG_PREEMPT=y | ||
| 13 | #CHECK#CONFIG_TREE_PREEMPT_RCU=y | ||
| 14 | CONFIG_RCU_TORTURE_TEST=m | ||
| 15 | CONFIG_MODULE_UNLOAD=y | ||
| 16 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 17 | CONFIG_IKCONFIG=y | ||
| 18 | CONFIG_IKCONFIG_PROC=y | ||
| 19 | CONFIG_PRINTK_TIME=y | ||
| 20 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.5/P3-3-T-nh-SD-SMP-hp b/tools/testing/selftests/rcutorture/configs/v3.5/P3-3-T-nh-SD-SMP-hp new file mode 100644 index 000000000000..b035e141bf2a --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.5/P3-3-T-nh-SD-SMP-hp | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | CONFIG_RCU_TRACE=y | ||
| 2 | CONFIG_NO_HZ=n | ||
| 3 | CONFIG_SMP=y | ||
| 4 | CONFIG_RCU_FANOUT=2 | ||
| 5 | CONFIG_NR_CPUS=8 | ||
| 6 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 7 | CONFIG_HOTPLUG_CPU=n | ||
| 8 | CONFIG_SUSPEND=n | ||
| 9 | CONFIG_HIBERNATION=n | ||
| 10 | CONFIG_PREEMPT_NONE=n | ||
| 11 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 12 | CONFIG_PREEMPT=y | ||
| 13 | #CHECK#CONFIG_TREE_PREEMPT_RCU=y | ||
| 14 | CONFIG_RCU_TORTURE_TEST=m | ||
| 15 | CONFIG_MODULE_UNLOAD=y | ||
| 16 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 17 | CONFIG_IKCONFIG=y | ||
| 18 | CONFIG_IKCONFIG_PROC=y | ||
| 19 | CONFIG_PRINTK_TIME=y | ||
| 20 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.5/P4-A-t-NH-sd-SMP-HP b/tools/testing/selftests/rcutorture/configs/v3.5/P4-A-t-NH-sd-SMP-HP new file mode 100644 index 000000000000..3ccf6a9447f5 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.5/P4-A-t-NH-sd-SMP-HP | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | CONFIG_RCU_TRACE=n | ||
| 2 | CONFIG_NO_HZ=y | ||
| 3 | CONFIG_SMP=y | ||
| 4 | CONFIG_RCU_FANOUT=6 | ||
| 5 | CONFIG_NR_CPUS=8 | ||
| 6 | CONFIG_RCU_FANOUT_EXACT=n | ||
| 7 | CONFIG_HOTPLUG_CPU=y | ||
| 8 | CONFIG_PREEMPT_NONE=n | ||
| 9 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 10 | CONFIG_PREEMPT=y | ||
| 11 | #CHECK#CONFIG_TREE_PREEMPT_RCU=y | ||
| 12 | CONFIG_RCU_TORTURE_TEST=m | ||
| 13 | CONFIG_MODULE_UNLOAD=y | ||
| 14 | CONFIG_RT_MUTEXES=y | ||
| 15 | CONFIG_RCU_BOOST=y | ||
| 16 | CONFIG_RCU_BOOST_PRIO=2 | ||
| 17 | CONFIG_PROVE_LOCKING=y | ||
| 18 | CONFIG_PROVE_RCU=y | ||
| 19 | CONFIG_IKCONFIG=y | ||
| 20 | CONFIG_IKCONFIG_PROC=y | ||
| 21 | CONFIG_PRINTK_TIME=y | ||
| 22 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.5/P5-U-T-NH-sd-SMP-hp b/tools/testing/selftests/rcutorture/configs/v3.5/P5-U-T-NH-sd-SMP-hp new file mode 100644 index 000000000000..ef624ce73d8e --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.5/P5-U-T-NH-sd-SMP-hp | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | CONFIG_RCU_TRACE=y | ||
| 2 | CONFIG_RCU_CPU_STALL_INFO=y | ||
| 3 | CONFIG_NO_HZ=y | ||
| 4 | CONFIG_SMP=y | ||
| 5 | CONFIG_RCU_FANOUT=6 | ||
| 6 | CONFIG_NR_CPUS=8 | ||
| 7 | CONFIG_RCU_FANOUT_EXACT=y | ||
| 8 | CONFIG_HOTPLUG_CPU=n | ||
| 9 | CONFIG_SUSPEND=n | ||
| 10 | CONFIG_HIBERNATION=n | ||
| 11 | CONFIG_PREEMPT_NONE=n | ||
| 12 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 13 | CONFIG_PREEMPT=y | ||
| 14 | #CHECK#CONFIG_TREE_PREEMPT_RCU=y | ||
| 15 | CONFIG_DEBUG_KERNEL=y | ||
| 16 | CONFIG_PROVE_RCU_DELAY=y | ||
| 17 | CONFIG_DEBUG_OBJECTS=y | ||
| 18 | CONFIG_DEBUG_OBJECTS_RCU_HEAD=y | ||
| 19 | CONFIG_RT_MUTEXES=y | ||
| 20 | CONFIG_RCU_BOOST=y | ||
| 21 | CONFIG_RCU_BOOST_PRIO=2 | ||
| 22 | CONFIG_RCU_TORTURE_TEST=m | ||
| 23 | CONFIG_MODULE_UNLOAD=y | ||
| 24 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 25 | CONFIG_IKCONFIG=y | ||
| 26 | CONFIG_IKCONFIG_PROC=y | ||
| 27 | CONFIG_PRINTK_TIME=y | ||
| 28 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.5/PT1-nh b/tools/testing/selftests/rcutorture/configs/v3.5/PT1-nh new file mode 100644 index 000000000000..e3361c3894a1 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.5/PT1-nh | |||
| @@ -0,0 +1,23 @@ | |||
| 1 | CONFIG_TINY_PREEMPT_RCU=y | ||
| 2 | CONFIG_RCU_BOOST=y | ||
| 3 | CONFIG_RCU_BOOST_PRIO=2 | ||
| 4 | CONFIG_RCU_TRACE=y | ||
| 5 | CONFIG_RCU_TORTURE_TEST=m | ||
| 6 | CONFIG_MODULE_UNLOAD=y | ||
| 7 | CONFIG_SUSPEND=n | ||
| 8 | CONFIG_HIBERNATION=n | ||
| 9 | # | ||
| 10 | CONFIG_SMP=n | ||
| 11 | # | ||
| 12 | CONFIG_HOTPLUG_CPU=n | ||
| 13 | # | ||
| 14 | CONFIG_NO_HZ=n | ||
| 15 | # | ||
| 16 | CONFIG_PREEMPT_NONE=n | ||
| 17 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 18 | CONFIG_PREEMPT=y | ||
| 19 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 20 | CONFIG_IKCONFIG=y | ||
| 21 | CONFIG_IKCONFIG_PROC=y | ||
| 22 | CONFIG_PRINTK_TIME=y | ||
| 23 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.5/PT2-NH b/tools/testing/selftests/rcutorture/configs/v3.5/PT2-NH new file mode 100644 index 000000000000..64abfc3b4d94 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.5/PT2-NH | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | CONFIG_TINY_PREEMPT_RCU=y | ||
| 2 | CONFIG_RCU_TORTURE_TEST=m | ||
| 3 | CONFIG_MODULE_UNLOAD=y | ||
| 4 | CONFIG_SUSPEND=n | ||
| 5 | CONFIG_HIBERNATION=n | ||
| 6 | # | ||
| 7 | CONFIG_SMP=n | ||
| 8 | # | ||
| 9 | CONFIG_HOTPLUG_CPU=n | ||
| 10 | # | ||
| 11 | CONFIG_NO_HZ=y | ||
| 12 | # | ||
| 13 | CONFIG_PREEMPT_NONE=n | ||
| 14 | CONFIG_PREEMPT_VOLUNTARY=n | ||
| 15 | CONFIG_PREEMPT=y | ||
| 16 | CONFIG_PROVE_LOCKING=y | ||
| 17 | CONFIG_PROVE_RCU=y | ||
| 18 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
| 19 | CONFIG_IKCONFIG=y | ||
| 20 | CONFIG_IKCONFIG_PROC=y | ||
| 21 | CONFIG_PRINTK_TIME=y | ||
| 22 | |||
diff --git a/tools/testing/selftests/rcutorture/configs/v3.5/ver_functions.sh b/tools/testing/selftests/rcutorture/configs/v3.5/ver_functions.sh new file mode 100644 index 000000000000..6a5f13aab44d --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/v3.5/ver_functions.sh | |||
| @@ -0,0 +1,46 @@ | |||
| 1 | #!/bin/bash | ||
| 2 | # | ||
| 3 | # Kernel-version-dependent shell functions for the rest of the scripts. | ||
| 4 | # | ||
| 5 | # This program is free software; you can redistribute it and/or modify | ||
| 6 | # it under the terms of the GNU General Public License as published by | ||
| 7 | # the Free Software Foundation; either version 2 of the License, or | ||
| 8 | # (at your option) any later version. | ||
| 9 | # | ||
| 10 | # This program is distributed in the hope that it will be useful, | ||
| 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 13 | # GNU General Public License for more details. | ||
| 14 | # | ||
| 15 | # You should have received a copy of the GNU General Public License | ||
| 16 | # along with this program; if not, you can access it online at | ||
| 17 | # http://www.gnu.org/licenses/gpl-2.0.html. | ||
| 18 | # | ||
| 19 | # Copyright (C) IBM Corporation, 2013 | ||
| 20 | # | ||
| 21 | # Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com> | ||
| 22 | |||
| 23 | # rcutorture_param_n_barrier_cbs bootparam-string | ||
| 24 | # | ||
| 25 | # Adds n_barrier_cbs rcutorture module parameter to kernels having it. | ||
| 26 | rcutorture_param_n_barrier_cbs () { | ||
| 27 | if echo $1 | grep -q "rcutorture\.n_barrier_cbs" | ||
| 28 | then | ||
| 29 | echo $1 | ||
| 30 | else | ||
| 31 | echo $1 rcutorture.n_barrier_cbs=4 | ||
| 32 | fi | ||
| 33 | } | ||
| 34 | |||
| 35 | # rcutorture_param_onoff bootparam-string config-file | ||
| 36 | # | ||
| 37 | # Adds onoff rcutorture module parameters to kernels having it. | ||
| 38 | rcutorture_param_onoff () { | ||
| 39 | if ! bootparam_hotplug_cpu "$1" && configfrag_hotplug_cpu "$2" | ||
| 40 | then | ||
| 41 | echo CPU-hotplug kernel, adding rcutorture onoff. | ||
| 42 | echo $1 rcutorture.onoff_interval=3 rcutorture.onoff_holdoff=30 | ||
| 43 | else | ||
| 44 | echo $1 | ||
| 45 | fi | ||
| 46 | } | ||
diff --git a/tools/testing/selftests/rcutorture/configs/ver_functions.sh b/tools/testing/selftests/rcutorture/configs/ver_functions.sh new file mode 100644 index 000000000000..5e40eadea777 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/ver_functions.sh | |||
| @@ -0,0 +1,46 @@ | |||
| 1 | #!/bin/bash | ||
| 2 | # | ||
| 3 | # Kernel-version-dependent shell functions for the rest of the scripts. | ||
| 4 | # | ||
| 5 | # This program is free software; you can redistribute it and/or modify | ||
| 6 | # it under the terms of the GNU General Public License as published by | ||
| 7 | # the Free Software Foundation; either version 2 of the License, or | ||
| 8 | # (at your option) any later version. | ||
| 9 | # | ||
| 10 | # This program is distributed in the hope that it will be useful, | ||
| 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 13 | # GNU General Public License for more details. | ||
| 14 | # | ||
| 15 | # You should have received a copy of the GNU General Public License | ||
| 16 | # along with this program; if not, you can access it online at | ||
| 17 | # http://www.gnu.org/licenses/gpl-2.0.html. | ||
| 18 | # | ||
| 19 | # Copyright (C) IBM Corporation, 2013 | ||
| 20 | # | ||
| 21 | # Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com> | ||
| 22 | |||
| 23 | # rcutorture_param_n_barrier_cbs bootparam-string | ||
| 24 | # | ||
| 25 | # Adds n_barrier_cbs rcutorture module parameter to kernels having it. | ||
| 26 | rcutorture_param_n_barrier_cbs () { | ||
| 27 | if echo $1 | grep -q "rcutorture\.n_barrier_cbs" | ||
| 28 | then | ||
| 29 | echo $1 | ||
| 30 | else | ||
| 31 | echo $1 rcutorture.n_barrier_cbs=4 | ||
| 32 | fi | ||
| 33 | } | ||
| 34 | |||
| 35 | # rcutorture_param_onoff bootparam-string config-file | ||
| 36 | # | ||
| 37 | # Adds onoff rcutorture module parameters to kernels having it. | ||
| 38 | rcutorture_param_onoff () { | ||
| 39 | if ! bootparam_hotplug_cpu "$1" && configfrag_hotplug_cpu "$2" | ||
| 40 | then | ||
| 41 | echo CPU-hotplug kernel, adding rcutorture onoff. 1>&2 | ||
| 42 | echo $1 rcutorture.onoff_interval=3 rcutorture.onoff_holdoff=30 | ||
| 43 | else | ||
| 44 | echo $1 | ||
| 45 | fi | ||
| 46 | } | ||
diff --git a/tools/testing/selftests/rcutorture/doc/TINY_RCU.txt b/tools/testing/selftests/rcutorture/doc/TINY_RCU.txt new file mode 100644 index 000000000000..28db67b54e55 --- /dev/null +++ b/tools/testing/selftests/rcutorture/doc/TINY_RCU.txt | |||
| @@ -0,0 +1,40 @@ | |||
| 1 | This document gives a brief rationale for the TINY_RCU test cases. | ||
| 2 | |||
| 3 | |||
| 4 | Kconfig Parameters: | ||
| 5 | |||
| 6 | CONFIG_DEBUG_LOCK_ALLOC -- Do all three and none of the three. | ||
| 7 | CONFIG_PREEMPT_COUNT | ||
| 8 | CONFIG_RCU_TRACE | ||
| 9 | |||
| 10 | The theory here is that randconfig testing will hit the other six possible | ||
| 11 | combinations of these parameters. | ||
| 12 | |||
| 13 | |||
| 14 | Kconfig Parameters Ignored: | ||
| 15 | |||
| 16 | CONFIG_DEBUG_OBJECTS_RCU_HEAD | ||
| 17 | CONFIG_PROVE_RCU | ||
| 18 | |||
| 19 | In common code tested by TREE_RCU test cases. | ||
| 20 | |||
| 21 | CONFIG_NO_HZ_FULL_SYSIDLE | ||
| 22 | CONFIG_RCU_NOCB_CPU | ||
| 23 | CONFIG_RCU_USER_QS | ||
| 24 | |||
| 25 | Meaningless for TINY_RCU. | ||
| 26 | |||
| 27 | CONFIG_RCU_STALL_COMMON | ||
| 28 | CONFIG_RCU_TORTURE_TEST | ||
| 29 | |||
| 30 | Redundant with CONFIG_RCU_TRACE. | ||
| 31 | |||
| 32 | CONFIG_HOTPLUG_CPU | ||
| 33 | CONFIG_PREEMPT | ||
| 34 | CONFIG_PREEMPT_RCU | ||
| 35 | CONFIG_SMP | ||
| 36 | CONFIG_TINY_RCU | ||
| 37 | CONFIG_TREE_PREEMPT_RCU | ||
| 38 | CONFIG_TREE_RCU | ||
| 39 | |||
| 40 | All forced by CONFIG_TINY_RCU. | ||
diff --git a/tools/testing/selftests/rcutorture/doc/TREE_RCU-Kconfig.txt b/tools/testing/selftests/rcutorture/doc/TREE_RCU-Kconfig.txt new file mode 100644 index 000000000000..adbb76cffb49 --- /dev/null +++ b/tools/testing/selftests/rcutorture/doc/TREE_RCU-Kconfig.txt | |||
| @@ -0,0 +1,95 @@ | |||
| 1 | This document gives a brief rationale for the TREE_RCU-related test | ||
| 2 | cases, a group that includes TREE_PREEMPT_RCU. | ||
| 3 | |||
| 4 | |||
| 5 | Kconfig Parameters: | ||
| 6 | |||
| 7 | CONFIG_DEBUG_LOCK_ALLOC -- Do three, covering CONFIG_PROVE_LOCKING & not. | ||
| 8 | CONFIG_DEBUG_OBJECTS_RCU_HEAD -- Do one. | ||
| 9 | CONFIG_HOTPLUG_CPU -- Do half. (Every second.) | ||
| 10 | CONFIG_HZ_PERIODIC -- Do one. | ||
| 11 | CONFIG_NO_HZ_IDLE -- Do those not otherwise specified. (Groups of two.) | ||
| 12 | CONFIG_NO_HZ_FULL -- Do two, one with CONFIG_NO_HZ_FULL_SYSIDLE. | ||
| 13 | CONFIG_NO_HZ_FULL_SYSIDLE -- Do one. | ||
| 14 | CONFIG_PREEMPT -- Do half. (First three and #8.) | ||
| 15 | CONFIG_PROVE_LOCKING -- Do all but two, covering CONFIG_PROVE_RCU and not. | ||
| 16 | CONFIG_PROVE_RCU -- Do all but one under CONFIG_PROVE_LOCKING. | ||
| 17 | CONFIG_PROVE_RCU_DELAY -- Do one. | ||
| 18 | CONFIG_RCU_BOOST -- one of TREE_PREEMPT_RCU. | ||
| 19 | CONFIG_RCU_BOOST_PRIO -- set to 2 for _BOOST testing. | ||
| 20 | CONFIG_RCU_CPU_STALL_INFO -- do one with and without _VERBOSE. | ||
| 21 | CONFIG_RCU_CPU_STALL_VERBOSE -- do one with and without _INFO. | ||
| 22 | CONFIG_RCU_FANOUT -- Cover hierarchy as currently, but overlap with others. | ||
| 23 | CONFIG_RCU_FANOUT_EXACT -- Do one. | ||
| 24 | CONFIG_RCU_FANOUT_LEAF -- Do one non-default. | ||
| 25 | CONFIG_RCU_FAST_NO_HZ -- Do one, but not with CONFIG_RCU_NOCB_CPU_ALL. | ||
| 26 | CONFIG_RCU_NOCB_CPU -- Do three, see below. | ||
| 27 | CONFIG_RCU_NOCB_CPU_ALL -- Do one. | ||
| 28 | CONFIG_RCU_NOCB_CPU_NONE -- Do one. | ||
| 29 | CONFIG_RCU_NOCB_CPU_ZERO -- Do one. | ||
| 30 | CONFIG_RCU_TRACE -- Do half. | ||
| 31 | CONFIG_SMP -- Need one !SMP for TREE_PREEMPT_RCU. | ||
| 32 | RCU-bh: Do one with PREEMPT and one with !PREEMPT. | ||
| 33 | RCU-sched: Do one with PREEMPT but not BOOST. | ||
| 34 | |||
| 35 | |||
| 36 | Hierarchy: | ||
| 37 | |||
| 38 | TREE01. CONFIG_NR_CPUS=8, CONFIG_RCU_FANOUT=8, CONFIG_RCU_FANOUT_EXACT=n. | ||
| 39 | TREE02. CONFIG_NR_CPUS=8, CONFIG_RCU_FANOUT=3, CONFIG_RCU_FANOUT_EXACT=n, | ||
| 40 | CONFIG_RCU_FANOUT_LEAF=3. | ||
| 41 | TREE03. CONFIG_NR_CPUS=8, CONFIG_RCU_FANOUT=4, CONFIG_RCU_FANOUT_EXACT=n, | ||
| 42 | CONFIG_RCU_FANOUT_LEAF=4. | ||
| 43 | TREE04. CONFIG_NR_CPUS=8, CONFIG_RCU_FANOUT=2, CONFIG_RCU_FANOUT_EXACT=n, | ||
| 44 | CONFIG_RCU_FANOUT_LEAF=2. | ||
| 45 | TREE05. CONFIG_NR_CPUS=8, CONFIG_RCU_FANOUT=6, CONFIG_RCU_FANOUT_EXACT=n | ||
| 46 | CONFIG_RCU_FANOUT_LEAF=6. | ||
| 47 | TREE06. CONFIG_NR_CPUS=8, CONFIG_RCU_FANOUT=6, CONFIG_RCU_FANOUT_EXACT=y | ||
| 48 | CONFIG_RCU_FANOUT_LEAF=6. | ||
| 49 | TREE07. CONFIG_NR_CPUS=16, CONFIG_RCU_FANOUT=2, CONFIG_RCU_FANOUT_EXACT=n, | ||
| 50 | CONFIG_RCU_FANOUT_LEAF=2. | ||
| 51 | TREE08. CONFIG_NR_CPUS=16, CONFIG_RCU_FANOUT=3, CONFIG_RCU_FANOUT_EXACT=y, | ||
| 52 | CONFIG_RCU_FANOUT_LEAF=2. | ||
| 53 | TREE09. CONFIG_NR_CPUS=1. | ||
| 54 | |||
| 55 | |||
| 56 | Kconfig Parameters Ignored: | ||
| 57 | |||
| 58 | CONFIG_64BIT | ||
| 59 | |||
| 60 | Used only to check CONFIG_RCU_FANOUT value, inspection suffices. | ||
| 61 | |||
| 62 | CONFIG_NO_HZ_FULL_SYSIDLE_SMALL | ||
| 63 | |||
| 64 | Defer until Frederic uses this. | ||
| 65 | |||
| 66 | CONFIG_PREEMPT_COUNT | ||
| 67 | CONFIG_PREEMPT_RCU | ||
| 68 | |||
| 69 | Redundant with CONFIG_PREEMPT, ignore. | ||
| 70 | |||
| 71 | CONFIG_RCU_BOOST_DELAY | ||
| 72 | |||
| 73 | Inspection suffices, ignore. | ||
| 74 | |||
| 75 | CONFIG_RCU_CPU_STALL_TIMEOUT | ||
| 76 | |||
| 77 | Inspection suffices, ignore. | ||
| 78 | |||
| 79 | CONFIG_RCU_STALL_COMMON | ||
| 80 | |||
| 81 | Implied by TREE_RCU and TREE_PREEMPT_RCU. | ||
| 82 | |||
| 83 | CONFIG_RCU_TORTURE_TEST | ||
| 84 | CONFIG_RCU_TORTURE_TEST_RUNNABLE | ||
| 85 | |||
| 86 | Always used in KVM testing. | ||
| 87 | |||
| 88 | CONFIG_RCU_USER_QS | ||
| 89 | |||
| 90 | Redundant with CONFIG_NO_HZ_FULL. | ||
| 91 | |||
| 92 | CONFIG_TREE_PREEMPT_RCU | ||
| 93 | CONFIG_TREE_RCU | ||
| 94 | |||
| 95 | These are controlled by CONFIG_PREEMPT. | ||
diff --git a/tools/testing/selftests/rcutorture/doc/initrd.txt b/tools/testing/selftests/rcutorture/doc/initrd.txt new file mode 100644 index 000000000000..49d134c25c04 --- /dev/null +++ b/tools/testing/selftests/rcutorture/doc/initrd.txt | |||
| @@ -0,0 +1,90 @@ | |||
| 1 | This document describes one way to create the initrd directory hierarchy | ||
| 2 | in order to allow an initrd to be built into your kernel. The trick | ||
| 3 | here is to steal the initrd file used on your Linux laptop, Ubuntu in | ||
| 4 | this case. There are probably much better ways of doing this. | ||
| 5 | |||
| 6 | That said, here are the commands: | ||
| 7 | |||
| 8 | ------------------------------------------------------------------------ | ||
| 9 | zcat /initrd.img > /tmp/initrd.img.zcat | ||
| 10 | mkdir initrd | ||
| 11 | cd initrd | ||
| 12 | cpio -id < /tmp/initrd.img.zcat | ||
| 13 | ------------------------------------------------------------------------ | ||
| 14 | |||
| 15 | Interestingly enough, if you are running rcutorture, you don't really | ||
| 16 | need userspace in many cases. Running without userspace has the | ||
| 17 | advantage of allowing you to test your kernel independently of the | ||
| 18 | distro in place, the root-filesystem layout, and so on. To make this | ||
| 19 | happen, put the following script in the initrd's tree's "/init" file, | ||
| 20 | with 0755 mode. | ||
| 21 | |||
| 22 | ------------------------------------------------------------------------ | ||
| 23 | #!/bin/sh | ||
| 24 | |||
| 25 | [ -d /dev ] || mkdir -m 0755 /dev | ||
| 26 | [ -d /root ] || mkdir -m 0700 /root | ||
| 27 | [ -d /sys ] || mkdir /sys | ||
| 28 | [ -d /proc ] || mkdir /proc | ||
| 29 | [ -d /tmp ] || mkdir /tmp | ||
| 30 | mkdir -p /var/lock | ||
| 31 | mount -t sysfs -o nodev,noexec,nosuid sysfs /sys | ||
| 32 | mount -t proc -o nodev,noexec,nosuid proc /proc | ||
| 33 | # Some things don't work properly without /etc/mtab. | ||
| 34 | ln -sf /proc/mounts /etc/mtab | ||
| 35 | |||
| 36 | # Note that this only becomes /dev on the real filesystem if udev's scripts | ||
| 37 | # are used; which they will be, but it's worth pointing out | ||
| 38 | if ! mount -t devtmpfs -o mode=0755 udev /dev; then | ||
| 39 | echo "W: devtmpfs not available, falling back to tmpfs for /dev" | ||
| 40 | mount -t tmpfs -o mode=0755 udev /dev | ||
| 41 | [ -e /dev/console ] || mknod --mode=600 /dev/console c 5 1 | ||
| 42 | [ -e /dev/kmsg ] || mknod --mode=644 /dev/kmsg c 1 11 | ||
| 43 | [ -e /dev/null ] || mknod --mode=666 /dev/null c 1 3 | ||
| 44 | fi | ||
| 45 | |||
| 46 | mkdir /dev/pts | ||
| 47 | mount -t devpts -o noexec,nosuid,gid=5,mode=0620 devpts /dev/pts || true | ||
| 48 | mount -t tmpfs -o "nosuid,size=20%,mode=0755" tmpfs /run | ||
| 49 | mkdir /run/initramfs | ||
| 50 | # compatibility symlink for the pre-oneiric locations | ||
| 51 | ln -s /run/initramfs /dev/.initramfs | ||
| 52 | |||
| 53 | # Export relevant variables | ||
| 54 | export ROOT= | ||
| 55 | export ROOTDELAY= | ||
| 56 | export ROOTFLAGS= | ||
| 57 | export ROOTFSTYPE= | ||
| 58 | export IP= | ||
| 59 | export BOOT= | ||
| 60 | export BOOTIF= | ||
| 61 | export UBIMTD= | ||
| 62 | export break= | ||
| 63 | export init=/sbin/init | ||
| 64 | export quiet=n | ||
| 65 | export readonly=y | ||
| 66 | export rootmnt=/root | ||
| 67 | export debug= | ||
| 68 | export panic= | ||
| 69 | export blacklist= | ||
| 70 | export resume= | ||
| 71 | export resume_offset= | ||
| 72 | export recovery= | ||
| 73 | |||
| 74 | for i in /sys/devices/system/cpu/cpu*/online | ||
| 75 | do | ||
| 76 | case $i in | ||
| 77 | '/sys/devices/system/cpu/cpu0/online') | ||
| 78 | ;; | ||
| 79 | '/sys/devices/system/cpu/cpu*/online') | ||
| 80 | ;; | ||
| 81 | *) | ||
| 82 | echo 1 > $i | ||
| 83 | ;; | ||
| 84 | esac | ||
| 85 | done | ||
| 86 | |||
| 87 | while : | ||
| 88 | do | ||
| 89 | sleep 10 | ||
| 90 | done | ||
diff --git a/tools/testing/selftests/rcutorture/doc/rcu-test-image.txt b/tools/testing/selftests/rcutorture/doc/rcu-test-image.txt new file mode 100644 index 000000000000..66efb59a1bd1 --- /dev/null +++ b/tools/testing/selftests/rcutorture/doc/rcu-test-image.txt | |||
| @@ -0,0 +1,42 @@ | |||
| 1 | This document describes one way to created the rcu-test-image file | ||
| 2 | that contains the filesystem used by the guest-OS kernel. There are | ||
| 3 | probably much better ways of doing this, and this filesystem could no | ||
| 4 | doubt be smaller. It is probably also possible to simply download | ||
| 5 | an appropriate image from any number of places. | ||
| 6 | |||
| 7 | That said, here are the commands: | ||
| 8 | |||
| 9 | ------------------------------------------------------------------------ | ||
| 10 | dd if=/dev/zero of=rcu-test-image bs=400M count=1 | ||
| 11 | mkfs.ext3 ./rcu-test-image | ||
| 12 | sudo mount -o loop ./rcu-test-image /mnt | ||
| 13 | |||
| 14 | # Replace "precise" below with your favorite Ubuntu release. | ||
| 15 | # Empirical evidence says this image will work for 64-bit, but... | ||
| 16 | # Note that debootstrap does take a few minutes to run. Or longer. | ||
| 17 | sudo debootstrap --verbose --arch i386 precise /mnt http://archive.ubuntu.com/ubuntu | ||
| 18 | cat << '___EOF___' | sudo dd of=/mnt/etc/fstab | ||
| 19 | # UNCONFIGURED FSTAB FOR BASE SYSTEM | ||
| 20 | # | ||
| 21 | /dev/vda / ext3 defaults 1 1 | ||
| 22 | dev /dev tmpfs rw 0 0 | ||
| 23 | tmpfs /dev/shm tmpfs defaults 0 0 | ||
| 24 | devpts /dev/pts devpts gid=5,mode=620 0 0 | ||
| 25 | sysfs /sys sysfs defaults 0 0 | ||
| 26 | proc /proc proc defaults 0 0 | ||
| 27 | ___EOF___ | ||
| 28 | sudo umount /mnt | ||
| 29 | ------------------------------------------------------------------------ | ||
| 30 | |||
| 31 | |||
| 32 | References: | ||
| 33 | |||
| 34 | http://sripathikodi.blogspot.com/2010/02/creating-kvm-bootable-fedora-system.html | ||
| 35 | https://help.ubuntu.com/community/KVM/CreateGuests | ||
| 36 | https://help.ubuntu.com/community/JeOSVMBuilder | ||
| 37 | http://wiki.libvirt.org/page/UbuntuKVMWalkthrough | ||
| 38 | http://www.moe.co.uk/2011/01/07/pci_add_option_rom-failed-to-find-romfile-pxe-rtl8139-bin/ -- "apt-get install kvm-pxe" | ||
| 39 | http://www.landley.net/writing/rootfs-howto.html | ||
| 40 | http://en.wikipedia.org/wiki/Initrd | ||
| 41 | http://en.wikipedia.org/wiki/Cpio | ||
| 42 | http://wiki.libvirt.org/page/UbuntuKVMWalkthrough | ||
