Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c87b9c60 authored by Paul E. McKenney's avatar Paul E. McKenney
Browse files

rcutorture: Add KVM-based test framework



This commit adds the test framework that I used to test RCU under KVM.
This consists of a group of scripts and Kconfig fragments.

Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Greg KH <gregkh@linuxfoundation.org>
parent dc1ccc48
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -7033,6 +7033,12 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git
F:	Documentation/RCU/torture.txt
F:	kernel/rcu/torture.c

RCUTORTURE TEST FRAMEWORK
M:	"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
S:	Supported
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git
F:	tools/testing/selftests/rcutorture

RDC R-321X SoC
M:	Florian Fainelli <florian@openwrt.org>
S:	Maintained
+6 −0
Original line number Diff line number Diff line
initrd
linux-2.6
b[0-9]*
rcu-test-image
res
*.swp
+25 −0
Original line number Diff line number Diff line
#!/bin/sh
# Usage: sh config2frag.sh < .config > configfrag
#
# Converts the "# CONFIG_XXX is not set" to "CONFIG_XXX=n" so that the
# resulting file becomes a legitimate Kconfig fragment.
#
# 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# Copyright (C) IBM Corporation, 2013
#
# Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com>

LANG=C sed -e 's/^# CONFIG_\([a-zA-Z0-9_]*\) is not set$/CONFIG_\1=n/'
+45 −0
Original line number Diff line number Diff line
#!/bin/bash
#
# Extract the number of CPUs expected from the specified Kconfig-file
# fragment by checking CONFIG_SMP and CONFIG_NR_CPUS.  If the specified
# file gives no clue, base the number on the number of idle CPUs on
# the system.
#
# Usage: configNR_CPUS.sh config-frag
#
# 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# Copyright (C) IBM Corporation, 2013
#
# Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com>

cf=$1
if test ! -r $cf
then
	echo Unreadable config fragment $cf 1>&2
	exit -1
fi
if grep -q '^CONFIG_SMP=n$' $cf
then
	echo 1
	exit 0
fi
if grep -q '^CONFIG_NR_CPUS=' $cf
then
	grep '^CONFIG_NR_CPUS=' $cf | 
		sed -e 's/^CONFIG_NR_CPUS=\([0-9]*\).*$/\1/'
	exit 0
fi
cpus2use.sh
+54 −0
Original line number Diff line number Diff line
#!/bin/sh
# Usage: sh configcheck.sh .config .config-template
#
# 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# Copyright (C) IBM Corporation, 2011
#
# Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com>

T=/tmp/abat-chk-config.sh.$$
trap 'rm -rf $T' 0
mkdir $T

cat $1 > $T/.config

cat $2 | sed -e 's/\(.*\)=n/# \1 is not set/' -e 's/^#CHECK#//' |
awk	'
BEGIN	{
		print "if grep -q \"" $0 "\" < '"$T/.config"'";
		print "then";
		print "\t:";
		print "else";
		if ($1 == "#") {
			print "\tif grep -q \"" $2 "\" < '"$T/.config"'";
			print "\tthen";
			print "\t\tif test \"$firsttime\" = \"\""
			print "\t\tthen"
			print "\t\t\tfirsttime=1"
			print "\t\tfi"
			print "\t\techo \":" $2 ": improperly set\"";
			print "\telse";
			print "\t\t:";
			print "\tfi";
		} else {
			print "\tif test \"$firsttime\" = \"\""
			print "\tthen"
			print "\t\tfirsttime=1"
			print "\tfi"
			print "\techo \":" $0 ": improperly set\"";
		}
		print "fi";
	}' | sh
Loading