diff options
Diffstat (limited to 'rcutorture')
-rwxr-xr-x | rcutorture/bin/configinit.sh | 2 | ||||
-rw-r--r-- | rcutorture/bin/functions.sh | 49 | ||||
-rwxr-xr-x | rcutorture/bin/kvm-build.sh | 6 | ||||
-rwxr-xr-x | rcutorture/bin/kvm-recheck-lock.sh | 51 | ||||
-rwxr-xr-x | rcutorture/bin/kvm-recheck-rcu.sh | 51 | ||||
-rwxr-xr-x | rcutorture/bin/kvm-recheck.sh | 43 | ||||
-rwxr-xr-x | rcutorture/bin/kvm-test-1-rcu.sh (renamed from rcutorture/bin/kvm-test-1-run.sh) | 103 | ||||
-rw-r--r-- | rcutorture/bin/kvm.sh | 321 | ||||
-rwxr-xr-x | rcutorture/bin/parse-rcutorture.sh (renamed from rcutorture/bin/parse-torture.sh) | 22 | ||||
-rw-r--r-- | rcutorture/configs/CFLIST (renamed from rcutorture/configs/rcu/CFLIST) | 0 | ||||
-rw-r--r-- | rcutorture/configs/SRCU-N (renamed from rcutorture/configs/rcu/SRCU-N) | 3 | ||||
-rw-r--r-- | rcutorture/configs/SRCU-N.boot (renamed from rcutorture/configs/rcu/SRCU-N.boot) | 0 | ||||
-rw-r--r-- | rcutorture/configs/SRCU-P (renamed from rcutorture/configs/rcu/SRCU-P) | 1 | ||||
-rw-r--r-- | rcutorture/configs/SRCU-P.boot (renamed from rcutorture/configs/rcu/SRCU-P.boot) | 0 | ||||
-rw-r--r-- | rcutorture/configs/TINY01 (renamed from rcutorture/configs/rcu/TINY01) | 1 | ||||
-rw-r--r-- | rcutorture/configs/TINY02 (renamed from rcutorture/configs/rcu/TINY02) | 1 | ||||
-rw-r--r-- | rcutorture/configs/TREE01 (renamed from rcutorture/configs/rcu/TREE01) | 2 | ||||
-rw-r--r-- | rcutorture/configs/TREE01.boot (renamed from rcutorture/configs/rcu/TREE01.boot) | 0 | ||||
-rw-r--r-- | rcutorture/configs/TREE02 (renamed from rcutorture/configs/rcu/TREE02) | 4 | ||||
-rw-r--r-- | rcutorture/configs/TREE03 (renamed from rcutorture/configs/rcu/TREE03) | 2 | ||||
-rw-r--r-- | rcutorture/configs/TREE04 (renamed from rcutorture/configs/rcu/TREE04) | 2 | ||||
-rw-r--r-- | rcutorture/configs/TREE04.boot (renamed from rcutorture/configs/rcu/TREE04.boot) | 0 | ||||
-rw-r--r-- | rcutorture/configs/TREE05 (renamed from rcutorture/configs/rcu/TREE05) | 2 | ||||
-rw-r--r-- | rcutorture/configs/TREE05.boot (renamed from rcutorture/configs/rcu/TREE05.boot) | 0 | ||||
-rw-r--r-- | rcutorture/configs/TREE06 (renamed from rcutorture/configs/rcu/TREE06) | 2 | ||||
-rw-r--r-- | rcutorture/configs/TREE07 (renamed from rcutorture/configs/rcu/TREE07) | 2 | ||||
-rw-r--r-- | rcutorture/configs/TREE08 (renamed from rcutorture/configs/rcu/TREE08) | 2 | ||||
-rw-r--r-- | rcutorture/configs/TREE08-T (renamed from rcutorture/configs/rcu/TREE08-T) | 2 | ||||
-rw-r--r-- | rcutorture/configs/TREE09 (renamed from rcutorture/configs/rcu/TREE09) | 2 | ||||
-rw-r--r-- | rcutorture/configs/lock/BUSTED | 6 | ||||
-rw-r--r-- | rcutorture/configs/lock/BUSTED.boot | 1 | ||||
-rw-r--r-- | rcutorture/configs/lock/CFLIST | 1 | ||||
-rw-r--r-- | rcutorture/configs/lock/CFcommon | 2 | ||||
-rw-r--r-- | rcutorture/configs/lock/LOCK01 | 6 | ||||
-rw-r--r-- | rcutorture/configs/lock/ver_functions.sh | 43 | ||||
-rw-r--r-- | rcutorture/configs/rcu/BUSTED | 7 | ||||
-rw-r--r-- | rcutorture/configs/rcu/BUSTED.boot | 1 | ||||
-rw-r--r-- | rcutorture/configs/rcu/CFcommon | 2 | ||||
-rw-r--r-- | rcutorture/configs/rcu/TREE02-T | 24 | ||||
-rw-r--r-- | rcutorture/configs/rcu/TREE08.boot | 1 | ||||
-rw-r--r-- | rcutorture/configs/v0.0/CFLIST (renamed from rcutorture/configs/rcu/v0.0/CFLIST) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v0.0/N1-S-T-NH-SD-SMP-HP (renamed from rcutorture/configs/rcu/v0.0/N1-S-T-NH-SD-SMP-HP) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v0.0/N2-2-t-nh-sd-SMP-hp (renamed from rcutorture/configs/rcu/v0.0/N2-2-t-nh-sd-SMP-hp) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v0.0/N3-3-T-nh-SD-SMP-hp (renamed from rcutorture/configs/rcu/v0.0/N3-3-T-nh-SD-SMP-hp) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v0.0/N4-A-t-NH-sd-SMP-HP (renamed from rcutorture/configs/rcu/v0.0/N4-A-t-NH-sd-SMP-HP) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v0.0/N5-U-T-NH-sd-SMP-hp (renamed from rcutorture/configs/rcu/v0.0/N5-U-T-NH-sd-SMP-hp) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v0.0/NT1-nh (renamed from rcutorture/configs/rcu/v0.0/NT1-nh) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v0.0/NT3-NH (renamed from rcutorture/configs/rcu/v0.0/NT3-NH) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v0.0/P1-S-T-NH-SD-SMP-HP (renamed from rcutorture/configs/rcu/v0.0/P1-S-T-NH-SD-SMP-HP) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v0.0/P2-2-t-nh-sd-SMP-hp (renamed from rcutorture/configs/rcu/v0.0/P2-2-t-nh-sd-SMP-hp) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v0.0/P3-3-T-nh-SD-SMP-hp (renamed from rcutorture/configs/rcu/v0.0/P3-3-T-nh-SD-SMP-hp) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v0.0/P4-A-t-NH-sd-SMP-HP (renamed from rcutorture/configs/rcu/v0.0/P4-A-t-NH-sd-SMP-HP) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v0.0/P5-U-T-NH-sd-SMP-hp (renamed from rcutorture/configs/rcu/v3.5/P5-U-T-NH-sd-SMP-hp) | 1 | ||||
-rw-r--r-- | rcutorture/configs/v0.0/PT1-nh (renamed from rcutorture/configs/rcu/v0.0/PT1-nh) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v0.0/PT2-NH (renamed from rcutorture/configs/rcu/v0.0/PT2-NH) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v0.0/ver_functions.sh (renamed from rcutorture/configs/rcu/v0.0/ver_functions.sh) | 22 | ||||
-rw-r--r-- | rcutorture/configs/v3.12/CFLIST (renamed from rcutorture/configs/rcu/v3.12/CFLIST) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.12/N1-S-T-NH-SD-SMP-HP (renamed from rcutorture/configs/rcu/v3.12/N1-S-T-NH-SD-SMP-HP) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.12/N2-2-t-nh-sd-SMP-hp (renamed from rcutorture/configs/rcu/v3.12/N2-2-t-nh-sd-SMP-hp) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.12/N3-3-T-nh-SD-SMP-hp (renamed from rcutorture/configs/rcu/v3.12/N3-3-T-nh-SD-SMP-hp) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.12/N4-A-t-NH-sd-SMP-HP (renamed from rcutorture/configs/rcu/v3.12/N4-A-t-NH-sd-SMP-HP) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.12/N5-U-T-NH-sd-SMP-hp (renamed from rcutorture/configs/rcu/v3.12/N5-U-T-NH-sd-SMP-hp) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.12/N6---t-nh-SD-smp-hp (renamed from rcutorture/configs/rcu/v3.12/N6---t-nh-SD-smp-hp) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.12/N7-4-T-NH-SD-SMP-HP (renamed from rcutorture/configs/rcu/v3.12/N7-4-T-NH-SD-SMP-HP) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.12/N8-2-T-NH-SD-SMP-HP (renamed from rcutorture/configs/rcu/v3.12/N8-2-T-NH-SD-SMP-HP) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.12/NT1-nh (renamed from rcutorture/configs/rcu/v3.12/NT1-nh) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.12/NT3-NH (renamed from rcutorture/configs/rcu/v3.12/NT3-NH) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.12/P1-S-T-NH-SD-SMP-HP (renamed from rcutorture/configs/rcu/v3.12/P1-S-T-NH-SD-SMP-HP) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.12/P2-2-t-nh-sd-SMP-hp (renamed from rcutorture/configs/rcu/v3.12/P2-2-t-nh-sd-SMP-hp) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.12/P3-3-T-nh-SD-SMP-hp (renamed from rcutorture/configs/rcu/v3.12/P3-3-T-nh-SD-SMP-hp) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.12/P4-A-t-NH-sd-SMP-HP (renamed from rcutorture/configs/rcu/v3.12/P4-A-t-NH-sd-SMP-HP) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.12/P5-U-T-NH-sd-SMP-hp (renamed from rcutorture/configs/rcu/v3.3/P5-U-T-NH-sd-SMP-hp) | 1 | ||||
-rw-r--r-- | rcutorture/configs/v3.12/P6---t-nh-SD-smp-hp (renamed from rcutorture/configs/rcu/v3.12/P6---t-nh-SD-smp-hp) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.12/P7-4-T-NH-SD-SMP-HP (renamed from rcutorture/configs/rcu/v3.12/P7-4-T-NH-SD-SMP-HP) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.12/P7-4-T-NH-SD-SMP-HP-all (renamed from rcutorture/configs/rcu/v3.12/P7-4-T-NH-SD-SMP-HP-all) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.12/P7-4-T-NH-SD-SMP-HP-none (renamed from rcutorture/configs/rcu/v3.12/P7-4-T-NH-SD-SMP-HP-none) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.12/P7-4-T-NH-SD-SMP-hp (renamed from rcutorture/configs/rcu/v3.12/P7-4-T-NH-SD-SMP-hp) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.12/PT1-nh (renamed from rcutorture/configs/rcu/v3.12/PT1-nh) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.12/PT2-NH (renamed from rcutorture/configs/rcu/v3.12/PT2-NH) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.3/CFLIST (renamed from rcutorture/configs/rcu/v3.3/CFLIST) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.3/N1-S-T-NH-SD-SMP-HP (renamed from rcutorture/configs/rcu/v3.3/N1-S-T-NH-SD-SMP-HP) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.3/N2-2-t-nh-sd-SMP-hp (renamed from rcutorture/configs/rcu/v3.3/N2-2-t-nh-sd-SMP-hp) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.3/N3-3-T-nh-SD-SMP-hp (renamed from rcutorture/configs/rcu/v3.3/N3-3-T-nh-SD-SMP-hp) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.3/N4-A-t-NH-sd-SMP-HP (renamed from rcutorture/configs/rcu/v3.3/N4-A-t-NH-sd-SMP-HP) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.3/N5-U-T-NH-sd-SMP-hp (renamed from rcutorture/configs/rcu/v3.3/N5-U-T-NH-sd-SMP-hp) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.3/NT1-nh (renamed from rcutorture/configs/rcu/v3.3/NT1-nh) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.3/NT3-NH (renamed from rcutorture/configs/rcu/v3.3/NT3-NH) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.3/P1-S-T-NH-SD-SMP-HP (renamed from rcutorture/configs/rcu/v3.3/P1-S-T-NH-SD-SMP-HP) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.3/P2-2-t-nh-sd-SMP-hp (renamed from rcutorture/configs/rcu/v3.3/P2-2-t-nh-sd-SMP-hp) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.3/P3-3-T-nh-SD-SMP-hp (renamed from rcutorture/configs/rcu/v3.3/P3-3-T-nh-SD-SMP-hp) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.3/P4-A-t-NH-sd-SMP-HP (renamed from rcutorture/configs/rcu/v3.3/P4-A-t-NH-sd-SMP-HP) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.3/P5-U-T-NH-sd-SMP-hp (renamed from rcutorture/configs/rcu/v3.12/P5-U-T-NH-sd-SMP-hp) | 1 | ||||
-rw-r--r-- | rcutorture/configs/v3.3/PT1-nh (renamed from rcutorture/configs/rcu/v3.3/PT1-nh) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.3/PT2-NH (renamed from rcutorture/configs/rcu/v3.3/PT2-NH) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.3/ver_functions.sh (renamed from rcutorture/configs/rcu/ver_functions.sh) | 26 | ||||
-rw-r--r-- | rcutorture/configs/v3.5/CFLIST (renamed from rcutorture/configs/rcu/v3.5/CFLIST) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.5/N1-S-T-NH-SD-SMP-HP (renamed from rcutorture/configs/rcu/v3.5/N1-S-T-NH-SD-SMP-HP) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.5/N2-2-t-nh-sd-SMP-hp (renamed from rcutorture/configs/rcu/v3.5/N2-2-t-nh-sd-SMP-hp) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.5/N3-3-T-nh-SD-SMP-hp (renamed from rcutorture/configs/rcu/v3.5/N3-3-T-nh-SD-SMP-hp) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.5/N4-A-t-NH-sd-SMP-HP (renamed from rcutorture/configs/rcu/v3.5/N4-A-t-NH-sd-SMP-HP) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.5/N5-U-T-NH-sd-SMP-hp (renamed from rcutorture/configs/rcu/v3.5/N5-U-T-NH-sd-SMP-hp) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.5/NT1-nh (renamed from rcutorture/configs/rcu/v3.5/NT1-nh) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.5/NT3-NH (renamed from rcutorture/configs/rcu/v3.5/NT3-NH) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.5/P1-S-T-NH-SD-SMP-HP (renamed from rcutorture/configs/rcu/v3.5/P1-S-T-NH-SD-SMP-HP) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.5/P2-2-t-nh-sd-SMP-hp (renamed from rcutorture/configs/rcu/v3.5/P2-2-t-nh-sd-SMP-hp) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.5/P3-3-T-nh-SD-SMP-hp (renamed from rcutorture/configs/rcu/v3.5/P3-3-T-nh-SD-SMP-hp) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.5/P4-A-t-NH-sd-SMP-HP (renamed from rcutorture/configs/rcu/v3.5/P4-A-t-NH-sd-SMP-HP) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.5/P5-U-T-NH-sd-SMP-hp (renamed from rcutorture/configs/rcu/v0.0/P5-U-T-NH-sd-SMP-hp) | 1 | ||||
-rw-r--r-- | rcutorture/configs/v3.5/PT1-nh (renamed from rcutorture/configs/rcu/v3.5/PT1-nh) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.5/PT2-NH (renamed from rcutorture/configs/rcu/v3.5/PT2-NH) | 0 | ||||
-rw-r--r-- | rcutorture/configs/v3.5/ver_functions.sh (renamed from rcutorture/configs/rcu/v3.5/ver_functions.sh) | 23 | ||||
-rw-r--r-- | rcutorture/configs/ver_functions.sh (renamed from rcutorture/configs/rcu/v3.3/ver_functions.sh) | 28 | ||||
-rw-r--r-- | rcutorture/doc/TREE_RCU-Kconfig.txt (renamed from rcutorture/doc/TREE_RCU-kconfig.txt) | 1 |
113 files changed, 198 insertions, 676 deletions
diff --git a/rcutorture/bin/configinit.sh b/rcutorture/bin/configinit.sh index 9c3f3d3..a1be6e6 100755 --- a/rcutorture/bin/configinit.sh +++ b/rcutorture/bin/configinit.sh @@ -62,7 +62,7 @@ grep '^grep' < $T/u.sh > $T/upd.sh echo "cat - $c" >> $T/upd.sh make mrproper make $buildloc distclean > $builddir/Make.distclean 2>&1 -make $buildloc $TORTURE_DEFCONFIG > $builddir/Make.defconfig.out 2>&1 +make $buildloc defconfig > $builddir/Make.defconfig.out 2>&1 mv $builddir/.config $builddir/.config.sav sh $T/upd.sh < $builddir/.config.sav > $builddir/.config cp $builddir/.config $builddir/.config.new diff --git a/rcutorture/bin/functions.sh b/rcutorture/bin/functions.sh index d01b865..587561d 100644 --- a/rcutorture/bin/functions.sh +++ b/rcutorture/bin/functions.sh @@ -76,39 +76,15 @@ configfrag_hotplug_cpu () { grep -q '^CONFIG_HOTPLUG_CPU=y$' "$1" } -# identify_boot_image qemu-cmd -# -# Returns the relative path to the kernel build image. This will be -# arch/<arch>/boot/bzImage unless overridden with the TORTURE_BOOT_IMAGE -# environment variable. -identify_boot_image () { - if test -n "$TORTURE_BOOT_IMAGE" - then - echo $TORTURE_BOOT_IMAGE - else - case "$1" in - qemu-system-x86_64|qemu-system-i386) - echo arch/x86/boot/bzImage - ;; - qemu-system-ppc64) - echo arch/powerpc/boot/bzImage - ;; - *) - echo "" - ;; - esac - fi -} - # identify_qemu builddir # # Returns our best guess as to which qemu command is appropriate for -# the kernel at hand. Override with the TORTURE_QEMU_CMD environment variable. +# the kernel at hand. Override with the RCU_QEMU_CMD environment variable. identify_qemu () { local u="`file "$1"`" - if test -n "$TORTURE_QEMU_CMD" + if test -n "$RCU_QEMU_CMD" then - echo $TORTURE_QEMU_CMD + echo $RCU_QEMU_CMD elif echo $u | grep -q x86-64 then echo qemu-system-x86_64 @@ -120,9 +96,8 @@ identify_qemu () { echo qemu-system-ppc64 else echo Cannot figure out what qemu command to use! 1>&2 - echo file $1 output: $u # Usually this will be one of /usr/bin/qemu-system-* - # Use TORTURE_QEMU_CMD environment variable or appropriate + # Use RCU_QEMU_CMD environment variable or appropriate # argument to top-level script. exit 1 fi @@ -131,14 +106,14 @@ identify_qemu () { # identify_qemu_append qemu-cmd # # Output arguments for the qemu "-append" string based on CPU type -# and the TORTURE_QEMU_INTERACTIVE environment variable. +# and the RCU_QEMU_INTERACTIVE environment variable. identify_qemu_append () { case "$1" in qemu-system-x86_64|qemu-system-i386) echo noapic selinux=0 initcall_debug debug ;; esac - if test -n "$TORTURE_QEMU_INTERACTIVE" + if test -n "$RCU_QEMU_INTERACTIVE" then echo root=/dev/sda else @@ -148,8 +123,8 @@ identify_qemu_append () { # identify_qemu_args qemu-cmd serial-file # -# Output arguments for qemu arguments based on the TORTURE_QEMU_MAC -# and TORTURE_QEMU_INTERACTIVE environment variables. +# Output arguments for qemu arguments based on the RCU_QEMU_MAC +# and RCU_QEMU_INTERACTIVE environment variables. identify_qemu_args () { case "$1" in qemu-system-x86_64|qemu-system-i386) @@ -157,17 +132,17 @@ identify_qemu_args () { qemu-system-ppc64) echo -enable-kvm -M pseries -cpu POWER7 -nodefaults echo -device spapr-vscsi - if test -n "$TORTURE_QEMU_INTERACTIVE" -a -n "$TORTURE_QEMU_MAC" + if test -n "$RCU_QEMU_INTERACTIVE" -a -n "$RCU_QEMU_MAC" then - echo -device spapr-vlan,netdev=net0,mac=$TORTURE_QEMU_MAC + echo -device spapr-vlan,netdev=net0,mac=$RCU_QEMU_MAC echo -netdev bridge,br=br0,id=net0 - elif test -n "$TORTURE_QEMU_INTERACTIVE" + elif test -n "$RCU_QEMU_INTERACTIVE" then echo -net nic -net user fi ;; esac - if test -n "$TORTURE_QEMU_INTERACTIVE" + if test -n "$RCU_QEMU_INTERACTIVE" then echo -monitor stdio -serial pty -S else diff --git a/rcutorture/bin/kvm-build.sh b/rcutorture/bin/kvm-build.sh index 7c1e56b..197901e 100755 --- a/rcutorture/bin/kvm-build.sh +++ b/rcutorture/bin/kvm-build.sh @@ -45,9 +45,9 @@ T=/tmp/test-linux.sh.$$ trap 'rm -rf $T' 0 mkdir $T -grep -v 'CONFIG_[A-Z]*_TORTURE_TEST' < ${config_template} > $T/config +cat ${config_template} | grep -v CONFIG_RCU_TORTURE_TEST > $T/config cat << ___EOF___ >> $T/config -CONFIG_INITRAMFS_SOURCE="$TORTURE_INITRD" +CONFIG_INITRAMFS_SOURCE="$RCU_INITRD" CONFIG_VIRTIO_PCI=y CONFIG_VIRTIO_CONSOLE=y ___EOF___ @@ -60,7 +60,7 @@ then exit 2 fi ncpus=`cpus2use.sh` -make O=$builddir -j$ncpus $TORTURE_KMAKE_ARG > $builddir/Make.out 2>&1 +make O=$builddir -j$ncpus $RCU_KMAKE_ARG > $builddir/Make.out 2>&1 retval=$? if test $retval -ne 0 || grep "rcu[^/]*": < $builddir/Make.out | egrep -q "Stop|Error|error:|warning:" || egrep -q "Stop|Error|error:" < $builddir/Make.out then diff --git a/rcutorture/bin/kvm-recheck-lock.sh b/rcutorture/bin/kvm-recheck-lock.sh deleted file mode 100755 index 7f1ff1a..0000000 --- a/rcutorture/bin/kvm-recheck-lock.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/bash -# -# Analyze a given results directory for locktorture progress. -# -# Usage: sh kvm-recheck-lock.sh resdir -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, you can access it online at -# http://www.gnu.org/licenses/gpl-2.0.html. -# -# Copyright (C) IBM Corporation, 2014 -# -# Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com> - -i="$1" -if test -d $i -then - : -else - echo Unreadable results directory: $i - exit 1 -fi - -configfile=`echo $i | sed -e 's/^.*\///'` -ncs=`grep "Writes: Total:" $i/console.log 2> /dev/null | tail -1 | sed -e 's/^.* Total: //' -e 's/ .*$//'` -if test -z "$ncs" -then - echo "$configfile -------" -else - title="$configfile ------- $ncs acquisitions/releases" - dur=`sed -e 's/^.* locktorture.shutdown_secs=//' -e 's/ .*$//' < $i/qemu-cmd 2> /dev/null` - if test -z "$dur" - then - : - else - ncsps=`awk -v ncs=$ncs -v dur=$dur ' - BEGIN { print ncs / dur }' < /dev/null` - title="$title ($ncsps per second)" - fi - echo $title -fi diff --git a/rcutorture/bin/kvm-recheck-rcu.sh b/rcutorture/bin/kvm-recheck-rcu.sh deleted file mode 100755 index 307c4b9..0000000 --- a/rcutorture/bin/kvm-recheck-rcu.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/bash -# -# Analyze a given results directory for rcutorture progress. -# -# Usage: sh kvm-recheck-rcu.sh resdir -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, you can access it online at -# http://www.gnu.org/licenses/gpl-2.0.html. -# -# Copyright (C) IBM Corporation, 2014 -# -# Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com> - -i="$1" -if test -d $i -then - : -else - echo Unreadable results directory: $i - exit 1 -fi - -configfile=`echo $i | sed -e 's/^.*\///'` -ngps=`grep ver: $i/console.log 2> /dev/null | tail -1 | sed -e 's/^.* ver: //' -e 's/ .*$//'` -if test -z "$ngps" -then - echo "$configfile -------" -else - title="$configfile ------- $ngps grace periods" - dur=`sed -e 's/^.* rcutorture.shutdown_secs=//' -e 's/ .*$//' < $i/qemu-cmd 2> /dev/null` - if test -z "$dur" - then - : - else - ngpsps=`awk -v ngps=$ngps -v dur=$dur ' - BEGIN { print ngps / dur }' < /dev/null` - title="$title ($ngpsps per second)" - fi - echo $title -fi diff --git a/rcutorture/bin/kvm-recheck.sh b/rcutorture/bin/kvm-recheck.sh index 3f6c9b7..baef09f 100755 --- a/rcutorture/bin/kvm-recheck.sh +++ b/rcutorture/bin/kvm-recheck.sh @@ -1,6 +1,6 @@ #!/bin/bash # -# Given the results directories for previous KVM-based torture runs, +# Given the results directories for previous KVM runs of rcutorture, # check the build and console output for errors. Given a directory # containing results directories, this recursively checks them all. # @@ -25,45 +25,20 @@ # Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com> PATH=`pwd`/tools/testing/selftests/rcutorture/bin:$PATH; export PATH -. tools/testing/selftests/rcutorture/bin/functions.sh for rd in "$@" do - firsttime=1 dirs=`find $rd -name Make.defconfig.out -print | sort | sed -e 's,/[^/]*$,,' | sort -u` for i in $dirs do - if test -n "$firsttime" + configfile=`echo $i | sed -e 's/^.*\///'` + echo $configfile + configcheck.sh $i/.config $i/ConfigFragment + parse-build.sh $i/Make.out $configfile + parse-rcutorture.sh $i/console.log $configfile + parse-console.sh $i/console.log $configfile + if test -r $i/Warnings then - firsttime="" - resdir=`echo $i | sed -e 's,/$,,' -e 's,/[^/]*$,,'` - head -1 $resdir/log - fi - TORTURE_SUITE="`cat $i/../TORTURE_SUITE`" - kvm-recheck-${TORTURE_SUITE}.sh $i - if test -f "$i/console.log" - then - configcheck.sh $i/.config $i/ConfigFragment - parse-build.sh $i/Make.out $configfile - parse-torture.sh $i/console.log $configfile - parse-console.sh $i/console.log $configfile - if test -r $i/Warnings - then - cat $i/Warnings - fi - else - if test -f "$i/qemu-cmd" - then - print_bug qemu failed - echo " $i" - elif test -f "$i/buildonly" - then - echo Build-only run, no boot/test - configcheck.sh $i/.config $i/ConfigFragment - parse-build.sh $i/Make.out $configfile - else - print_bug Build failed - echo " $i" - fi + cat $i/Warnings fi done done diff --git a/rcutorture/bin/kvm-test-1-run.sh b/rcutorture/bin/kvm-test-1-rcu.sh index 0f69dcb..151b237 100755 --- a/rcutorture/bin/kvm-test-1-run.sh +++ b/rcutorture/bin/kvm-test-1-rcu.sh @@ -6,15 +6,15 @@ # Execute this in the source tree. Do not run it as a background task # because qemu does not seem to like that much. # -# Usage: sh kvm-test-1-run.sh config builddir resdir minutes qemu-args boot_args +# Usage: sh kvm-test-1-rcu.sh config builddir resdir minutes qemu-args bootargs # -# qemu-args defaults to "-nographic", along with arguments specifying the -# number of CPUs and other options generated from -# the underlying CPU architecture. -# boot_args defaults to value returned by the per_version_boot_params -# shell function. +# qemu-args defaults to "" -- you will want "-nographic" if running headless. +# bootargs defaults to "root=/dev/sda noapic selinux=0 console=ttyS0" +# "initcall_debug debug rcutorture.stat_interval=15" +# "rcutorture.shutdown_secs=$((minutes * 60))" +# "rcutorture.rcutorture_runnable=1" # -# Anything you specify for either qemu-args or boot_args is appended to +# Anything you specify for either qemu-args or bootargs is appended to # the default values. The "-smp" value is deduced from the contents of # the config fragment. # @@ -40,35 +40,32 @@ grace=120 -T=/tmp/kvm-test-1-run.sh.$$ +T=/tmp/kvm-test-1-rcu.sh.$$ trap 'rm -rf $T' 0 -touch $T . $KVM/bin/functions.sh . $KVPATH/ver_functions.sh config_template=${1} -config_dir=`echo $config_template | sed -e 's,/[^/]*$,,'` title=`echo $config_template | sed -e 's/^.*\///'` builddir=${2} if test -z "$builddir" -o ! -d "$builddir" -o ! -w "$builddir" then - echo "kvm-test-1-run.sh :$builddir: Not a writable directory, cannot build into it" + echo "kvm-test-1-rcu.sh :$builddir: Not a writable directory, cannot build into it" exit 1 fi resdir=${3} if test -z "$resdir" -o ! -d "$resdir" -o ! -w "$resdir" then - echo "kvm-test-1-run.sh :$resdir: Not a writable directory, cannot store results into it" + echo "kvm-test-1-rcu.sh :$resdir: Not a writable directory, cannot build into it" exit 1 fi cp $config_template $resdir/ConfigFragment echo ' ---' `date`: Starting build echo ' ---' Kconfig fragment at: $config_template >> $resdir/log -if test -r "$config_dir/CFcommon" -then - cat < $config_dir/CFcommon >> $T -fi +cat << '___EOF___' >> $T +CONFIG_RCU_TORTURE_TEST=y +___EOF___ # Optimizations below this point # CONFIG_USB=n # CONFIG_SECURITY=n @@ -95,36 +92,15 @@ fi # CONFIG_YENTA=n if kvm-build.sh $config_template $builddir $T then - QEMU="`identify_qemu $builddir/vmlinux`" - BOOT_IMAGE="`identify_boot_image $QEMU`" cp $builddir/Make*.out $resdir cp $builddir/.config $resdir - if test -n "$BOOT_IMAGE" - then - cp $builddir/$BOOT_IMAGE $resdir - else - echo No identifiable boot image, not running KVM, see $resdir. - echo Do the torture scripts know about your architecture? - fi + cp $builddir/arch/x86/boot/bzImage $resdir parse-build.sh $resdir/Make.out $title - if test -f $builddir.wait - then - mv $builddir.wait $builddir.ready - fi else cp $builddir/Make*.out $resdir - cp $builddir/.config $resdir || : echo Build failed, not running KVM, see $resdir. - if test -f $builddir.wait - then - mv $builddir.wait $builddir.ready - fi exit 1 fi -while test -f $builddir.ready -do - sleep 1 -done minutes=$4 seconds=$(($minutes * 60)) qemu_args=$5 @@ -132,13 +108,12 @@ boot_args=$6 cd $KVM kstarttime=`awk 'BEGIN { print systime() }' < /dev/null` -if test -z "$TORTURE_BUILDONLY" -then - echo ' ---' `date`: Starting kernel -fi +echo ' ---' `date`: Starting kernel + +# Determine the appropriate flavor of qemu command. +QEMU="`identify_qemu $builddir/vmlinux.o`" # Generate -smp qemu argument. -qemu_args="-nographic $qemu_args" cpu_count=`configNR_CPUS.sh $config_template` vcpus=`identify_qemu_vcpus` if test $cpu_count -gt $vcpus @@ -158,42 +133,34 @@ qemu_append="`identify_qemu_append "$QEMU"`" # Pull in Kconfig-fragment boot parameters boot_args="`configfrag_boot_params "$boot_args" "$config_template"`" -# Generate kernel-version-specific boot parameters -boot_args="`per_version_boot_params "$boot_args" $builddir/.config $seconds`" +# Generate CPU-hotplug boot parameters +boot_args="`rcutorture_param_onoff "$boot_args" $builddir/.config`" +# Generate rcu_barrier() boot parameter +boot_args="`rcutorture_param_n_barrier_cbs "$boot_args"`" +# Pull in standard rcutorture boot arguments +boot_args="$boot_args rcutorture.stat_interval=15 rcutorture.shutdown_secs=$seconds rcutorture.rcutorture_runnable=1" -if test -n "$TORTURE_BUILDONLY" +echo $QEMU $qemu_args -m 512 -kernel $builddir/arch/x86/boot/bzImage -append \"$qemu_append $boot_args\" > $resdir/qemu-cmd +if test -n "$RCU_BUILDONLY" then echo Build-only run specified, boot/test omitted. - touch $resdir/buildonly exit 0 fi -echo $QEMU $qemu_args -m 512 -kernel $builddir/$BOOT_IMAGE -append \"$qemu_append $boot_args\" > $resdir/qemu-cmd -( $QEMU $qemu_args -m 512 -kernel $builddir/$BOOT_IMAGE -append "$qemu_append $boot_args"; echo $? > $resdir/qemu-retval ) & +$QEMU $qemu_args -m 512 -kernel $builddir/arch/x86/boot/bzImage -append "$qemu_append $boot_args" & qemu_pid=$! commandcompleted=0 echo Monitoring qemu job at pid $qemu_pid -while : +for ((i=0;i<$seconds;i++)) do - kruntime=`awk 'BEGIN { print systime() - '"$kstarttime"' }' < /dev/null` if kill -0 $qemu_pid > /dev/null 2>&1 then - if test $kruntime -ge $seconds - then - break; - fi sleep 1 else commandcompleted=1 + kruntime=`awk 'BEGIN { print systime() - '"$kstarttime"' }' < /dev/null` if test $kruntime -lt $seconds then echo Completed in $kruntime vs. $seconds >> $resdir/Warnings 2>&1 - grep "^(qemu) qemu:" $resdir/kvm-test-1-run.sh.out >> $resdir/Warnings 2>&1 - killpid="`sed -n "s/^(qemu) qemu: terminating on signal [0-9]* from pid \([0-9]*\).*$/\1/p" $resdir/Warnings`" - if test -n "$killpid" - then - echo "ps -fp $killpid" >> $resdir/Warnings 2>&1 - ps -fp $killpid >> $resdir/Warnings 2>&1 - fi else echo ' ---' `date`: Kernel done fi @@ -203,25 +170,23 @@ done if test $commandcompleted -eq 0 then echo Grace period for qemu job at pid $qemu_pid - while : + for ((i=0;i<=$grace;i++)) do - kruntime=`awk 'BEGIN { print systime() - '"$kstarttime"' }' < /dev/null` if kill -0 $qemu_pid > /dev/null 2>&1 then - : + sleep 1 else break fi - if test $kruntime -ge $((seconds + grace)) + if test $i -eq $grace then + kruntime=`awk 'BEGIN { print systime() - '"$kstarttime"' }'` echo "!!! Hang at $kruntime vs. $seconds seconds" >> $resdir/Warnings 2>&1 kill -KILL $qemu_pid - break fi - sleep 1 done fi cp $builddir/console.log $resdir -parse-torture.sh $resdir/console.log $title +parse-rcutorture.sh $resdir/console.log $title parse-console.sh $resdir/console.log $title diff --git a/rcutorture/bin/kvm.sh b/rcutorture/bin/kvm.sh index 589e9c3..1b7923b 100644 --- a/rcutorture/bin/kvm.sh +++ b/rcutorture/bin/kvm.sh @@ -30,22 +30,14 @@ scriptname=$0 args="$*" -T=/tmp/kvm.sh.$$ -trap 'rm -rf $T' 0 -mkdir $T - dur=30 -dryrun="" KVM="`pwd`/tools/testing/selftests/rcutorture"; export KVM PATH=${KVM}/bin:$PATH; export PATH -TORTURE_DEFCONFIG=defconfig -TORTURE_BOOT_IMAGE="" -TORTURE_INITRD="$KVM/initrd"; export TORTURE_INITRD -TORTURE_KMAKE_ARG="" -TORTURE_SUITE=rcu +builddir="${KVM}/b1" +RCU_INITRD="$KVM/initrd"; export RCU_INITRD +RCU_KMAKE_ARG=""; export RCU_KMAKE_ARG resdir="" configs="" -cpus=0 ds=`date +%Y.%m.%d-%H:%M:%S` kversion="" @@ -54,13 +46,10 @@ kversion="" usage () { echo "Usage: $scriptname optional arguments:" echo " --bootargs kernel-boot-arguments" - echo " --bootimage relative-path-to-kernel-boot-image" + echo " --builddir absolute-pathname" echo " --buildonly" echo " --configs \"config-file list\"" - echo " --cpus N" echo " --datestamp string" - echo " --defconfig string" - echo " --dryrun sched|script" echo " --duration minutes" echo " --interactive" echo " --kmake-arg kernel-make-arguments" @@ -70,7 +59,7 @@ usage () { echo " --qemu-args qemu-system-..." echo " --qemu-cmd qemu-system-..." echo " --results absolute-pathname" - echo " --torture rcu" + echo " --relbuilddir relative-pathname" exit 1 } @@ -79,53 +68,39 @@ do case "$1" in --bootargs) checkarg --bootargs "(list of kernel boot arguments)" "$#" "$2" '.*' '^--' - TORTURE_BOOTARGS="$2" + RCU_BOOTARGS="$2" shift ;; - --bootimage) - checkarg --bootimage "(relative path to kernel boot image)" "$#" "$2" '[a-zA-Z0-9][a-zA-Z0-9_]*' '^--' - TORTURE_BOOT_IMAGE="$2" + --builddir) + checkarg --builddir "(absolute pathname)" "$#" "$2" '^/' '^error' + builddir=$2 + gotbuilddir=1 shift ;; --buildonly) - TORTURE_BUILDONLY=1 + RCU_BUILDONLY=1; export RCU_BUILDONLY ;; --configs) checkarg --configs "(list of config files)" "$#" "$2" '^[^/]*$' '^--' configs="$2" shift ;; - --cpus) - checkarg --cpus "(number)" "$#" "$2" '^[0-9]*$' '^--' - cpus=$2 - shift - ;; --datestamp) checkarg --datestamp "(relative pathname)" "$#" "$2" '^[^/]*$' '^--' ds=$2 shift ;; - --defconfig) - checkarg --defconfig "defconfigtype" "$#" "$2" '^[^/][^/]*$' '^--' - TORTURE_DEFCONFIG=$2 - shift - ;; - --dryrun) - checkarg --dryrun "sched|script" $# "$2" 'sched\|script' '^--' - dryrun=$2 - shift - ;; --duration) checkarg --duration "(minutes)" $# "$2" '^[0-9]*$' '^error' dur=$2 shift ;; --interactive) - TORTURE_QEMU_INTERACTIVE=1; export TORTURE_QEMU_INTERACTIVE + RCU_QEMU_INTERACTIVE=1; export RCU_QEMU_INTERACTIVE ;; --kmake-arg) checkarg --kmake-arg "(kernel make arguments)" $# "$2" '.*' '^error$' - TORTURE_KMAKE_ARG="$2" + RCU_KMAKE_ARG="$2"; export RCU_KMAKE_ARG shift ;; --kversion) @@ -135,20 +110,27 @@ do ;; --mac) checkarg --mac "(MAC address)" $# "$2" '^\([0-9a-fA-F]\{2\}:\)\{5\}[0-9a-fA-F]\{2\}$' error - TORTURE_QEMU_MAC=$2 + RCU_QEMU_MAC=$2; export RCU_QEMU_MAC shift ;; --no-initrd) - TORTURE_INITRD=""; export TORTURE_INITRD + RCU_INITRD=""; export RCU_INITRD ;; --qemu-args) checkarg --qemu-args "-qemu args" $# "$2" '^-' '^error' - TORTURE_QEMU_ARG="$2" + RCU_QEMU_ARG="$2" shift ;; --qemu-cmd) checkarg --qemu-cmd "(qemu-system-...)" $# "$2" 'qemu-system-' '^--' - TORTURE_QEMU_CMD="$2" + RCU_QEMU_CMD="$2"; export RCU_QEMU_CMD + shift + ;; + --relbuilddir) + checkarg --relbuilddir "(relative pathname)" "$#" "$2" '^[^/]*$' '^--' + relbuilddir=$2 + gotrelbuilddir=1 + builddir=${KVM}/${relbuilddir} shift ;; --results) @@ -156,11 +138,6 @@ do resdir=$2 shift ;; - --torture) - checkarg --torture "(suite name)" "$#" "$2" '^\(lock\|rcu\)$' '^--' - TORTURE_SUITE=$2 - shift - ;; *) echo Unknown argument $1 usage @@ -169,7 +146,7 @@ do shift done -CONFIGFRAG=${KVM}/configs/${TORTURE_SUITE}; export CONFIGFRAG +CONFIGFRAG=${KVM}/configs; export CONFIGFRAG KVPATH=${CONFIGFRAG}/$kversion; export KVPATH if test -z "$configs" @@ -180,234 +157,54 @@ fi if test -z "$resdir" then resdir=$KVM/res -fi - -# Create a file of test-name/#cpus pairs, sorted by decreasing #cpus. -touch $T/cfgcpu -for CF in $configs -do - if test -f "$CONFIGFRAG/$kversion/$CF" + if ! test -e $resdir then - echo $CF `configNR_CPUS.sh $CONFIGFRAG/$kversion/$CF` >> $T/cfgcpu - else - echo "The --configs file $CF does not exist, terminating." - exit 1 + mkdir $resdir || : + fi +else + if ! test -e $resdir + then + mkdir -p "$resdir" || : fi -done -sort -k2nr $T/cfgcpu > $T/cfgcpu.sort - -# Use a greedy bin-packing algorithm, sorting the list accordingly. -awk < $T/cfgcpu.sort > $T/cfgcpu.pack -v ncpus=$cpus ' -BEGIN { - njobs = 0; -} - -{ - # Read file of tests and corresponding required numbers of CPUs. - cf[njobs] = $1; - cpus[njobs] = $2; - njobs++; -} - -END { - alldone = 0; - batch = 0; - nc = -1; - - # Each pass through the following loop creates on test batch - # that can be executed concurrently given ncpus. Note that a - # given test that requires more than the available CPUs will run in - # their own batch. Such tests just have to make do with what - # is available. - while (nc != ncpus) { - batch++; - nc = ncpus; - - # Each pass through the following loop considers one - # test for inclusion in the current batch. - for (i = 0; i < njobs; i++) { - if (done[i]) - continue; # Already part of a batch. - if (nc >= cpus[i] || nc == ncpus) { - - # This test fits into the current batch. - done[i] = batch; - nc -= cpus[i]; - if (nc <= 0) - break; # Too-big test in its own batch. - } - } - } - - # Dump out the tests in batch order. - for (b = 1; b <= batch; b++) - for (i = 0; i < njobs; i++) - if (done[i] == b) - print cf[i], cpus[i]; -}' - -# Generate a script to execute the tests in appropriate batches. -cat << ___EOF___ > $T/script -CONFIGFRAG="$CONFIGFRAG"; export CONFIGFRAG -KVM="$KVM"; export KVM -KVPATH="$KVPATH"; export KVPATH -PATH="$PATH"; export PATH -TORTURE_BOOT_IMAGE="$TORTURE_BOOT_IMAGE"; export TORTURE_BOOT_IMAGE -TORTURE_BUILDONLY="$TORTURE_BUILDONLY"; export TORTURE_BUILDONLY -TORTURE_DEFCONFIG="$TORTURE_DEFCONFIG"; export TORTURE_DEFCONFIG -TORTURE_INITRD="$TORTURE_INITRD"; export TORTURE_INITRD -TORTURE_KMAKE_ARG="$TORTURE_KMAKE_ARG"; export TORTURE_KMAKE_ARG -TORTURE_QEMU_CMD="$TORTURE_QEMU_CMD"; export TORTURE_QEMU_CMD -TORTURE_QEMU_INTERACTIVE="$TORTURE_QEMU_INTERACTIVE"; export TORTURE_QEMU_INTERACTIVE -TORTURE_QEMU_MAC="$TORTURE_QEMU_MAC"; export TORTURE_QEMU_MAC -TORTURE_SUITE="$TORTURE_SUITE"; export TORTURE_SUITE -if ! test -e $resdir -then - mkdir -p "$resdir" || : fi mkdir $resdir/$ds -echo Results directory: $resdir/$ds -echo $scriptname $args touch $resdir/$ds/log echo $scriptname $args >> $resdir/$ds/log -echo ${TORTURE_SUITE} > $resdir/$ds/TORTURE_SUITE + pwd > $resdir/$ds/testid.txt if test -d .git then git status >> $resdir/$ds/testid.txt git rev-parse HEAD >> $resdir/$ds/testid.txt - if ! git diff HEAD > $T/git-diff 2>&1 - then - cp $T/git-diff $resdir/$ds - fi fi -___EOF___ -awk < $T/cfgcpu.pack \ - -v CONFIGDIR="$CONFIGFRAG/$kversion/" \ - -v KVM="$KVM" \ - -v ncpus=$cpus \ - -v rd=$resdir/$ds/ \ - -v dur=$dur \ - -v TORTURE_QEMU_ARG="$TORTURE_QEMU_ARG" \ - -v TORTURE_BOOTARGS="$TORTURE_BOOTARGS" \ -'BEGIN { - i = 0; -} - -{ - cf[i] = $1; - cpus[i] = $2; - i++; -} +builddir=$KVM/b1 +if ! test -e $builddir +then + mkdir $builddir || : +fi -# Dump out the scripting required to run one test batch. -function dump(first, pastlast) -{ - print "echo ----Start batch: `date`"; - print "echo ----Start batch: `date` >> " rd "/log"; - jn=1 - for (j = first; j < pastlast; j++) { - builddir=KVM "/b" jn - cpusr[jn] = cpus[j]; - if (cfrep[cf[j]] == "") { - cfr[jn] = cf[j]; - cfrep[cf[j]] = 1; - } else { - cfrep[cf[j]]++; - cfr[jn] = cf[j] "." cfrep[cf[j]]; - } - if (cpusr[jn] > ncpus && ncpus != 0) - ovf = "(!)"; +for CF in $configs +do + # Running TREE01 multiple times creates TREE01, TREE01.2, TREE01.3, ... + rd=$resdir/$ds/$CF + if test -d "${rd}" + then + n="`ls -d "${rd}"* | grep '\.[0-9]\+$' | + sed -e 's/^.*\.\([0-9]\+\)/\1/' | + sort -k1n | tail -1`" + if test -z "$n" + then + rd="${rd}.2" else - ovf = ""; - print "echo ", cfr[jn], cpusr[jn] ovf ": Starting build. `date`"; - print "echo ", cfr[jn], cpusr[jn] ovf ": Starting build. `date` >> " rd "/log"; - print "rm -f " builddir ".*"; - print "touch " builddir ".wait"; - print "mkdir " builddir " > /dev/null 2>&1 || :"; - print "mkdir " rd cfr[jn] " || :"; - print "kvm-test-1-run.sh " CONFIGDIR cf[j], builddir, rd cfr[jn], dur " \"" TORTURE_QEMU_ARG "\" \"" TORTURE_BOOTARGS "\" > " rd cfr[jn] "/kvm-test-1-run.sh.out 2>&1 &" - print "echo ", cfr[jn], cpusr[jn] ovf ": Waiting for build to complete. `date`"; - print "echo ", cfr[jn], cpusr[jn] ovf ": Waiting for build to complete. `date` >> " rd "/log"; - print "while test -f " builddir ".wait" - print "do" - print "\tsleep 1" - print "done" - print "echo ", cfr[jn], cpusr[jn] ovf ": Build complete. `date`"; - print "echo ", cfr[jn], cpusr[jn] ovf ": Build complete. `date` >> " rd "/log"; - jn++; - } - for (j = 1; j < jn; j++) { - builddir=KVM "/b" j - print "rm -f " builddir ".ready" - print "if test -z \"$TORTURE_BUILDONLY\"" - print "then" - print "\techo ----", cfr[j], cpusr[j] ovf ": Starting kernel. `date`"; - print "\techo ----", cfr[j], cpusr[j] ovf ": Starting kernel. `date` >> " rd "/log"; - print "fi" - } - print "wait" - print "if test -z \"$TORTURE_BUILDONLY\"" - print "then" - print "\techo ---- All kernel runs complete. `date`"; - print "\techo ---- All kernel runs complete. `date` >> " rd "/log"; - print "fi" - for (j = 1; j < jn; j++) { - builddir=KVM "/b" j - print "echo ----", cfr[j], cpusr[j] ovf ": Build/run results:"; - print "echo ----", cfr[j], cpusr[j] ovf ": Build/run results: >> " rd "/log"; - print "cat " rd cfr[j] "/kvm-test-1-run.sh.out"; - print "cat " rd cfr[j] "/kvm-test-1-run.sh.out >> " rd "/log"; - } -} - -END { - njobs = i; - nc = ncpus; - first = 0; - - # Each pass through the following loop considers one test. - for (i = 0; i < njobs; i++) { - if (ncpus == 0) { - # Sequential test specified, each test its own batch. - dump(i, i + 1); - first = i; - } else if (nc < cpus[i] && i != 0) { - # Out of CPUs, dump out a batch. - dump(first, i); - first = i; - nc = ncpus; - } - # Account for the CPUs needed by the current test. - nc -= cpus[i]; - } - # Dump the last batch. - if (ncpus != 0) - dump(first, i); -}' >> $T/script + n="`expr $n + 1`" + rd="${rd}.${n}" + fi + fi + mkdir "${rd}" + echo Results directory: $rd + 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" +done +# 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 -cat << ___EOF___ >> $T/script -echo -echo echo " --- `date` Test summary:" -echo Results directory: $resdir/$ds kvm-recheck.sh $resdir/$ds -___EOF___ - -if test "$dryrun" = script -then - cat $T/script - exit 0 -elif test "$dryrun" = sched -then - # Extract the test run schedule from the script. - egrep 'Start batch|Starting build\.' $T/script | - grep -v ">>" | - sed -e 's/:.*$//' -e 's/^echo //' - exit 0 -else - # Not a dryrun, so run the script. - sh $T/script -fi - -# 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 diff --git a/rcutorture/bin/parse-torture.sh b/rcutorture/bin/parse-rcutorture.sh index 3455560..dd0a275 100755 --- a/rcutorture/bin/parse-torture.sh +++ b/rcutorture/bin/parse-rcutorture.sh @@ -1,14 +1,14 @@ #!/bin/sh # -# Check the console output from a torture run for goodness. +# Check the console output from an rcutorture run for goodness. # The "file" is a pathname on the local system, and "title" is # a text string for error-message purposes. # -# The file must contain torture output, but can be interspersed -# with other dmesg text, as in console-log output. +# The file must contain rcutorture output, but can be interspersed +# with other dmesg text. # # Usage: -# sh parse-torture.sh file title +# sh parse-rcutorture.sh file title # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -28,7 +28,7 @@ # # Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com> -T=/tmp/parse-torture.sh.$$ +T=/tmp/parse-rcutorture.sh.$$ file="$1" title="$2" @@ -36,13 +36,13 @@ trap 'rm -f $T.seq' 0 . functions.sh -# check for presence of torture output file. +# check for presence of rcutorture.txt file if test -f "$file" -a -r "$file" then : else - echo $title unreadable torture output file: $file + echo $title unreadable rcutorture.txt file: $file exit 1 fi @@ -76,9 +76,9 @@ BEGIN { END { if (badseq) { if (badseqno1 == badseqno2 && badseqno2 == ver) - print "GP HANG at " ver " torture stat " badseqnr; + print "RCU GP HANG at " ver " rcutorture stat " badseqnr; else - print "BAD SEQ " badseqno1 ":" badseqno2 " last:" ver " version " badseqnr; + print "BAD SEQ " badseqno1 ":" badseqno2 " last:" ver " RCU version " badseqnr; } }' > $T.seq @@ -91,13 +91,13 @@ then exit 2 fi else - if grep -q "_HOTPLUG:" $file + if grep -q RCU_HOTPLUG $file then print_warning HOTPLUG FAILURES $title `cat $T.seq` echo " " $file exit 3 fi - echo $title no success message, `grep --binary-files=text 'ver:' $file | wc -l` successful version messages + echo $title no success message, `grep --binary-files=text 'ver:' $file | wc -l` successful RCU version messages if test -s $T.seq then print_warning $title `cat $T.seq` diff --git a/rcutorture/configs/rcu/CFLIST b/rcutorture/configs/CFLIST index cd3d29c..cd3d29c 100644 --- a/rcutorture/configs/rcu/CFLIST +++ b/rcutorture/configs/CFLIST diff --git a/rcutorture/configs/rcu/SRCU-N b/rcutorture/configs/SRCU-N index 9fbb41b..10a0e27 100644 --- a/rcutorture/configs/rcu/SRCU-N +++ b/rcutorture/configs/SRCU-N @@ -1,7 +1,8 @@ CONFIG_RCU_TRACE=n CONFIG_SMP=y -CONFIG_NR_CPUS=4 +CONFIG_NR_CPUS=8 CONFIG_HOTPLUG_CPU=y CONFIG_PREEMPT_NONE=y CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=n +CONFIG_PRINTK_TIME=y diff --git a/rcutorture/configs/rcu/SRCU-N.boot b/rcutorture/configs/SRCU-N.boot index 238bfe3..238bfe3 100644 --- a/rcutorture/configs/rcu/SRCU-N.boot +++ b/rcutorture/configs/SRCU-N.boot diff --git a/rcutorture/configs/rcu/SRCU-P b/rcutorture/configs/SRCU-P index 4b6f272..6650e00 100644 --- a/rcutorture/configs/rcu/SRCU-P +++ b/rcutorture/configs/SRCU-P @@ -5,3 +5,4 @@ CONFIG_HOTPLUG_CPU=y CONFIG_PREEMPT_NONE=n CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=y +CONFIG_PRINTK_TIME=y diff --git a/rcutorture/configs/rcu/SRCU-P.boot b/rcutorture/configs/SRCU-P.boot index 238bfe3..238bfe3 100644 --- a/rcutorture/configs/rcu/SRCU-P.boot +++ b/rcutorture/configs/SRCU-P.boot diff --git a/rcutorture/configs/rcu/TINY01 b/rcutorture/configs/TINY01 index 0a63e07..0c2823f 100644 --- a/rcutorture/configs/rcu/TINY01 +++ b/rcutorture/configs/TINY01 @@ -10,3 +10,4 @@ CONFIG_RCU_TRACE=n CONFIG_DEBUG_LOCK_ALLOC=n CONFIG_DEBUG_OBJECTS_RCU_HEAD=n CONFIG_PREEMPT_COUNT=n +CONFIG_PRINTK_TIME=y diff --git a/rcutorture/configs/rcu/TINY02 b/rcutorture/configs/TINY02 index f4feaee..e5072d7 100644 --- a/rcutorture/configs/rcu/TINY02 +++ b/rcutorture/configs/TINY02 @@ -10,3 +10,4 @@ CONFIG_RCU_TRACE=y CONFIG_DEBUG_LOCK_ALLOC=y CONFIG_DEBUG_OBJECTS_RCU_HEAD=n CONFIG_PREEMPT_COUNT=y +CONFIG_PRINTK_TIME=y diff --git a/rcutorture/configs/rcu/TREE01 b/rcutorture/configs/TREE01 index 063b707..141119a 100644 --- a/rcutorture/configs/rcu/TREE01 +++ b/rcutorture/configs/TREE01 @@ -15,7 +15,9 @@ CONFIG_RCU_FANOUT_EXACT=n CONFIG_RCU_NOCB_CPU=y CONFIG_RCU_NOCB_CPU_ZERO=y CONFIG_DEBUG_LOCK_ALLOC=n +CONFIG_PROVE_RCU_DELAY=n CONFIG_RCU_CPU_STALL_INFO=n CONFIG_RCU_CPU_STALL_VERBOSE=n CONFIG_RCU_BOOST=n CONFIG_DEBUG_OBJECTS_RCU_HEAD=n +CONFIG_PRINTK_TIME=y diff --git a/rcutorture/configs/rcu/TREE01.boot b/rcutorture/configs/TREE01.boot index 0fc8a34..0fc8a34 100644 --- a/rcutorture/configs/rcu/TREE01.boot +++ b/rcutorture/configs/TREE01.boot diff --git a/rcutorture/configs/rcu/TREE02 b/rcutorture/configs/TREE02 index ea119ba..2d4d096 100644 --- a/rcutorture/configs/rcu/TREE02 +++ b/rcutorture/configs/TREE02 @@ -7,7 +7,7 @@ CONFIG_PREEMPT=y CONFIG_HZ_PERIODIC=n CONFIG_NO_HZ_IDLE=y CONFIG_NO_HZ_FULL=n -CONFIG_RCU_FAST_NO_HZ=n +CONFIG_RCU_FAST_NO_HZ=n CONFIG_RCU_TRACE=n CONFIG_HOTPLUG_CPU=n CONFIG_SUSPEND=n @@ -18,7 +18,9 @@ CONFIG_RCU_FANOUT_EXACT=n CONFIG_RCU_NOCB_CPU=n CONFIG_DEBUG_LOCK_ALLOC=y CONFIG_PROVE_LOCKING=n +CONFIG_PROVE_RCU_DELAY=n CONFIG_RCU_CPU_STALL_INFO=n CONFIG_RCU_CPU_STALL_VERBOSE=y CONFIG_RCU_BOOST=n CONFIG_DEBUG_OBJECTS_RCU_HEAD=n +CONFIG_PRINTK_TIME=y diff --git a/rcutorture/configs/rcu/TREE03 b/rcutorture/configs/TREE03 index f4567fb..a47de5b 100644 --- a/rcutorture/configs/rcu/TREE03 +++ b/rcutorture/configs/TREE03 @@ -14,8 +14,10 @@ CONFIG_RCU_FANOUT_LEAF=4 CONFIG_RCU_FANOUT_EXACT=n CONFIG_RCU_NOCB_CPU=n CONFIG_DEBUG_LOCK_ALLOC=n +CONFIG_PROVE_RCU_DELAY=n CONFIG_RCU_CPU_STALL_INFO=n CONFIG_RCU_CPU_STALL_VERBOSE=n CONFIG_RCU_BOOST=y CONFIG_RCU_BOOST_PRIO=2 CONFIG_DEBUG_OBJECTS_RCU_HEAD=n +CONFIG_PRINTK_TIME=y diff --git a/rcutorture/configs/rcu/TREE04 b/rcutorture/configs/TREE04 index 0a262fb..8d839b8 100644 --- a/rcutorture/configs/rcu/TREE04 +++ b/rcutorture/configs/TREE04 @@ -18,6 +18,8 @@ CONFIG_RCU_FANOUT_LEAF=2 CONFIG_RCU_FANOUT_EXACT=n CONFIG_RCU_NOCB_CPU=n CONFIG_DEBUG_LOCK_ALLOC=n +CONFIG_PROVE_RCU_DELAY=n CONFIG_RCU_CPU_STALL_INFO=y CONFIG_RCU_CPU_STALL_VERBOSE=y CONFIG_DEBUG_OBJECTS_RCU_HEAD=n +CONFIG_PRINTK_TIME=y diff --git a/rcutorture/configs/rcu/TREE04.boot b/rcutorture/configs/TREE04.boot index 0fc8a34..0fc8a34 100644 --- a/rcutorture/configs/rcu/TREE04.boot +++ b/rcutorture/configs/TREE04.boot diff --git a/rcutorture/configs/rcu/TREE05 b/rcutorture/configs/TREE05 index 3a06b97..b5ba72e 100644 --- a/rcutorture/configs/rcu/TREE05 +++ b/rcutorture/configs/TREE05 @@ -18,6 +18,8 @@ CONFIG_RCU_NOCB_CPU_NONE=y CONFIG_DEBUG_LOCK_ALLOC=y CONFIG_PROVE_LOCKING=y CONFIG_PROVE_RCU=y +CONFIG_PROVE_RCU_DELAY=y CONFIG_RCU_CPU_STALL_INFO=n CONFIG_RCU_CPU_STALL_VERBOSE=n CONFIG_DEBUG_OBJECTS_RCU_HEAD=n +CONFIG_PRINTK_TIME=y diff --git a/rcutorture/configs/rcu/TREE05.boot b/rcutorture/configs/TREE05.boot index 3b42b8b..3b42b8b 100644 --- a/rcutorture/configs/rcu/TREE05.boot +++ b/rcutorture/configs/TREE05.boot diff --git a/rcutorture/configs/rcu/TREE06 b/rcutorture/configs/TREE06 index 8f084cc..7c95ab4 100644 --- a/rcutorture/configs/rcu/TREE06 +++ b/rcutorture/configs/TREE06 @@ -19,6 +19,8 @@ CONFIG_RCU_NOCB_CPU=n CONFIG_DEBUG_LOCK_ALLOC=y CONFIG_PROVE_LOCKING=y CONFIG_PROVE_RCU=y +CONFIG_PROVE_RCU_DELAY=n CONFIG_RCU_CPU_STALL_INFO=n CONFIG_RCU_CPU_STALL_VERBOSE=n CONFIG_DEBUG_OBJECTS_RCU_HEAD=y +CONFIG_PRINTK_TIME=y diff --git a/rcutorture/configs/rcu/TREE07 b/rcutorture/configs/TREE07 index ab62255..1467404 100644 --- a/rcutorture/configs/rcu/TREE07 +++ b/rcutorture/configs/TREE07 @@ -17,6 +17,8 @@ CONFIG_RCU_FANOUT_LEAF=2 CONFIG_RCU_FANOUT_EXACT=n CONFIG_RCU_NOCB_CPU=n CONFIG_DEBUG_LOCK_ALLOC=n +CONFIG_PROVE_RCU_DELAY=n CONFIG_RCU_CPU_STALL_INFO=y CONFIG_RCU_CPU_STALL_VERBOSE=n CONFIG_DEBUG_OBJECTS_RCU_HEAD=n +CONFIG_PRINTK_TIME=y diff --git a/rcutorture/configs/rcu/TREE08 b/rcutorture/configs/TREE08 index 69a2e25..7d097a6 100644 --- a/rcutorture/configs/rcu/TREE08 +++ b/rcutorture/configs/TREE08 @@ -18,7 +18,9 @@ CONFIG_RCU_FANOUT_LEAF=2 CONFIG_RCU_NOCB_CPU=y CONFIG_RCU_NOCB_CPU_ALL=y CONFIG_DEBUG_LOCK_ALLOC=n +CONFIG_PROVE_RCU_DELAY=n CONFIG_RCU_CPU_STALL_INFO=n CONFIG_RCU_CPU_STALL_VERBOSE=n CONFIG_RCU_BOOST=n CONFIG_DEBUG_OBJECTS_RCU_HEAD=n +CONFIG_PRINTK_TIME=y diff --git a/rcutorture/configs/rcu/TREE08-T b/rcutorture/configs/TREE08-T index a0f32fb..442c4e4 100644 --- a/rcutorture/configs/rcu/TREE08-T +++ b/rcutorture/configs/TREE08-T @@ -18,7 +18,9 @@ CONFIG_RCU_FANOUT_LEAF=2 CONFIG_RCU_NOCB_CPU=y CONFIG_RCU_NOCB_CPU_ALL=y CONFIG_DEBUG_LOCK_ALLOC=n +CONFIG_PROVE_RCU_DELAY=n CONFIG_RCU_CPU_STALL_INFO=n CONFIG_RCU_CPU_STALL_VERBOSE=n CONFIG_RCU_BOOST=n CONFIG_DEBUG_OBJECTS_RCU_HEAD=n +CONFIG_PRINTK_TIME=y diff --git a/rcutorture/configs/rcu/TREE09 b/rcutorture/configs/TREE09 index b7a62a5..0d1ec0d 100644 --- a/rcutorture/configs/rcu/TREE09 +++ b/rcutorture/configs/TREE09 @@ -13,7 +13,9 @@ CONFIG_SUSPEND=n CONFIG_HIBERNATION=n CONFIG_RCU_NOCB_CPU=n CONFIG_DEBUG_LOCK_ALLOC=n +CONFIG_PROVE_RCU_DELAY=n CONFIG_RCU_CPU_STALL_INFO=n CONFIG_RCU_CPU_STALL_VERBOSE=n CONFIG_RCU_BOOST=n CONFIG_DEBUG_OBJECTS_RCU_HEAD=n +CONFIG_PRINTK_TIME=y diff --git a/rcutorture/configs/lock/BUSTED b/rcutorture/configs/lock/BUSTED deleted file mode 100644 index 1d1da14..0000000 --- a/rcutorture/configs/lock/BUSTED +++ /dev/null @@ -1,6 +0,0 @@ -CONFIG_SMP=y -CONFIG_NR_CPUS=4 -CONFIG_HOTPLUG_CPU=y -CONFIG_PREEMPT_NONE=n -CONFIG_PREEMPT_VOLUNTARY=n -CONFIG_PREEMPT=y diff --git a/rcutorture/configs/lock/BUSTED.boot b/rcutorture/configs/lock/BUSTED.boot deleted file mode 100644 index 6386c15..0000000 --- a/rcutorture/configs/lock/BUSTED.boot +++ /dev/null @@ -1 +0,0 @@ -locktorture.torture_type=lock_busted diff --git a/rcutorture/configs/lock/CFLIST b/rcutorture/configs/lock/CFLIST deleted file mode 100644 index a061b22..0000000 --- a/rcutorture/configs/lock/CFLIST +++ /dev/null @@ -1 +0,0 @@ -LOCK01 diff --git a/rcutorture/configs/lock/CFcommon b/rcutorture/configs/lock/CFcommon deleted file mode 100644 index e372dc2..0000000 --- a/rcutorture/configs/lock/CFcommon +++ /dev/null @@ -1,2 +0,0 @@ -CONFIG_LOCK_TORTURE_TEST=y -CONFIG_PRINTK_TIME=y diff --git a/rcutorture/configs/lock/LOCK01 b/rcutorture/configs/lock/LOCK01 deleted file mode 100644 index a9625e3..0000000 --- a/rcutorture/configs/lock/LOCK01 +++ /dev/null @@ -1,6 +0,0 @@ -CONFIG_SMP=y -CONFIG_NR_CPUS=8 -CONFIG_HOTPLUG_CPU=y -CONFIG_PREEMPT_NONE=n -CONFIG_PREEMPT_VOLUNTARY=n -CONFIG_PREEMPT=y diff --git a/rcutorture/configs/lock/ver_functions.sh b/rcutorture/configs/lock/ver_functions.sh deleted file mode 100644 index 9746ea1..0000000 --- a/rcutorture/configs/lock/ver_functions.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/bash -# -# Kernel-version-dependent shell functions for the rest of the scripts. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, you can access it online at -# http://www.gnu.org/licenses/gpl-2.0.html. -# -# Copyright (C) IBM Corporation, 2014 -# -# Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com> - -# locktorture_param_onoff bootparam-string config-file -# -# Adds onoff locktorture module parameters to kernels having it. -locktorture_param_onoff () { - if ! bootparam_hotplug_cpu "$1" && configfrag_hotplug_cpu "$2" - then - echo CPU-hotplug kernel, adding locktorture onoff. 1>&2 - echo locktorture.onoff_interval=3 locktorture.onoff_holdoff=30 - fi -} - -# per_version_boot_params bootparam-string config-file seconds -# -# Adds per-version torture-module parameters to kernels supporting them. -per_version_boot_params () { - echo $1 `locktorture_param_onoff "$1" "$2"` \ - locktorture.stat_interval=15 \ - locktorture.shutdown_secs=$3 \ - locktorture.locktorture_runnable=1 \ - locktorture.verbose=1 -} diff --git a/rcutorture/configs/rcu/BUSTED b/rcutorture/configs/rcu/BUSTED deleted file mode 100644 index 48d8a24..0000000 --- a/rcutorture/configs/rcu/BUSTED +++ /dev/null @@ -1,7 +0,0 @@ -CONFIG_RCU_TRACE=n -CONFIG_SMP=y -CONFIG_NR_CPUS=4 -CONFIG_HOTPLUG_CPU=y -CONFIG_PREEMPT_NONE=n -CONFIG_PREEMPT_VOLUNTARY=n -CONFIG_PREEMPT=y diff --git a/rcutorture/configs/rcu/BUSTED.boot b/rcutorture/configs/rcu/BUSTED.boot deleted file mode 100644 index 6804f9d..0000000 --- a/rcutorture/configs/rcu/BUSTED.boot +++ /dev/null @@ -1 +0,0 @@ -rcutorture.torture_type=rcu_busted diff --git a/rcutorture/configs/rcu/CFcommon b/rcutorture/configs/rcu/CFcommon deleted file mode 100644 index d2d2a86..0000000 --- a/rcutorture/configs/rcu/CFcommon +++ /dev/null @@ -1,2 +0,0 @@ -CONFIG_RCU_TORTURE_TEST=y -CONFIG_PRINTK_TIME=y diff --git a/rcutorture/configs/rcu/TREE02-T b/rcutorture/configs/rcu/TREE02-T deleted file mode 100644 index 19cf948..0000000 --- a/rcutorture/configs/rcu/TREE02-T +++ /dev/null @@ -1,24 +0,0 @@ -CONFIG_SMP=y -CONFIG_NR_CPUS=8 -CONFIG_PREEMPT_NONE=n -CONFIG_PREEMPT_VOLUNTARY=n -CONFIG_PREEMPT=y -#CHECK#CONFIG_TREE_PREEMPT_RCU=y -CONFIG_HZ_PERIODIC=n -CONFIG_NO_HZ_IDLE=y -CONFIG_NO_HZ_FULL=n -CONFIG_RCU_FAST_NO_HZ=n -CONFIG_RCU_TRACE=y -CONFIG_HOTPLUG_CPU=n -CONFIG_SUSPEND=n -CONFIG_HIBERNATION=n -CONFIG_RCU_FANOUT=3 -CONFIG_RCU_FANOUT_LEAF=3 -CONFIG_RCU_FANOUT_EXACT=n -CONFIG_RCU_NOCB_CPU=n -CONFIG_DEBUG_LOCK_ALLOC=y -CONFIG_PROVE_LOCKING=n -CONFIG_RCU_CPU_STALL_INFO=n -CONFIG_RCU_CPU_STALL_VERBOSE=y -CONFIG_RCU_BOOST=n -CONFIG_DEBUG_OBJECTS_RCU_HEAD=n diff --git a/rcutorture/configs/rcu/TREE08.boot b/rcutorture/configs/rcu/TREE08.boot deleted file mode 100644 index 3b42b8b..0000000 --- a/rcutorture/configs/rcu/TREE08.boot +++ /dev/null @@ -1 +0,0 @@ -rcutorture.torture_type=sched diff --git a/rcutorture/configs/rcu/v0.0/CFLIST b/rcutorture/configs/v0.0/CFLIST index 1822394..1822394 100644 --- a/rcutorture/configs/rcu/v0.0/CFLIST +++ b/rcutorture/configs/v0.0/CFLIST diff --git a/rcutorture/configs/rcu/v0.0/N1-S-T-NH-SD-SMP-HP b/rcutorture/configs/v0.0/N1-S-T-NH-SD-SMP-HP index d3ef873..d3ef873 100644 --- a/rcutorture/configs/rcu/v0.0/N1-S-T-NH-SD-SMP-HP +++ b/rcutorture/configs/v0.0/N1-S-T-NH-SD-SMP-HP diff --git a/rcutorture/configs/rcu/v0.0/N2-2-t-nh-sd-SMP-hp b/rcutorture/configs/v0.0/N2-2-t-nh-sd-SMP-hp index 02e4185..02e4185 100644 --- a/rcutorture/configs/rcu/v0.0/N2-2-t-nh-sd-SMP-hp +++ b/rcutorture/configs/v0.0/N2-2-t-nh-sd-SMP-hp diff --git a/rcutorture/configs/rcu/v0.0/N3-3-T-nh-SD-SMP-hp b/rcutorture/configs/v0.0/N3-3-T-nh-SD-SMP-hp index b3100f6..b3100f6 100644 --- a/rcutorture/configs/rcu/v0.0/N3-3-T-nh-SD-SMP-hp +++ b/rcutorture/configs/v0.0/N3-3-T-nh-SD-SMP-hp diff --git a/rcutorture/configs/rcu/v0.0/N4-A-t-NH-sd-SMP-HP b/rcutorture/configs/v0.0/N4-A-t-NH-sd-SMP-HP index c56b445..c56b445 100644 --- a/rcutorture/configs/rcu/v0.0/N4-A-t-NH-sd-SMP-HP +++ b/rcutorture/configs/v0.0/N4-A-t-NH-sd-SMP-HP diff --git a/rcutorture/configs/rcu/v0.0/N5-U-T-NH-sd-SMP-hp b/rcutorture/configs/v0.0/N5-U-T-NH-sd-SMP-hp index 90d924f..90d924f 100644 --- a/rcutorture/configs/rcu/v0.0/N5-U-T-NH-sd-SMP-hp +++ b/rcutorture/configs/v0.0/N5-U-T-NH-sd-SMP-hp diff --git a/rcutorture/configs/rcu/v0.0/NT1-nh b/rcutorture/configs/v0.0/NT1-nh index 023f312..023f312 100644 --- a/rcutorture/configs/rcu/v0.0/NT1-nh +++ b/rcutorture/configs/v0.0/NT1-nh diff --git a/rcutorture/configs/rcu/v0.0/NT3-NH b/rcutorture/configs/v0.0/NT3-NH index 6fd0235..6fd0235 100644 --- a/rcutorture/configs/rcu/v0.0/NT3-NH +++ b/rcutorture/configs/v0.0/NT3-NH diff --git a/rcutorture/configs/rcu/v0.0/P1-S-T-NH-SD-SMP-HP b/rcutorture/configs/v0.0/P1-S-T-NH-SD-SMP-HP index f72402d..f72402d 100644 --- a/rcutorture/configs/rcu/v0.0/P1-S-T-NH-SD-SMP-HP +++ b/rcutorture/configs/v0.0/P1-S-T-NH-SD-SMP-HP diff --git a/rcutorture/configs/rcu/v0.0/P2-2-t-nh-sd-SMP-hp b/rcutorture/configs/v0.0/P2-2-t-nh-sd-SMP-hp index 0f3b667..0f3b667 100644 --- a/rcutorture/configs/rcu/v0.0/P2-2-t-nh-sd-SMP-hp +++ b/rcutorture/configs/v0.0/P2-2-t-nh-sd-SMP-hp diff --git a/rcutorture/configs/rcu/v0.0/P3-3-T-nh-SD-SMP-hp b/rcutorture/configs/v0.0/P3-3-T-nh-SD-SMP-hp index b035e14..b035e14 100644 --- a/rcutorture/configs/rcu/v0.0/P3-3-T-nh-SD-SMP-hp +++ b/rcutorture/configs/v0.0/P3-3-T-nh-SD-SMP-hp diff --git a/rcutorture/configs/rcu/v0.0/P4-A-t-NH-sd-SMP-HP b/rcutorture/configs/v0.0/P4-A-t-NH-sd-SMP-HP index 3ccf6a9..3ccf6a9 100644 --- a/rcutorture/configs/rcu/v0.0/P4-A-t-NH-sd-SMP-HP +++ b/rcutorture/configs/v0.0/P4-A-t-NH-sd-SMP-HP diff --git a/rcutorture/configs/rcu/v3.5/P5-U-T-NH-sd-SMP-hp b/rcutorture/configs/v0.0/P5-U-T-NH-sd-SMP-hp index a55c008..ef624ce 100644 --- a/rcutorture/configs/rcu/v3.5/P5-U-T-NH-sd-SMP-hp +++ b/rcutorture/configs/v0.0/P5-U-T-NH-sd-SMP-hp @@ -13,6 +13,7 @@ CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=y #CHECK#CONFIG_TREE_PREEMPT_RCU=y CONFIG_DEBUG_KERNEL=y +CONFIG_PROVE_RCU_DELAY=y CONFIG_DEBUG_OBJECTS=y CONFIG_DEBUG_OBJECTS_RCU_HEAD=y CONFIG_RT_MUTEXES=y diff --git a/rcutorture/configs/rcu/v0.0/PT1-nh b/rcutorture/configs/v0.0/PT1-nh index e3361c3..e3361c3 100644 --- a/rcutorture/configs/rcu/v0.0/PT1-nh +++ b/rcutorture/configs/v0.0/PT1-nh diff --git a/rcutorture/configs/rcu/v0.0/PT2-NH b/rcutorture/configs/v0.0/PT2-NH index 64abfc3..64abfc3 100644 --- a/rcutorture/configs/rcu/v0.0/PT2-NH +++ b/rcutorture/configs/v0.0/PT2-NH diff --git a/rcutorture/configs/rcu/v0.0/ver_functions.sh b/rcutorture/configs/v0.0/ver_functions.sh index 5ace37a..e805253 100644 --- a/rcutorture/configs/rcu/v0.0/ver_functions.sh +++ b/rcutorture/configs/v0.0/ver_functions.sh @@ -20,14 +20,16 @@ # # Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com> -# per_version_boot_params bootparam-string config-file seconds -# -# Adds per-version torture-module parameters to kernels supporting them. -# Which old kernels do not. -per_version_boot_params () { - echo rcutorture.stat_interval=15 \ - rcutorture.shutdown_secs=$3 \ - rcutorture.rcutorture_runnable=1 \ - rcutorture.test_no_idle_hz=1 \ - rcutorture.verbose=1 +# rcutorture_param_n_barrier_cbs bootparam-string +# +# Adds n_barrier_cbs rcutorture module parameter to kernels having it. +rcutorture_param_n_barrier_cbs () { + echo $1 +} + +# rcutorture_param_onoff bootparam-string config-file +# +# Adds onoff rcutorture module parameters to kernels having it. +rcutorture_param_onoff () { + echo $1 } diff --git a/rcutorture/configs/rcu/v3.12/CFLIST b/rcutorture/configs/v3.12/CFLIST index da4cbc6..da4cbc6 100644 --- a/rcutorture/configs/rcu/v3.12/CFLIST +++ b/rcutorture/configs/v3.12/CFLIST diff --git a/rcutorture/configs/rcu/v3.12/N1-S-T-NH-SD-SMP-HP b/rcutorture/configs/v3.12/N1-S-T-NH-SD-SMP-HP index d81e11d..d81e11d 100644 --- a/rcutorture/configs/rcu/v3.12/N1-S-T-NH-SD-SMP-HP +++ b/rcutorture/configs/v3.12/N1-S-T-NH-SD-SMP-HP diff --git a/rcutorture/configs/rcu/v3.12/N2-2-t-nh-sd-SMP-hp b/rcutorture/configs/v3.12/N2-2-t-nh-sd-SMP-hp index 02e4185..02e4185 100644 --- a/rcutorture/configs/rcu/v3.12/N2-2-t-nh-sd-SMP-hp +++ b/rcutorture/configs/v3.12/N2-2-t-nh-sd-SMP-hp diff --git a/rcutorture/configs/rcu/v3.12/N3-3-T-nh-SD-SMP-hp b/rcutorture/configs/v3.12/N3-3-T-nh-SD-SMP-hp index b3100f6..b3100f6 100644 --- a/rcutorture/configs/rcu/v3.12/N3-3-T-nh-SD-SMP-hp +++ b/rcutorture/configs/v3.12/N3-3-T-nh-SD-SMP-hp diff --git a/rcutorture/configs/rcu/v3.12/N4-A-t-NH-sd-SMP-HP b/rcutorture/configs/v3.12/N4-A-t-NH-sd-SMP-HP index c56b445..c56b445 100644 --- a/rcutorture/configs/rcu/v3.12/N4-A-t-NH-sd-SMP-HP +++ b/rcutorture/configs/v3.12/N4-A-t-NH-sd-SMP-HP diff --git a/rcutorture/configs/rcu/v3.12/N5-U-T-NH-sd-SMP-hp b/rcutorture/configs/v3.12/N5-U-T-NH-sd-SMP-hp index 90d924f..90d924f 100644 --- a/rcutorture/configs/rcu/v3.12/N5-U-T-NH-sd-SMP-hp +++ b/rcutorture/configs/v3.12/N5-U-T-NH-sd-SMP-hp diff --git a/rcutorture/configs/rcu/v3.12/N6---t-nh-SD-smp-hp b/rcutorture/configs/v3.12/N6---t-nh-SD-smp-hp index 0ccc36d..0ccc36d 100644 --- a/rcutorture/configs/rcu/v3.12/N6---t-nh-SD-smp-hp +++ b/rcutorture/configs/v3.12/N6---t-nh-SD-smp-hp diff --git a/rcutorture/configs/rcu/v3.12/N7-4-T-NH-SD-SMP-HP b/rcutorture/configs/v3.12/N7-4-T-NH-SD-SMP-HP index 3f640cf..3f640cf 100644 --- a/rcutorture/configs/rcu/v3.12/N7-4-T-NH-SD-SMP-HP +++ b/rcutorture/configs/v3.12/N7-4-T-NH-SD-SMP-HP diff --git a/rcutorture/configs/rcu/v3.12/N8-2-T-NH-SD-SMP-HP b/rcutorture/configs/v3.12/N8-2-T-NH-SD-SMP-HP index 285da2d..285da2d 100644 --- a/rcutorture/configs/rcu/v3.12/N8-2-T-NH-SD-SMP-HP +++ b/rcutorture/configs/v3.12/N8-2-T-NH-SD-SMP-HP diff --git a/rcutorture/configs/rcu/v3.12/NT1-nh b/rcutorture/configs/v3.12/NT1-nh index 023f312..023f312 100644 --- a/rcutorture/configs/rcu/v3.12/NT1-nh +++ b/rcutorture/configs/v3.12/NT1-nh diff --git a/rcutorture/configs/rcu/v3.12/NT3-NH b/rcutorture/configs/v3.12/NT3-NH index 6fd0235..6fd0235 100644 --- a/rcutorture/configs/rcu/v3.12/NT3-NH +++ b/rcutorture/configs/v3.12/NT3-NH diff --git a/rcutorture/configs/rcu/v3.12/P1-S-T-NH-SD-SMP-HP b/rcutorture/configs/v3.12/P1-S-T-NH-SD-SMP-HP index 9647c44..9647c44 100644 --- a/rcutorture/configs/rcu/v3.12/P1-S-T-NH-SD-SMP-HP +++ b/rcutorture/configs/v3.12/P1-S-T-NH-SD-SMP-HP diff --git a/rcutorture/configs/rcu/v3.12/P2-2-t-nh-sd-SMP-hp b/rcutorture/configs/v3.12/P2-2-t-nh-sd-SMP-hp index 0f3b667..0f3b667 100644 --- a/rcutorture/configs/rcu/v3.12/P2-2-t-nh-sd-SMP-hp +++ b/rcutorture/configs/v3.12/P2-2-t-nh-sd-SMP-hp diff --git a/rcutorture/configs/rcu/v3.12/P3-3-T-nh-SD-SMP-hp b/rcutorture/configs/v3.12/P3-3-T-nh-SD-SMP-hp index b035e14..b035e14 100644 --- a/rcutorture/configs/rcu/v3.12/P3-3-T-nh-SD-SMP-hp +++ b/rcutorture/configs/v3.12/P3-3-T-nh-SD-SMP-hp diff --git a/rcutorture/configs/rcu/v3.12/P4-A-t-NH-sd-SMP-HP b/rcutorture/configs/v3.12/P4-A-t-NH-sd-SMP-HP index 3ccf6a9..3ccf6a9 100644 --- a/rcutorture/configs/rcu/v3.12/P4-A-t-NH-sd-SMP-HP +++ b/rcutorture/configs/v3.12/P4-A-t-NH-sd-SMP-HP diff --git a/rcutorture/configs/rcu/v3.3/P5-U-T-NH-sd-SMP-hp b/rcutorture/configs/v3.12/P5-U-T-NH-sd-SMP-hp index a55c008..ef624ce 100644 --- a/rcutorture/configs/rcu/v3.3/P5-U-T-NH-sd-SMP-hp +++ b/rcutorture/configs/v3.12/P5-U-T-NH-sd-SMP-hp @@ -13,6 +13,7 @@ CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=y #CHECK#CONFIG_TREE_PREEMPT_RCU=y CONFIG_DEBUG_KERNEL=y +CONFIG_PROVE_RCU_DELAY=y CONFIG_DEBUG_OBJECTS=y CONFIG_DEBUG_OBJECTS_RCU_HEAD=y CONFIG_RT_MUTEXES=y diff --git a/rcutorture/configs/rcu/v3.12/P6---t-nh-SD-smp-hp b/rcutorture/configs/v3.12/P6---t-nh-SD-smp-hp index f4c9175..f4c9175 100644 --- a/rcutorture/configs/rcu/v3.12/P6---t-nh-SD-smp-hp +++ b/rcutorture/configs/v3.12/P6---t-nh-SD-smp-hp diff --git a/rcutorture/configs/rcu/v3.12/P7-4-T-NH-SD-SMP-HP b/rcutorture/configs/v3.12/P7-4-T-NH-SD-SMP-HP index 77a8c5b..77a8c5b 100644 --- a/rcutorture/configs/rcu/v3.12/P7-4-T-NH-SD-SMP-HP +++ b/rcutorture/configs/v3.12/P7-4-T-NH-SD-SMP-HP diff --git a/rcutorture/configs/rcu/v3.12/P7-4-T-NH-SD-SMP-HP-all b/rcutorture/configs/v3.12/P7-4-T-NH-SD-SMP-HP-all index 0eecebc..0eecebc 100644 --- a/rcutorture/configs/rcu/v3.12/P7-4-T-NH-SD-SMP-HP-all +++ b/rcutorture/configs/v3.12/P7-4-T-NH-SD-SMP-HP-all diff --git a/rcutorture/configs/rcu/v3.12/P7-4-T-NH-SD-SMP-HP-none b/rcutorture/configs/v3.12/P7-4-T-NH-SD-SMP-HP-none index 0eecebc..0eecebc 100644 --- a/rcutorture/configs/rcu/v3.12/P7-4-T-NH-SD-SMP-HP-none +++ b/rcutorture/configs/v3.12/P7-4-T-NH-SD-SMP-HP-none diff --git a/rcutorture/configs/rcu/v3.12/P7-4-T-NH-SD-SMP-hp b/rcutorture/configs/v3.12/P7-4-T-NH-SD-SMP-hp index 588bc70..588bc70 100644 --- a/rcutorture/configs/rcu/v3.12/P7-4-T-NH-SD-SMP-hp +++ b/rcutorture/configs/v3.12/P7-4-T-NH-SD-SMP-hp diff --git a/rcutorture/configs/rcu/v3.12/PT1-nh b/rcutorture/configs/v3.12/PT1-nh index e3361c3..e3361c3 100644 --- a/rcutorture/configs/rcu/v3.12/PT1-nh +++ b/rcutorture/configs/v3.12/PT1-nh diff --git a/rcutorture/configs/rcu/v3.12/PT2-NH b/rcutorture/configs/v3.12/PT2-NH index 64abfc3..64abfc3 100644 --- a/rcutorture/configs/rcu/v3.12/PT2-NH +++ b/rcutorture/configs/v3.12/PT2-NH diff --git a/rcutorture/configs/rcu/v3.3/CFLIST b/rcutorture/configs/v3.3/CFLIST index 1822394..1822394 100644 --- a/rcutorture/configs/rcu/v3.3/CFLIST +++ b/rcutorture/configs/v3.3/CFLIST diff --git a/rcutorture/configs/rcu/v3.3/N1-S-T-NH-SD-SMP-HP b/rcutorture/configs/v3.3/N1-S-T-NH-SD-SMP-HP index d81e11d..d81e11d 100644 --- a/rcutorture/configs/rcu/v3.3/N1-S-T-NH-SD-SMP-HP +++ b/rcutorture/configs/v3.3/N1-S-T-NH-SD-SMP-HP diff --git a/rcutorture/configs/rcu/v3.3/N2-2-t-nh-sd-SMP-hp b/rcutorture/configs/v3.3/N2-2-t-nh-sd-SMP-hp index 02e4185..02e4185 100644 --- a/rcutorture/configs/rcu/v3.3/N2-2-t-nh-sd-SMP-hp +++ b/rcutorture/configs/v3.3/N2-2-t-nh-sd-SMP-hp diff --git a/rcutorture/configs/rcu/v3.3/N3-3-T-nh-SD-SMP-hp b/rcutorture/configs/v3.3/N3-3-T-nh-SD-SMP-hp index b3100f6..b3100f6 100644 --- a/rcutorture/configs/rcu/v3.3/N3-3-T-nh-SD-SMP-hp +++ b/rcutorture/configs/v3.3/N3-3-T-nh-SD-SMP-hp diff --git a/rcutorture/configs/rcu/v3.3/N4-A-t-NH-sd-SMP-HP b/rcutorture/configs/v3.3/N4-A-t-NH-sd-SMP-HP index c56b445..c56b445 100644 --- a/rcutorture/configs/rcu/v3.3/N4-A-t-NH-sd-SMP-HP +++ b/rcutorture/configs/v3.3/N4-A-t-NH-sd-SMP-HP diff --git a/rcutorture/configs/rcu/v3.3/N5-U-T-NH-sd-SMP-hp b/rcutorture/configs/v3.3/N5-U-T-NH-sd-SMP-hp index 90d924f..90d924f 100644 --- a/rcutorture/configs/rcu/v3.3/N5-U-T-NH-sd-SMP-hp +++ b/rcutorture/configs/v3.3/N5-U-T-NH-sd-SMP-hp diff --git a/rcutorture/configs/rcu/v3.3/NT1-nh b/rcutorture/configs/v3.3/NT1-nh index 023f312..023f312 100644 --- a/rcutorture/configs/rcu/v3.3/NT1-nh +++ b/rcutorture/configs/v3.3/NT1-nh diff --git a/rcutorture/configs/rcu/v3.3/NT3-NH b/rcutorture/configs/v3.3/NT3-NH index 6fd0235..6fd0235 100644 --- a/rcutorture/configs/rcu/v3.3/NT3-NH +++ b/rcutorture/configs/v3.3/NT3-NH diff --git a/rcutorture/configs/rcu/v3.3/P1-S-T-NH-SD-SMP-HP b/rcutorture/configs/v3.3/P1-S-T-NH-SD-SMP-HP index 9647c44..9647c44 100644 --- a/rcutorture/configs/rcu/v3.3/P1-S-T-NH-SD-SMP-HP +++ b/rcutorture/configs/v3.3/P1-S-T-NH-SD-SMP-HP diff --git a/rcutorture/configs/rcu/v3.3/P2-2-t-nh-sd-SMP-hp b/rcutorture/configs/v3.3/P2-2-t-nh-sd-SMP-hp index 0f3b667..0f3b667 100644 --- a/rcutorture/configs/rcu/v3.3/P2-2-t-nh-sd-SMP-hp +++ b/rcutorture/configs/v3.3/P2-2-t-nh-sd-SMP-hp diff --git a/rcutorture/configs/rcu/v3.3/P3-3-T-nh-SD-SMP-hp b/rcutorture/configs/v3.3/P3-3-T-nh-SD-SMP-hp index b035e14..b035e14 100644 --- a/rcutorture/configs/rcu/v3.3/P3-3-T-nh-SD-SMP-hp +++ b/rcutorture/configs/v3.3/P3-3-T-nh-SD-SMP-hp diff --git a/rcutorture/configs/rcu/v3.3/P4-A-t-NH-sd-SMP-HP b/rcutorture/configs/v3.3/P4-A-t-NH-sd-SMP-HP index 3ccf6a9..3ccf6a9 100644 --- a/rcutorture/configs/rcu/v3.3/P4-A-t-NH-sd-SMP-HP +++ b/rcutorture/configs/v3.3/P4-A-t-NH-sd-SMP-HP diff --git a/rcutorture/configs/rcu/v3.12/P5-U-T-NH-sd-SMP-hp b/rcutorture/configs/v3.3/P5-U-T-NH-sd-SMP-hp index a55c008..ef624ce 100644 --- a/rcutorture/configs/rcu/v3.12/P5-U-T-NH-sd-SMP-hp +++ b/rcutorture/configs/v3.3/P5-U-T-NH-sd-SMP-hp @@ -13,6 +13,7 @@ CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=y #CHECK#CONFIG_TREE_PREEMPT_RCU=y CONFIG_DEBUG_KERNEL=y +CONFIG_PROVE_RCU_DELAY=y CONFIG_DEBUG_OBJECTS=y CONFIG_DEBUG_OBJECTS_RCU_HEAD=y CONFIG_RT_MUTEXES=y diff --git a/rcutorture/configs/rcu/v3.3/PT1-nh b/rcutorture/configs/v3.3/PT1-nh index e3361c3..e3361c3 100644 --- a/rcutorture/configs/rcu/v3.3/PT1-nh +++ b/rcutorture/configs/v3.3/PT1-nh diff --git a/rcutorture/configs/rcu/v3.3/PT2-NH b/rcutorture/configs/v3.3/PT2-NH index 64abfc3..64abfc3 100644 --- a/rcutorture/configs/rcu/v3.3/PT2-NH +++ b/rcutorture/configs/v3.3/PT2-NH diff --git a/rcutorture/configs/rcu/ver_functions.sh b/rcutorture/configs/v3.3/ver_functions.sh index 8977d8d..c37432f 100644 --- a/rcutorture/configs/rcu/ver_functions.sh +++ b/rcutorture/configs/v3.3/ver_functions.sh @@ -24,12 +24,7 @@ # # Adds n_barrier_cbs rcutorture module parameter to kernels having it. rcutorture_param_n_barrier_cbs () { - if echo $1 | grep -q "rcutorture\.n_barrier_cbs" - then - : - else - echo rcutorture.n_barrier_cbs=4 - fi + echo $1 } # rcutorture_param_onoff bootparam-string config-file @@ -38,20 +33,9 @@ rcutorture_param_n_barrier_cbs () { rcutorture_param_onoff () { if ! bootparam_hotplug_cpu "$1" && configfrag_hotplug_cpu "$2" then - echo CPU-hotplug kernel, adding rcutorture onoff. 1>&2 - echo rcutorture.onoff_interval=3 rcutorture.onoff_holdoff=30 + echo CPU-hotplug kernel, adding rcutorture onoff. + echo $1 rcutorture.onoff_interval=3 rcutorture.onoff_holdoff=30 + else + echo $1 fi } - -# per_version_boot_params bootparam-string config-file seconds -# -# Adds per-version torture-module parameters to kernels supporting them. -per_version_boot_params () { - echo $1 `rcutorture_param_onoff "$1" "$2"` \ - `rcutorture_param_n_barrier_cbs "$1"` \ - rcutorture.stat_interval=15 \ - rcutorture.shutdown_secs=$3 \ - rcutorture.rcutorture_runnable=1 \ - rcutorture.test_no_idle_hz=1 \ - rcutorture.verbose=1 -} diff --git a/rcutorture/configs/rcu/v3.5/CFLIST b/rcutorture/configs/v3.5/CFLIST index 1822394..1822394 100644 --- a/rcutorture/configs/rcu/v3.5/CFLIST +++ b/rcutorture/configs/v3.5/CFLIST diff --git a/rcutorture/configs/rcu/v3.5/N1-S-T-NH-SD-SMP-HP b/rcutorture/configs/v3.5/N1-S-T-NH-SD-SMP-HP index d81e11d..d81e11d 100644 --- a/rcutorture/configs/rcu/v3.5/N1-S-T-NH-SD-SMP-HP +++ b/rcutorture/configs/v3.5/N1-S-T-NH-SD-SMP-HP diff --git a/rcutorture/configs/rcu/v3.5/N2-2-t-nh-sd-SMP-hp b/rcutorture/configs/v3.5/N2-2-t-nh-sd-SMP-hp index 02e4185..02e4185 100644 --- a/rcutorture/configs/rcu/v3.5/N2-2-t-nh-sd-SMP-hp +++ b/rcutorture/configs/v3.5/N2-2-t-nh-sd-SMP-hp diff --git a/rcutorture/configs/rcu/v3.5/N3-3-T-nh-SD-SMP-hp b/rcutorture/configs/v3.5/N3-3-T-nh-SD-SMP-hp index b3100f6..b3100f6 100644 --- a/rcutorture/configs/rcu/v3.5/N3-3-T-nh-SD-SMP-hp +++ b/rcutorture/configs/v3.5/N3-3-T-nh-SD-SMP-hp diff --git a/rcutorture/configs/rcu/v3.5/N4-A-t-NH-sd-SMP-HP b/rcutorture/configs/v3.5/N4-A-t-NH-sd-SMP-HP index c56b445..c56b445 100644 --- a/rcutorture/configs/rcu/v3.5/N4-A-t-NH-sd-SMP-HP +++ b/rcutorture/configs/v3.5/N4-A-t-NH-sd-SMP-HP diff --git a/rcutorture/configs/rcu/v3.5/N5-U-T-NH-sd-SMP-hp b/rcutorture/configs/v3.5/N5-U-T-NH-sd-SMP-hp index 90d924f..90d924f 100644 --- a/rcutorture/configs/rcu/v3.5/N5-U-T-NH-sd-SMP-hp +++ b/rcutorture/configs/v3.5/N5-U-T-NH-sd-SMP-hp diff --git a/rcutorture/configs/rcu/v3.5/NT1-nh b/rcutorture/configs/v3.5/NT1-nh index 023f312..023f312 100644 --- a/rcutorture/configs/rcu/v3.5/NT1-nh +++ b/rcutorture/configs/v3.5/NT1-nh diff --git a/rcutorture/configs/rcu/v3.5/NT3-NH b/rcutorture/configs/v3.5/NT3-NH index 6fd0235..6fd0235 100644 --- a/rcutorture/configs/rcu/v3.5/NT3-NH +++ b/rcutorture/configs/v3.5/NT3-NH diff --git a/rcutorture/configs/rcu/v3.5/P1-S-T-NH-SD-SMP-HP b/rcutorture/configs/v3.5/P1-S-T-NH-SD-SMP-HP index 9647c44..9647c44 100644 --- a/rcutorture/configs/rcu/v3.5/P1-S-T-NH-SD-SMP-HP +++ b/rcutorture/configs/v3.5/P1-S-T-NH-SD-SMP-HP diff --git a/rcutorture/configs/rcu/v3.5/P2-2-t-nh-sd-SMP-hp b/rcutorture/configs/v3.5/P2-2-t-nh-sd-SMP-hp index 0f3b667..0f3b667 100644 --- a/rcutorture/configs/rcu/v3.5/P2-2-t-nh-sd-SMP-hp +++ b/rcutorture/configs/v3.5/P2-2-t-nh-sd-SMP-hp diff --git a/rcutorture/configs/rcu/v3.5/P3-3-T-nh-SD-SMP-hp b/rcutorture/configs/v3.5/P3-3-T-nh-SD-SMP-hp index b035e14..b035e14 100644 --- a/rcutorture/configs/rcu/v3.5/P3-3-T-nh-SD-SMP-hp +++ b/rcutorture/configs/v3.5/P3-3-T-nh-SD-SMP-hp diff --git a/rcutorture/configs/rcu/v3.5/P4-A-t-NH-sd-SMP-HP b/rcutorture/configs/v3.5/P4-A-t-NH-sd-SMP-HP index 3ccf6a9..3ccf6a9 100644 --- a/rcutorture/configs/rcu/v3.5/P4-A-t-NH-sd-SMP-HP +++ b/rcutorture/configs/v3.5/P4-A-t-NH-sd-SMP-HP diff --git a/rcutorture/configs/rcu/v0.0/P5-U-T-NH-sd-SMP-hp b/rcutorture/configs/v3.5/P5-U-T-NH-sd-SMP-hp index a55c008..ef624ce 100644 --- a/rcutorture/configs/rcu/v0.0/P5-U-T-NH-sd-SMP-hp +++ b/rcutorture/configs/v3.5/P5-U-T-NH-sd-SMP-hp @@ -13,6 +13,7 @@ CONFIG_PREEMPT_VOLUNTARY=n CONFIG_PREEMPT=y #CHECK#CONFIG_TREE_PREEMPT_RCU=y CONFIG_DEBUG_KERNEL=y +CONFIG_PROVE_RCU_DELAY=y CONFIG_DEBUG_OBJECTS=y CONFIG_DEBUG_OBJECTS_RCU_HEAD=y CONFIG_RT_MUTEXES=y diff --git a/rcutorture/configs/rcu/v3.5/PT1-nh b/rcutorture/configs/v3.5/PT1-nh index e3361c3..e3361c3 100644 --- a/rcutorture/configs/rcu/v3.5/PT1-nh +++ b/rcutorture/configs/v3.5/PT1-nh diff --git a/rcutorture/configs/rcu/v3.5/PT2-NH b/rcutorture/configs/v3.5/PT2-NH index 64abfc3..64abfc3 100644 --- a/rcutorture/configs/rcu/v3.5/PT2-NH +++ b/rcutorture/configs/v3.5/PT2-NH diff --git a/rcutorture/configs/rcu/v3.5/ver_functions.sh b/rcutorture/configs/v3.5/ver_functions.sh index 8977d8d..6a5f13a 100644 --- a/rcutorture/configs/rcu/v3.5/ver_functions.sh +++ b/rcutorture/configs/v3.5/ver_functions.sh @@ -26,9 +26,9 @@ rcutorture_param_n_barrier_cbs () { if echo $1 | grep -q "rcutorture\.n_barrier_cbs" then - : + echo $1 else - echo rcutorture.n_barrier_cbs=4 + echo $1 rcutorture.n_barrier_cbs=4 fi } @@ -38,20 +38,9 @@ rcutorture_param_n_barrier_cbs () { rcutorture_param_onoff () { if ! bootparam_hotplug_cpu "$1" && configfrag_hotplug_cpu "$2" then - echo CPU-hotplug kernel, adding rcutorture onoff. 1>&2 - echo rcutorture.onoff_interval=3 rcutorture.onoff_holdoff=30 + echo CPU-hotplug kernel, adding rcutorture onoff. + echo $1 rcutorture.onoff_interval=3 rcutorture.onoff_holdoff=30 + else + echo $1 fi } - -# per_version_boot_params bootparam-string config-file seconds -# -# Adds per-version torture-module parameters to kernels supporting them. -per_version_boot_params () { - echo $1 `rcutorture_param_onoff "$1" "$2"` \ - `rcutorture_param_n_barrier_cbs "$1"` \ - rcutorture.stat_interval=15 \ - rcutorture.shutdown_secs=$3 \ - rcutorture.rcutorture_runnable=1 \ - rcutorture.test_no_idle_hz=1 \ - rcutorture.verbose=1 -} diff --git a/rcutorture/configs/rcu/v3.3/ver_functions.sh b/rcutorture/configs/ver_functions.sh index bae5569..5e40ead 100644 --- a/rcutorture/configs/rcu/v3.3/ver_functions.sh +++ b/rcutorture/configs/ver_functions.sh @@ -20,6 +20,18 @@ # # Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com> +# rcutorture_param_n_barrier_cbs bootparam-string +# +# Adds n_barrier_cbs rcutorture module parameter to kernels having it. +rcutorture_param_n_barrier_cbs () { + if echo $1 | grep -q "rcutorture\.n_barrier_cbs" + then + echo $1 + else + echo $1 rcutorture.n_barrier_cbs=4 + fi +} + # rcutorture_param_onoff bootparam-string config-file # # Adds onoff rcutorture module parameters to kernels having it. @@ -27,18 +39,8 @@ rcutorture_param_onoff () { if ! bootparam_hotplug_cpu "$1" && configfrag_hotplug_cpu "$2" then echo CPU-hotplug kernel, adding rcutorture onoff. 1>&2 - echo rcutorture.onoff_interval=3 rcutorture.onoff_holdoff=30 + echo $1 rcutorture.onoff_interval=3 rcutorture.onoff_holdoff=30 + else + echo $1 fi } - -# per_version_boot_params bootparam-string config-file seconds -# -# Adds per-version torture-module parameters to kernels supporting them. -per_version_boot_params () { - echo $1 `rcutorture_param_onoff "$1" "$2"` \ - rcutorture.stat_interval=15 \ - rcutorture.shutdown_secs=$3 \ - rcutorture.rcutorture_runnable=1 \ - rcutorture.test_no_idle_hz=1 \ - rcutorture.verbose=1 -} diff --git a/rcutorture/doc/TREE_RCU-kconfig.txt b/rcutorture/doc/TREE_RCU-Kconfig.txt index 3e588db..adbb76c 100644 --- a/rcutorture/doc/TREE_RCU-kconfig.txt +++ b/rcutorture/doc/TREE_RCU-Kconfig.txt @@ -14,6 +14,7 @@ CONFIG_NO_HZ_FULL_SYSIDLE -- Do one. CONFIG_PREEMPT -- Do half. (First three and #8.) CONFIG_PROVE_LOCKING -- Do all but two, covering CONFIG_PROVE_RCU and not. CONFIG_PROVE_RCU -- Do all but one under CONFIG_PROVE_LOCKING. +CONFIG_PROVE_RCU_DELAY -- Do one. CONFIG_RCU_BOOST -- one of TREE_PREEMPT_RCU. CONFIG_RCU_BOOST_PRIO -- set to 2 for _BOOST testing. CONFIG_RCU_CPU_STALL_INFO -- do one with and without _VERBOSE. |