From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: linux-kernel@vger.kernel.org
Cc: mingo@kernel.org, laijs@cn.fujitsu.com, dipankar@in.ibm.com,
akpm@linux-foundation.org, mathieu.desnoyers@efficios.com,
josh@joshtriplett.org, niv@us.ibm.com, tglx@linutronix.de,
peterz@infradead.org, rostedt@goodmis.org, dhowells@redhat.com,
edumazet@google.com, darren@dvhart.com, fweisbec@gmail.com,
sbw@mit.edu, "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>,
Greg KH <gregkh@linuxfoundation.org>
Subject: [PATCH tip/core/rcu 12/28] rcutorture: Abstract qemu-flavor identification
Date: Fri, 15 Nov 2013 16:35:25 -0800 [thread overview]
Message-ID: <1384562141-32446-12-git-send-email-paulmck@linux.vnet.ibm.com> (raw)
In-Reply-To: <1384562141-32446-1-git-send-email-paulmck@linux.vnet.ibm.com>
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
The task of working out which flavor of qemu to use gets more complex
as more types of CPUs are supported. Adding Power makes three in addition
to 32-bit and 64-bit x86, so it is time to pull this out into a function.
This commit therefore creates an identify_qemu function and also adds
a --qemu-cmd command-line argument for the inevitable case where the
identify_qemu cannot figure it out.
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Greg KH <gregkh@linuxfoundation.org>
---
.../testing/selftests/rcutorture/bin/functions.sh | 27 ++++++++++++++++++++++
.../selftests/rcutorture/bin/kvm-test-1-rcu.sh | 9 +++-----
tools/testing/selftests/rcutorture/bin/kvm.sh | 6 +++++
3 files changed, 36 insertions(+), 6 deletions(-)
diff --git a/tools/testing/selftests/rcutorture/bin/functions.sh b/tools/testing/selftests/rcutorture/bin/functions.sh
index 8f912419ed7f..c974414ef7a5 100644
--- a/tools/testing/selftests/rcutorture/bin/functions.sh
+++ b/tools/testing/selftests/rcutorture/bin/functions.sh
@@ -51,3 +51,30 @@ configfrag_hotplug_cpu () {
fi
grep -q '^CONFIG_HOTPLUG_CPU=y$' "$1"
}
+
+# identify_qemu builddir
+#
+# Returns our best guess as to which qemu command is appropriate for
+# the kernel at hand. Override with the RCU_QEMU_CMD environment variable.
+identify_qemu () {
+ local u="`file "$1"`"
+ if test -n "$RCU_QEMU_CMD"
+ then
+ echo $RCU_QEMU_CMD
+ elif echo $u | grep -q x86-64
+ then
+ echo qemu-system-x86_64
+ elif echo $u | grep -q "Intel 80386"
+ then
+ echo qemu-system-i386
+ elif uname -a | grep -q ppc64
+ then
+ echo qemu-system-ppc64
+ else
+ echo Cannot figure out what qemu command to use! 1>&2
+ # Usually this will be one of /usr/bin/qemu-system-*
+ # Use RCU_QEMU_CMD environment variable or appropriate
+ # argument to top-level script.
+ exit 1
+ fi
+}
diff --git a/tools/testing/selftests/rcutorture/bin/kvm-test-1-rcu.sh b/tools/testing/selftests/rcutorture/bin/kvm-test-1-rcu.sh
index 5526550a5d56..ddf3bd6eaf19 100755
--- a/tools/testing/selftests/rcutorture/bin/kvm-test-1-rcu.sh
+++ b/tools/testing/selftests/rcutorture/bin/kvm-test-1-rcu.sh
@@ -109,12 +109,9 @@ boot_args=$6
cd $KVM
kstarttime=`awk 'BEGIN { print systime() }' < /dev/null`
echo ' ---' `date`: Starting kernel
-if file linux-2.6/*.o | grep -q 64-bit
-then
- QEMU=qemu-system-x86_64
-else
- QEMU=qemu-system-i386
-fi
+
+# Determine the appropriate flavor of qemu command.
+QEMU="`identify_qemu $builddir/vmlinux.o`"
# Generate -smp qemu argument.
cpu_count=`configNR_CPUS.sh $config_template`
diff --git a/tools/testing/selftests/rcutorture/bin/kvm.sh b/tools/testing/selftests/rcutorture/bin/kvm.sh
index bf6d68e96e94..89164c245ca1 100644
--- a/tools/testing/selftests/rcutorture/bin/kvm.sh
+++ b/tools/testing/selftests/rcutorture/bin/kvm.sh
@@ -45,6 +45,7 @@ usage () {
echo " --datestamp string"
echo " --duration minutes"
echo " --kversion vN.NN"
+ echo " --qemu-cmd qemu-system-..."
echo " --rcu-kvm absolute-pathname"
echo " --results absolute-pathname"
echo " --relbuilddir relative-pathname"
@@ -101,6 +102,11 @@ do
kversion=$2
shift
;;
+ --qemu-cmd)
+ checkarg --qemu-cmd "(qemu-system-...)" $# "$2" 'qemu-system-' '^--'
+ RCU_QEMU_CMD="$2"; export RCU_QEMU_CMD
+ shift
+ ;;
--rcu-kvm)
checkarg --rcu-kvm "(absolute pathname)" "$#" "$2" '^/' error
KVM=$2; export KVM
--
1.8.1.5
next prev parent reply other threads:[~2013-11-16 0:36 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-16 0:35 [PATCH tip/core/rcu 0/28] RCU torture scripting for 3.14 Paul E. McKenney
2013-11-16 0:35 ` [PATCH tip/core/rcu 01/28] rcutorture: Add KVM-based test framework Paul E. McKenney
2013-11-16 0:35 ` [PATCH tip/core/rcu 02/28] rcutorture: Add datestamp argument to kvm.sh Paul E. McKenney
2013-11-16 0:35 ` [PATCH tip/core/rcu 03/28] rcutorture: Add kernel-version argument Paul E. McKenney
2013-11-16 0:35 ` [PATCH tip/core/rcu 04/28] rcutorture: Add per-version default Kconfig fragments and module parameters Paul E. McKenney
2013-11-16 0:35 ` [PATCH tip/core/rcu 05/28] rcutorture: Add per-Kconfig fragment boot parameters Paul E. McKenney
2013-11-16 0:35 ` [PATCH tip/core/rcu 06/28] rcutorture: Add v3.12 version, which adds sysidle testing Paul E. McKenney
2013-11-16 0:35 ` [PATCH tip/core/rcu 07/28] rcutorture: Add SRCU Kconfig-fragment files Paul E. McKenney
2013-11-16 0:35 ` [PATCH tip/core/rcu 08/28] rcutorture: Refactor TREE_RCU test cases Paul E. McKenney
2013-11-16 0:35 ` [PATCH tip/core/rcu 09/28] rcutorture: Refactor TINY_RCU " Paul E. McKenney
2013-11-16 0:35 ` [PATCH tip/core/rcu 10/28] rcutorture: Make test output less chatty Paul E. McKenney
2013-11-16 0:35 ` [PATCH tip/core/rcu 11/28] rcutorture: Eliminate duplicate .config-check code Paul E. McKenney
2013-11-16 0:35 ` Paul E. McKenney [this message]
2013-11-16 0:35 ` [PATCH tip/core/rcu 13/28] rcutorture: Remove decorative qemu argument Paul E. McKenney
2013-11-16 0:35 ` [PATCH tip/core/rcu 14/28] rcutorture: Eliminate --rcu-kvm argument Paul E. McKenney
2013-11-16 0:35 ` [PATCH tip/core/rcu 15/28] rcutorture: Refactor to enable non-x86 architectures Paul E. McKenney
2013-11-16 0:35 ` [PATCH tip/core/rcu 16/28] rcutorture: Allow Kconfig-related boot parameters to override Paul E. McKenney
2013-11-16 0:35 ` [PATCH tip/core/rcu 17/28] rcutorture: Eliminate configdir argument from kvm-recheck.sh script Paul E. McKenney
2013-11-16 0:35 ` [PATCH tip/core/rcu 18/28] rcutorture: Add --buildonly dry-run capability Paul E. McKenney
2013-11-16 0:35 ` [PATCH tip/core/rcu 19/28] rcutorture: Add --bootargs argument to specify additional boot arguments Paul E. McKenney
2013-11-16 0:35 ` [PATCH tip/core/rcu 20/28] rcutorture: Add --qemu-args argument to kvm.sh Paul E. McKenney
2013-11-16 0:35 ` [PATCH tip/core/rcu 21/28] rcutorture: Add --no-initrd " Paul E. McKenney
2013-11-16 0:35 ` [PATCH tip/core/rcu 22/28] rcutorture: Add --kmake-arg " Paul E. McKenney
2013-11-16 0:35 ` [PATCH tip/core/rcu 23/28] rcutorture: Add tracing-enabled version of TREE08 Paul E. McKenney
2013-11-16 0:35 ` [PATCH tip/core/rcu 24/28] rcutorture: Update comment in kvm.sh listing typical RCU trace events Paul E. McKenney
2013-11-16 0:35 ` [PATCH tip/core/rcu 25/28] rcutorture: Test summary at end of run with less chattiness Paul E. McKenney
2013-11-16 0:35 ` [PATCH tip/core/rcu 26/28] rcutorture: Record results from repeated runs of the same test scenario Paul E. McKenney
2013-11-16 0:35 ` [PATCH tip/core/rcu 27/28] rcutorture: Flag errors and warnings with color coding Paul E. McKenney
2013-11-16 0:35 ` [PATCH tip/core/rcu 28/28] rcutorture: Move checkarg to functions.sh Paul E. McKenney
2013-11-16 1:05 ` [PATCH tip/core/rcu 01/28] rcutorture: Add KVM-based test framework Greg KH
2013-11-16 1:21 ` Paul E. McKenney
2013-11-16 1:47 ` Steven Rostedt
2013-11-16 2:01 ` Greg KH
2013-11-16 3:56 ` Paul E. McKenney
2013-11-21 0:25 ` Josh Triplett
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1384562141-32446-12-git-send-email-paulmck@linux.vnet.ibm.com \
--to=paulmck@linux.vnet.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=darren@dvhart.com \
--cc=dhowells@redhat.com \
--cc=dipankar@in.ibm.com \
--cc=edumazet@google.com \
--cc=fweisbec@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=josh@joshtriplett.org \
--cc=laijs@cn.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=mingo@kernel.org \
--cc=niv@us.ibm.com \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=sbw@mit.edu \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).