rcutorture: Specify MAXSMP=y for TREE01
Setting CONFIG_MAXSMP=y causes cpumasks to be moved offstack, which introduces the possibility of NULL cpumask_var_t pointers. This commit therefore enables CONFIG_MAXSMP=y in TREE01 to increase test coverage. However, because CONFIG_MAXSMP=y implies 8192 CPUs, we need to use the maxcpus= boot parameter to limit the number of CPUs to something reasonable, which in turn requires updating the scripts to handle this. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Reviewed-by: Pranith Kumar <bobby.prani@gmail.com>
This commit is contained in:
Родитель
9e62b0efdc
Коммит
ae867ff03d
|
@ -64,6 +64,26 @@ configfrag_boot_params () {
|
|||
fi
|
||||
}
|
||||
|
||||
# configfrag_boot_cpus bootparam-string config-fragment-file config-cpus
|
||||
#
|
||||
# Decreases number of CPUs based on any maxcpus= boot parameters specified.
|
||||
configfrag_boot_cpus () {
|
||||
local bootargs="`configfrag_boot_params "$1" "$2"`"
|
||||
local maxcpus
|
||||
if echo "${bootargs}" | grep -q 'maxcpus=[0-9]'
|
||||
then
|
||||
maxcpus="`echo "${bootargs}" | sed -e 's/^.*maxcpus=\([0-9]*\).*$/\1/'`"
|
||||
if test "$3" -gt "$maxcpus"
|
||||
then
|
||||
echo $maxcpus
|
||||
else
|
||||
echo $3
|
||||
fi
|
||||
else
|
||||
echo $3
|
||||
fi
|
||||
}
|
||||
|
||||
# configfrag_hotplug_cpu config-fragment-file
|
||||
#
|
||||
# Returns 1 if the config fragment specifies hotplug CPU.
|
||||
|
|
|
@ -140,6 +140,7 @@ fi
|
|||
# Generate -smp qemu argument.
|
||||
qemu_args="-nographic $qemu_args"
|
||||
cpu_count=`configNR_CPUS.sh $config_template`
|
||||
cpu_count=`configfrag_boot_cpus "$boot_args" "$config_template" "$cpu_count"`
|
||||
vcpus=`identify_qemu_vcpus`
|
||||
if test $cpu_count -gt $vcpus
|
||||
then
|
||||
|
|
|
@ -188,7 +188,9 @@ for CF in $configs
|
|||
do
|
||||
if test -f "$CONFIGFRAG/$kversion/$CF"
|
||||
then
|
||||
echo $CF `configNR_CPUS.sh $CONFIGFRAG/$kversion/$CF` >> $T/cfgcpu
|
||||
cpu_count=`configNR_CPUS.sh $CONFIGFRAG/$kversion/$CF`
|
||||
cpu_count=`configfrag_boot_cpus "$TORTURE_BOOTARGS" "$CONFIGFRAG/$kversion/$CF" "$cpu_count"`
|
||||
echo $CF $cpu_count >> $T/cfgcpu
|
||||
else
|
||||
echo "The --configs file $CF does not exist, terminating."
|
||||
exit 1
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
CONFIG_SMP=y
|
||||
CONFIG_NR_CPUS=8
|
||||
CONFIG_PREEMPT_NONE=n
|
||||
CONFIG_PREEMPT_VOLUNTARY=n
|
||||
CONFIG_PREEMPT=y
|
||||
|
@ -10,8 +9,7 @@ CONFIG_NO_HZ_FULL=n
|
|||
CONFIG_RCU_FAST_NO_HZ=y
|
||||
CONFIG_RCU_TRACE=y
|
||||
CONFIG_HOTPLUG_CPU=y
|
||||
CONFIG_RCU_FANOUT=8
|
||||
CONFIG_RCU_FANOUT_EXACT=n
|
||||
CONFIG_MAXSMP=y
|
||||
CONFIG_RCU_NOCB_CPU=y
|
||||
CONFIG_RCU_NOCB_CPU_ZERO=y
|
||||
CONFIG_DEBUG_LOCK_ALLOC=n
|
||||
|
|
|
@ -1 +1 @@
|
|||
rcutorture.torture_type=rcu_bh
|
||||
rcutorture.torture_type=rcu_bh maxcpus=8
|
||||
|
|
Загрузка…
Ссылка в новой задаче