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

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

rcutorture: Abstract qemu-flavor identification



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: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Greg KH <gregkh@linuxfoundation.org>
parent 50d48a1d
Loading
Loading
Loading
Loading
+27 −0
Original line number Original line Diff line number Diff line
@@ -51,3 +51,30 @@ configfrag_hotplug_cpu () {
	fi
	fi
	grep -q '^CONFIG_HOTPLUG_CPU=y$' "$1"
	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
}
+3 −6
Original line number Original line Diff line number Diff line
@@ -109,12 +109,9 @@ boot_args=$6
cd $KVM
cd $KVM
kstarttime=`awk 'BEGIN { print systime() }' < /dev/null`
kstarttime=`awk 'BEGIN { print systime() }' < /dev/null`
echo ' ---' `date`: Starting kernel
echo ' ---' `date`: Starting kernel
if file linux-2.6/*.o | grep -q 64-bit

then
# Determine the appropriate flavor of qemu command.
	QEMU=qemu-system-x86_64
QEMU="`identify_qemu $builddir/vmlinux.o`"
else
	QEMU=qemu-system-i386
fi


# Generate -smp qemu argument.
# Generate -smp qemu argument.
cpu_count=`configNR_CPUS.sh $config_template`
cpu_count=`configNR_CPUS.sh $config_template`
+6 −0
Original line number Original line Diff line number Diff line
@@ -45,6 +45,7 @@ usage () {
	echo "       --datestamp string"
	echo "       --datestamp string"
	echo "       --duration minutes"
	echo "       --duration minutes"
	echo "       --kversion vN.NN"
	echo "       --kversion vN.NN"
	echo "       --qemu-cmd qemu-system-..."
	echo "       --rcu-kvm absolute-pathname"
	echo "       --rcu-kvm absolute-pathname"
	echo "       --results absolute-pathname"
	echo "       --results absolute-pathname"
	echo "       --relbuilddir relative-pathname"
	echo "       --relbuilddir relative-pathname"
@@ -101,6 +102,11 @@ do
		kversion=$2
		kversion=$2
		shift
		shift
		;;
		;;
	--qemu-cmd)
		checkarg --qemu-cmd "(qemu-system-...)" $# "$2" 'qemu-system-' '^--'
		RCU_QEMU_CMD="$2"; export RCU_QEMU_CMD
		shift
		;;
	--rcu-kvm)
	--rcu-kvm)
		checkarg --rcu-kvm "(absolute pathname)" "$#" "$2" '^/' error
		checkarg --rcu-kvm "(absolute pathname)" "$#" "$2" '^/' error
		KVM=$2; export KVM
		KVM=$2; export KVM