Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull RCU updates from Ingo Molnar:
"The main RCU changes in this cycle are:
- Documentation updates.
- Miscellaneous fixes.
- Preemptible-RCU fixes, including fixing an old bug in the
interaction of RCU priority boosting and CPU hotplug.
- SRCU updates.
- RCU CPU stall-warning updates.
- RCU torture-test updates"
* 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (54 commits)
rcu: Initialize tiny RCU stall-warning timeouts at boot
rcu: Fix RCU CPU stall detection in tiny implementation
rcu: Add GP-kthread-starvation checks to CPU stall warnings
rcu: Make cond_resched_rcu_qs() apply to normal RCU flavors
rcu: Optionally run grace-period kthreads at real-time priority
ksoftirqd: Use new cond_resched_rcu_qs() function
ksoftirqd: Enable IRQs and call cond_resched() before poking RCU
rcutorture: Add more diagnostics in rcu_barrier() test failure case
torture: Flag console.log file to prevent holdovers from earlier runs
torture: Add "-enable-kvm -soundhw pcspk" to qemu command line
rcutorture: Handle different mpstat versions
rcutorture: Check from beginning to end of grace period
rcu: Remove redundant rcu_batches_completed() declaration
rcutorture: Drop rcu_torture_completed() and friends
rcu: Provide rcu_batches_completed_sched() for TINY_RCU
rcutorture: Use unsigned for Reader Batch computations
rcutorture: Make build-output parsing correctly flag RCU's warnings
rcu: Make _batches_completed() functions return unsigned long
rcutorture: Issue warnings on close calls due to Reader Batch blows
documentation: Fix smp typo in memory-barriers.txt
...
This commit is contained in:
@@ -24,7 +24,7 @@
|
||||
|
||||
ncpus=`grep '^processor' /proc/cpuinfo | wc -l`
|
||||
idlecpus=`mpstat | tail -1 | \
|
||||
awk -v ncpus=$ncpus '{ print ncpus * ($7 + $12) / 100 }'`
|
||||
awk -v ncpus=$ncpus '{ print ncpus * ($7 + $NF) / 100 }'`
|
||||
awk -v ncpus=$ncpus -v idlecpus=$idlecpus < /dev/null '
|
||||
BEGIN {
|
||||
cpus2use = idlecpus;
|
||||
|
||||
@@ -30,6 +30,7 @@ else
|
||||
echo Unreadable results directory: $i
|
||||
exit 1
|
||||
fi
|
||||
. tools/testing/selftests/rcutorture/bin/functions.sh
|
||||
|
||||
configfile=`echo $i | sed -e 's/^.*\///'`
|
||||
ngps=`grep ver: $i/console.log 2> /dev/null | tail -1 | sed -e 's/^.* ver: //' -e 's/ .*$//'`
|
||||
@@ -48,4 +49,21 @@ else
|
||||
title="$title ($ngpsps per second)"
|
||||
fi
|
||||
echo $title
|
||||
nclosecalls=`grep --binary-files=text 'torture: Reader Batch' $i/console.log | tail -1 | awk '{for (i=NF-8;i<=NF;i++) sum+=$i; } END {print sum}'`
|
||||
if test -z "$nclosecalls"
|
||||
then
|
||||
exit 0
|
||||
fi
|
||||
if test "$nclosecalls" -eq 0
|
||||
then
|
||||
exit 0
|
||||
fi
|
||||
# Compute number of close calls per tenth of an hour
|
||||
nclosecalls10=`awk -v nclosecalls=$nclosecalls -v dur=$dur 'BEGIN { print int(nclosecalls * 36000 / dur) }' < /dev/null`
|
||||
if test $nclosecalls10 -gt 5 -a $nclosecalls -gt 1
|
||||
then
|
||||
print_bug $nclosecalls "Reader Batch close calls in" $(($dur/60)) minute run: $i
|
||||
else
|
||||
print_warning $nclosecalls "Reader Batch close calls in" $(($dur/60)) minute run: $i
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -8,9 +8,9 @@
|
||||
#
|
||||
# Usage: kvm-test-1-run.sh config builddir resdir minutes qemu-args boot_args
|
||||
#
|
||||
# qemu-args defaults to "-nographic", along with arguments specifying the
|
||||
# number of CPUs and other options generated from
|
||||
# the underlying CPU architecture.
|
||||
# qemu-args defaults to "-enable-kvm -soundhw pcspk -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.
|
||||
#
|
||||
@@ -138,7 +138,7 @@ then
|
||||
fi
|
||||
|
||||
# Generate -smp qemu argument.
|
||||
qemu_args="-nographic $qemu_args"
|
||||
qemu_args="-enable-kvm -soundhw pcspk -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`
|
||||
@@ -168,6 +168,7 @@ then
|
||||
touch $resdir/buildonly
|
||||
exit 0
|
||||
fi
|
||||
echo "NOTE: $QEMU either did not run or was interactive" > $builddir/console.log
|
||||
echo $QEMU $qemu_args -m 512 -kernel $resdir/bzImage -append \"$qemu_append $boot_args\" > $resdir/qemu-cmd
|
||||
( $QEMU $qemu_args -m 512 -kernel $resdir/bzImage -append "$qemu_append $boot_args"; echo $? > $resdir/qemu-retval ) &
|
||||
qemu_pid=$!
|
||||
|
||||
@@ -26,12 +26,15 @@
|
||||
#
|
||||
# Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
|
||||
|
||||
T=$1
|
||||
F=$1
|
||||
title=$2
|
||||
T=/tmp/parse-build.sh.$$
|
||||
trap 'rm -rf $T' 0
|
||||
mkdir $T
|
||||
|
||||
. functions.sh
|
||||
|
||||
if grep -q CC < $T
|
||||
if grep -q CC < $F
|
||||
then
|
||||
:
|
||||
else
|
||||
@@ -39,18 +42,21 @@ else
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if grep -q "error:" < $T
|
||||
if grep -q "error:" < $F
|
||||
then
|
||||
print_bug $title build errors:
|
||||
grep "error:" < $T
|
||||
grep "error:" < $F
|
||||
exit 2
|
||||
fi
|
||||
exit 0
|
||||
|
||||
if egrep -q "rcu[^/]*\.c.*warning:|rcu.*\.h.*warning:" < $T
|
||||
grep warning: < $F > $T/warnings
|
||||
grep "include/linux/*rcu*\.h:" $T/warnings > $T/hwarnings
|
||||
grep "kernel/rcu/[^/]*:" $T/warnings > $T/cwarnings
|
||||
cat $T/hwarnings $T/cwarnings > $T/rcuwarnings
|
||||
if test -s $T/rcuwarnings
|
||||
then
|
||||
print_warning $title build errors:
|
||||
egrep "rcu[^/]*\.c.*warning:|rcu.*\.h.*warning:" < $T
|
||||
cat $T/rcuwarnings
|
||||
exit 2
|
||||
fi
|
||||
exit 0
|
||||
|
||||
@@ -36,7 +36,7 @@ if grep -Pq '\x00' < $file
|
||||
then
|
||||
print_warning Console output contains nul bytes, old qemu still running?
|
||||
fi
|
||||
egrep 'Badness|WARNING:|Warn|BUG|===========|Call Trace:|Oops:' < $file | grep -v 'ODEBUG: ' | grep -v 'Warning: unable to open an initial console' > $T
|
||||
egrep 'Badness|WARNING:|Warn|BUG|===========|Call Trace:|Oops:|Stall ended before state dump start' < $file | grep -v 'ODEBUG: ' | grep -v 'Warning: unable to open an initial console' > $T
|
||||
if test -s $T
|
||||
then
|
||||
print_warning Assertion failure in $file $title
|
||||
|
||||
Reference in New Issue
Block a user