From nobody Sun Feb 8 20:58:48 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 04BEC2874FF; Mon, 29 Dec 2025 19:14:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767035640; cv=none; b=WwzX0vktYqf3uvRM8LdZR6R9XqRCFYKQjV+AbZW5bu0Vpx5sh4Y24KB/ajlosBHpu3rPCaMFUU+apbx9brtrHCYvT1mtM/c2eIpXuF+ZC4oBAKHKbc2//7/5pd0shtyvWrKutozII7xtL1JDFOmK0cr/LESeIuLWR+AeWag3D3s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767035640; c=relaxed/simple; bh=HgAwY3wlHrQUmWmjO4oRSPl4cMdqBMH6VaPUV/rKWFw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=HHdQuOcAO4ZE+iaTHJuX8Y1A0oo5PeABNTS7mazS/LbD90Z4lr4aue6bk6U9SvK++E1LWGLGNQLa1VfRlvBL2L0R2Lwvbg/fhV+lhUBmRkH2G+waebhpN/zN1HYV+k2vGvrL4yjOYOlvPzCDPd3uZfRA13N81sDuxeM1l6N9afs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ZAnyumhC; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ZAnyumhC" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D8277C4CEF7; Mon, 29 Dec 2025 19:13:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1767035639; bh=HgAwY3wlHrQUmWmjO4oRSPl4cMdqBMH6VaPUV/rKWFw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZAnyumhCl6LmFXWkilZ8TMBQHPdvpvZy82Xv/+KEAuRUgUA8ZbWox+F0h/2PbaxzM lDOKl0Xz+Ir/hNWAP+lzzIa3wFoqxR8x2vwwj9DqS1t9j0xoAm/jwuo7q7CdIbikp3 zWrA4/B3LUUnVUd5GWGb6XmSl2FjHTuefXn7BjOjImDFfVXEApjdCOAJfzd70UYoXL mttCLkPMoQ70tl7bWb+nbJiw5BtCr8HtzkDdxV+LPhzr1hVQhezkCmChCHJTJI12iL mxo4MbT8oe65V5OL7wd/RQQJesPJdT5stK1vkeHTqYmgS7rTCjsAfdTL6PQqBAEEhK HvRtC9yEpzOkw== Received: by paulmck-ThinkPad-P17-Gen-1.home (Postfix, from userid 1000) id 8C665CE0C97; Mon, 29 Dec 2025 11:13:59 -0800 (PST) From: "Paul E. McKenney" To: rcu@vger.kernel.org Cc: linux-kernel@vger.kernel.org, kernel-team@meta.com, rostedt@goodmis.org, "Paul E. McKenney" Subject: [PATCH v4 1/6] rcutorture: Add context checks to rcu_torture_timer() Date: Mon, 29 Dec 2025 11:13:53 -0800 Message-Id: <20251229191358.693753-1-paulmck@kernel.org> X-Mailer: git-send-email 2.40.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This commit adds irq, NMI, and softirq context checks to the rcu_torture_timer() function. Just because you are paranoid does not mean that they are not out to get you... ;-) Signed-off-by: Paul E. McKenney --- kernel/rcu/rcutorture.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c index d00b043823aef..63053031ade21 100644 --- a/kernel/rcu/rcutorture.c +++ b/kernel/rcu/rcutorture.c @@ -2454,6 +2454,9 @@ static DEFINE_TORTURE_RANDOM_PERCPU(rcu_torture_timer= _rand); */ static void rcu_torture_timer(struct timer_list *unused) { + WARN_ON_ONCE(!in_serving_softirq()); + WARN_ON_ONCE(in_hardirq()); + WARN_ON_ONCE(in_nmi()); atomic_long_inc(&n_rcu_torture_timers); (void)rcu_torture_one_read(this_cpu_ptr(&rcu_torture_timer_rand), -1); =20 --=20 2.40.1 From nobody Sun Feb 8 20:58:48 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 16CD2295511; Mon, 29 Dec 2025 19:14:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767035640; cv=none; b=ifDr5ncaBIAOQ/b1Z085nYjnLWZ+AGNJ9apePBxQxq6OxVUyCiXITqGet57P5DZ+lPC7vR2DZKbrlbKoaemZQGT8y3vpl1005ScCkzqeM6z7M9Or1ub2pjtA623efiZNlNg5V9QNCiG5q387C8Ex0YgTPGQjAHOuVXnNjV6nnr8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767035640; c=relaxed/simple; bh=d7kEec1Fu/bQ/lnrxbbAvKpYSpSr8iZL9kTn30+SxQQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=lEOG10ypVTQRZnklpRZcSVUlVZCMBLLLA/UDBqazKmcAjrNG8GByXN1+yzy7i6zTCbw8HAc3qPnIKM+fNSgL25beQHz0ExeKihwvlDkO8mAdZhfJDACgspeQaOGv2nwVHmabYaSAmMB/Ow5JsucAj4MduuZ30D9ie044AWoDxAQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=uDAlZ3JZ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="uDAlZ3JZ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E20A7C116D0; Mon, 29 Dec 2025 19:13:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1767035639; bh=d7kEec1Fu/bQ/lnrxbbAvKpYSpSr8iZL9kTn30+SxQQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uDAlZ3JZdGd30uRyK6PKHMhXYs5xIy86PKXRw4H4vnsr1BSvcmtl8HCR7PfIYgfbW QqsnA5JL4xjwpNLDBuiYo+PNVlBpYPdgMVADguKe591K+F1DqcbWJppEfUamkf5dbk iKiAUc3nEKEZRgQNZBCFHA9inEIzvzsnbdbMkPY4z6U50UksEHejcuSgiH+wXw1yyd llTXjrFWJn2/q1QTEwbvdJ3dU2e9ELcQ0i6ANEcO6a1SKv5jO2WL68MCBqIynR7mwf zfNS2lI8I1PXq/AFZeTJekkLG/LU50TFJmYV3NikSgtLKuLceUNXW8ZCE1cT2Ioyuy 98EU0JlKScqbw== Received: by paulmck-ThinkPad-P17-Gen-1.home (Postfix, from userid 1000) id 8FF20CE0CAF; Mon, 29 Dec 2025 11:13:59 -0800 (PST) From: "Paul E. McKenney" To: rcu@vger.kernel.org Cc: linux-kernel@vger.kernel.org, kernel-team@meta.com, rostedt@goodmis.org, "Paul E. McKenney" Subject: [PATCH v4 2/6] torture: Parallelize kvm-series.sh guest-OS execution Date: Mon, 29 Dec 2025 11:13:54 -0800 Message-Id: <20251229191358.693753-2-paulmck@kernel.org> X-Mailer: git-send-email 2.40.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Currently, kvm-series.sh builds and runs serially, which makes for long execution times. This commit changes its logic to build all of the needed kernels serially, but then run the corresponding guest OSes concurrently in batches using the entire machine. On large systems, this results in order-of-magnitude speedups of the guest-OS execution portion of the runtime. Signed-off-by: Paul E. McKenney --- .../selftests/rcutorture/bin/kvm-series.sh | 176 +++++++++++++++--- 1 file changed, 154 insertions(+), 22 deletions(-) diff --git a/tools/testing/selftests/rcutorture/bin/kvm-series.sh b/tools/t= esting/selftests/rcutorture/bin/kvm-series.sh index 2ff905a1853bd..d020d0672023a 100755 --- a/tools/testing/selftests/rcutorture/bin/kvm-series.sh +++ b/tools/testing/selftests/rcutorture/bin/kvm-series.sh @@ -8,14 +8,14 @@ # then runs each commit through the specified list of commits using kvm.sh. # The runs are grouped into a -series/config/commit directory tree. # Each run defaults to a duration of one minute. -# +#=20 # Run in top-level Linux source directory. Please note that this is in # no way a replacement for "git bisect"!!! # # This script is intended to replace kvm-check-branches.sh by providing # ease of use and faster execution. =20 -T=3D"`mktemp -d ${TMPDIR-/tmp}/kvm-series.sh.XXXXXX`" +T=3D"`mktemp -d ${TMPDIR-/tmp}/kvm-series.sh.XXXXXX`"; export T trap 'rm -rf $T' 0 =20 scriptname=3D$0 @@ -53,40 +53,62 @@ shift =20 RCUTORTURE=3D"`pwd`/tools/testing/selftests/rcutorture"; export RCUTORTURE PATH=3D${RCUTORTURE}/bin:$PATH; export PATH +RES=3D"${RCUTORTURE}/res"; export RES . functions.sh =20 ret=3D0 -nfail=3D0 +nbuildfail=3D0 +nrunfail=3D0 nsuccess=3D0 -faillist=3D +ncpus=3D0 +buildfaillist=3D +runfaillist=3D successlist=3D cursha1=3D"`git rev-parse --abbrev-ref HEAD`" ds=3D"`date +%Y.%m.%d-%H.%M.%S`-series" +DS=3D"${RES}/${ds}"; export DS startdate=3D"`date`" starttime=3D"`get_starttime`" =20 echo " --- " $scriptname $args | tee -a $T/log echo " --- Results directory: " $ds | tee -a $T/log =20 +# Do all builds. Iterate through commits within a given scenario +# because builds normally go faster from one commit to the next within a +# given scenario. In contrast, switching scenarios on each rebuild will +# often force a full rebuild due to Kconfig differences, for example, +# turning preemption on and off. Defer actual runs in order to run +# lots of them concurrently on large systems. +touch $T/torunlist for config in ${config_list} do sha_n=3D0 for sha in ${sha1_list} do sha1=3D${sha_n}.${sha} # Enable "sort -k1nr" to list commits in order. + echo echo Starting ${config}/${sha1} at `date` | tee -a $T/log - git checkout "${sha}" - time tools/testing/selftests/rcutorture/bin/kvm.sh --configs "$config" -= -datestamp "$ds/${config}/${sha1}" --duration 1 "$@" + git checkout --detach "${sha}" + tools/testing/selftests/rcutorture/bin/kvm.sh --configs "$config" --date= stamp "$ds/${config}/${sha1}" --duration 1 --build-only --trust-make "$@" curret=3D$? if test "${curret}" -ne 0 then - nfail=3D$((nfail+1)) - faillist=3D"$faillist ${config}/${sha1}(${curret})" + nbuildfail=3D$((nbuildfail+1)) + buildfaillist=3D"$buildfaillist ${config}/${sha1}(${curret})" else - nsuccess=3D$((nsuccess+1)) - successlist=3D"$successlist ${config}/${sha1}" - # Successful run, so remove large files. - rm -f ${RCUTORTURE}/$ds/${config}/${sha1}/{vmlinux,bzImage,System.map,M= odule.symvers} + batchncpus=3D"`grep -v "^# cpus=3D" "${DS}/${config}/${sha1}/batches" |= awk '{ sum +=3D $3 } END { print sum }'`" + echo run_one_qemu ${sha_n} ${config}/${sha1} ${batchncpus} >> $T/torunl= ist + if test "${ncpus}" -eq 0 + then + ncpus=3D"`grep "^# cpus=3D" "${DS}/${config}/${sha1}/batches" | sed -e= 's/^# cpus=3D//'`" + case "${ncpus}" in + ^[0-9]*$) + ;; + *) + ncpus=3D0 + ;; + esac + fi fi if test "${ret}" -eq 0 then @@ -95,22 +117,132 @@ do sha_n=3D$((sha_n+1)) done done + +# If the user did not specify the number of CPUs, use them all. +if test "${ncpus}" -eq 0 +then + ncpus=3D"`identify_qemu_vcpus`" +fi + +cpusused=3D0 +touch $T/successlistfile +touch $T/faillistfile + +# do_run_one_qemu ds resultsdir qemu_curout +# +# Start the specified qemu run and record its success or failure. +do_run_one_qemu () { + local ret + local ds=3D"$1" + local resultsdir=3D"$2" + local qemu_curout=3D"$3" + + tools/testing/selftests/rcutorture/bin/kvm-again.sh "${DS}/${resultsdir}"= --link inplace-force > ${qemu_curout} 2>&1 + ret=3D$? + if test "${ret}" -eq 0 + then + echo ${resultsdir} >> $T/successlistfile + # Successful run, so remove large files. + rm -f ${DS}/${resultsdir}/{vmlinux,bzImage,System.map,Module.symvers} + else + echo "${resultsdir}(${ret})" >> $T/faillistfile + fi +} + +# cleanup_qemu_batch batchncpus +# +# Update success and failure lists, files, and counts at the end of +# a batch. +cleanup_qemu_batch () { + local batchncpus=3D"$1" + + echo Waiting, cpusused=3D${cpusused}, ncpus=3D${ncpus} `date` | tee -a $T= /log + wait + cpusused=3D"${batchncpus}" + nsuccessbatch=3D"`wc -l $T/successlistfile | awk '{ print $1 }'`" + nsuccess=3D$((nsuccess+nsuccessbatch)) + successlist=3D"$successlist `cat $T/successlistfile`" + rm $T/successlistfile + touch $T/successlistfile + nfailbatch=3D"`wc -l $T/faillistfile | awk '{ print $1 }'`" + nrunfail=3D$((nrunfail+nfailbatch)) + runfaillist=3D"$runfaillist `cat $T/faillistfile`" + rm $T/faillistfile + touch $T/faillistfile +} + +# run_one_qemu sha_n config/sha1 batchncpus +# +# Launch into the background the sha_n-th qemu job whose results directory +# is config/sha1 and which uses batchncpus CPUs. Once we reach a job that +# would overflow the number of available CPUs, wait for the previous jobs +# to complete and record their results. +run_one_qemu () { + local sha_n=3D"$1" + local config_sha1=3D"$2" + local batchncpus=3D"$3" + local qemu_curout + + cpusused=3D$((cpusused+batchncpus)) + if test "${cpusused}" -gt $ncpus + then + cleanup_qemu_batch "${batchncpus}" + fi + echo Starting ${config_sha1} using ${batchncpus} CPUs `date` + qemu_curout=3D"${DS}/${config_sha1}/qemu-series" + do_run_one_qemu "$ds" "${config_sha1}" ${qemu_curout} & +} + +# Re-ordering the runs will mess up the affinity chosen at build time +# (among other things, over-using CPU 0), so suppress it. +TORTURE_NO_AFFINITY=3D"no-affinity"; export TORTURE_NO_AFFINITY + +# Run the kernels (if any) that built correctly. +echo | tee -a $T/log # Put a blank line between build and run messages. +. $T/torunlist +cleanup_qemu_batch "${batchncpus}" + +# Get back to initial checkout/SHA-1. git checkout "${cursha1}" =20 -echo ${nsuccess} SUCCESSES: | tee -a $T/log -echo ${successlist} | fmt | tee -a $T/log -echo | tee -a $T/log -echo ${nfail} FAILURES: | tee -a $T/log -echo ${faillist} | fmt | tee -a $T/log -if test -n "${faillist}" +# Throw away leading and trailing space characters for fmt. +successlist=3D"`echo ${successlist} | sed -e 's/^ *//' -e 's/ *$//'`" +buildfaillist=3D"`echo ${buildfaillist} | sed -e 's/^ *//' -e 's/ *$//'`" +runfaillist=3D"`echo ${runfaillist} | sed -e 's/^ *//' -e 's/ *$//'`" + +# Print lists of successes, build failures, and run failures, if any. +if test "${nsuccess}" -gt 0 +then + echo | tee -a $T/log + echo ${nsuccess} SUCCESSES: | tee -a $T/log + echo ${successlist} | fmt | tee -a $T/log +fi +if test "${nbuildfail}" -gt 0 then echo | tee -a $T/log - echo Failures across commits: | tee -a $T/log - echo ${faillist} | tr ' ' '\012' | sed -e 's,^[^/]*/,,' -e 's/([0-9]*)//'= | + echo ${nbuildfail} BUILD FAILURES: | tee -a $T/log + echo ${buildfaillist} | fmt | tee -a $T/log +fi +if test "${nrunfail}" -gt 0 +then + echo | tee -a $T/log + echo ${nrunfail} RUN FAILURES: | tee -a $T/log + echo ${runfaillist} | fmt | tee -a $T/log +fi + +# If there were build or runtime failures, map them to commits. +if test "${nbuildfail}" -gt 0 || test "${nrunfail}" -gt 0 +then + echo | tee -a $T/log + echo Build failures across commits: | tee -a $T/log + echo ${buildfaillist} | tr ' ' '\012' | sed -e 's,^[^/]*/,,' -e 's/([0-9]= *)//' | sort | uniq -c | sort -k2n | tee -a $T/log fi + +# Print run summary. +echo | tee -a $T/log echo Started at $startdate, ended at `date`, duration `get_starttime_durat= ion $starttime`. | tee -a $T/log -echo Summary: Successes: ${nsuccess} Failures: ${nfail} | tee -a $T/log -cp $T/log tools/testing/selftests/rcutorture/res/${ds} +echo Summary: Successes: ${nsuccess} " "Build Failures: ${nbuildfail} " "R= untime Failures: ${nrunfail}| tee -a $T/log +cp $T/log ${DS} =20 exit "${ret}" --=20 2.40.1 From nobody Sun Feb 8 20:58:48 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9DD9029E0E7; Mon, 29 Dec 2025 19:14:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767035640; cv=none; b=KnH9yuBYEGFhOsLAUURPSw6WdM+OUab94H73E4OcsSKzarLBdm4lCmgj2IqgBp9rH1+2XPILZsO/+9+9o6BlqgthwcM7QLlp05jygJBT/wcBVcwwJhizAsoLlvVUijJapwmYIsUs2VU9yQwmxTP4z/QLo6d6zzIyx6FH2KA1qas= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767035640; c=relaxed/simple; bh=UTOxcHLmC9q+RICTp69cbr7jLQ1LWnbzy9IJr39Ft4M=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=kONaHoC0Y/wSGvxBMUOVUBwKTeFNZrYFa7dTLDWjBN49ge+RqupiSCmcfm1tZEf0rYilxrgvHqCX+pEccshlUawxK3UHpAukkAyUmCPs6Qq77zMKdTIr44GAONzJHZPzMmQD5lxfpo3ZLZ7QoFYi6FVr5QRSPoCbk5LWi9HDJaY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=bmzxpgZR; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="bmzxpgZR" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EE882C16AAE; Mon, 29 Dec 2025 19:13:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1767035640; bh=UTOxcHLmC9q+RICTp69cbr7jLQ1LWnbzy9IJr39Ft4M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bmzxpgZRKWD9qe7zhusEx+lcOKRc1iiHdhB0TRskeOdRVHOiSOdwRymoaQOHWFRwb 1grR1Ww/tW3gf1TILyP3wVmqPWnobNf1vzlE4lWu7t4XdB/6X/yzzbsg7B2XOqLHVp EiwNQPzcUvHiDGmHrWAdjQqHRkq1MinBZrCLqjncDDXIV2jawsZ4zpo16WUgfEK5ks Yxb1sV7rgnnEe8m8LErxcjcf8HVurxM1Nb5IQDO43LQyGlREXaT6bnOidGM8601sbU GdpHpvF4I2f0EnGre2jRErapYwe3Wng4rcghCkE8GdwiNRBVhdEU6Ygxim3WFM5AXj yXLYpFKUgclYg== Received: by paulmck-ThinkPad-P17-Gen-1.home (Postfix, from userid 1000) id 9295BCE0E29; Mon, 29 Dec 2025 11:13:59 -0800 (PST) From: "Paul E. McKenney" To: rcu@vger.kernel.org Cc: linux-kernel@vger.kernel.org, kernel-team@meta.com, rostedt@goodmis.org, "Paul E. McKenney" Subject: [PATCH v4 3/6] torture: Make kvm-series.sh give build numbers and totals Date: Mon, 29 Dec 2025 11:13:55 -0800 Message-Id: <20251229191358.693753-3-paulmck@kernel.org> X-Mailer: git-send-email 2.40.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The kvm-series.sh script can easily be convinced to do on the order of 1,000 builds, so some sort of progress indicator would be helpful. This commit therefore updates the "Starting" output lines to read as in the following example, adding the ("2 of 4"): Starting TREE01/1.7e0ad1b49057 (2 of 4) at Sat Nov 8 10:08:21 PM PST 2025 Signed-off-by: Paul E. McKenney --- tools/testing/selftests/rcutorture/bin/kvm-series.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/rcutorture/bin/kvm-series.sh b/tools/t= esting/selftests/rcutorture/bin/kvm-series.sh index d020d0672023a..29a2cd64835fd 100755 --- a/tools/testing/selftests/rcutorture/bin/kvm-series.sh +++ b/tools/testing/selftests/rcutorture/bin/kvm-series.sh @@ -32,6 +32,7 @@ then echo "$0: Repetition ('*') not allowed in config list." exit 1 fi +config_list_len=3D"`echo ${config_list} | wc -w | awk '{ print $1; }'`" =20 commit_list=3D"${2}" if test -z "${commit_list}" @@ -47,6 +48,7 @@ then exit 2 fi sha1_list=3D`cat $T/commits` +sha1_list_len=3D"`echo ${sha1_list} | wc -w | awk '{ print $1; }'`" =20 shift shift @@ -80,6 +82,8 @@ echo " --- Results directory: " $ds | tee -a $T/log # turning preemption on and off. Defer actual runs in order to run # lots of them concurrently on large systems. touch $T/torunlist +n2build=3D"$((config_list_len*sha1_list_len))" +nbuilt=3D0 for config in ${config_list} do sha_n=3D0 @@ -87,7 +91,7 @@ do do sha1=3D${sha_n}.${sha} # Enable "sort -k1nr" to list commits in order. echo - echo Starting ${config}/${sha1} at `date` | tee -a $T/log + echo Starting ${config}/${sha1} "($((nbuilt+1)) of ${n2build})" at `date= ` | tee -a $T/log git checkout --detach "${sha}" tools/testing/selftests/rcutorture/bin/kvm.sh --configs "$config" --date= stamp "$ds/${config}/${sha1}" --duration 1 --build-only --trust-make "$@" curret=3D$? @@ -115,6 +119,7 @@ do ret=3D${curret} fi sha_n=3D$((sha_n+1)) + nbuilt=3D$((nbuilt+1)) done done =20 --=20 2.40.1 From nobody Sun Feb 8 20:58:48 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4EE60296BCC; Mon, 29 Dec 2025 19:14:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767035640; cv=none; b=nacvzQnGmSKUKJjt8DggFagNzBLRmOFTvbD103XOoHOHi3mFnPMEiWkkVYrtjzIgKpfUYkFfDsvj6s8KXfudvZZOCZjZpeBCunU1ngPx44lcCPAt3j4EX1wPLcGtz6aBomTBH0yhbXAstMJ7qbhe/EbxeD/E0zgfon09Ks7kJO4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767035640; c=relaxed/simple; bh=oQj8+0yBSnI1zF4Lh9GHvRJO/uXOQNxd4ldUzP8UguQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=kPDArcycPO/sqJhbbGI7y197qyncTBZBZ6QCOSehGTpyc0ANq9GhcLdY7t1vbEMtOJTeVuyO9Qd1hObZkk4OhUzqSTVMy27xKnobaRCNQYL3IdsLfCA4BPb51Y5+liRKeANYb6RLZziRMPXxcMb+O5dOPQeUOsdhEgS2KzipF/s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=sxA+Nl2E; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="sxA+Nl2E" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1968FC19423; Mon, 29 Dec 2025 19:14:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1767035640; bh=oQj8+0yBSnI1zF4Lh9GHvRJO/uXOQNxd4ldUzP8UguQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sxA+Nl2EPiugeY8vlkJxGrtTvDGv+zLaonpDMdp7ExRItbsvlrznfKbqTymS184h2 wGayuMVMHTAWrqZd8QiDZ6hedz9LTJo7DgYmDKqXQV2YKFU2w4ylZZe/XsuQUg60Hy 5BEQwTYEnH///dp+1mf8tB0ycqnFDqiS9gYXvkqeop2044wcv7TVEerLMnwhSsI0gu 6CtldtWZ6gO9phuf0X9sIAK8QcfBKx2xt2XOz8oyl3LK2znFE595v/BLDGTwkMjJcT 69wDQ5+72ScBOpthLQcZnQwSK5iB4llRFOwcq/NDK9ts1iuaFkzfwXWYh1cwm33E0t u+DdyfsoA7nyA== Received: by paulmck-ThinkPad-P17-Gen-1.home (Postfix, from userid 1000) id 9560FCE1078; Mon, 29 Dec 2025 11:13:59 -0800 (PST) From: "Paul E. McKenney" To: rcu@vger.kernel.org Cc: linux-kernel@vger.kernel.org, kernel-team@meta.com, rostedt@goodmis.org, "Paul E. McKenney" Subject: [PATCH v4 4/6] torture: Make kvm-series.sh give run numbers and totals Date: Mon, 29 Dec 2025 11:13:56 -0800 Message-Id: <20251229191358.693753-4-paulmck@kernel.org> X-Mailer: git-send-email 2.40.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The kvm-series.sh script can easily be convinced to run on the order of 1,000 guest OSes, so some sort of progress indicator would be helpful. This commit therefore updates the "Starting" output lines to read as in the following example, adding the ("3 of 4"): Starting TREE02/1.7e0ad1b49057 using 8 CPUs (4 of 4) Sat Nov 8 10:51:06 PM = PST 2025 Signed-off-by: Paul E. McKenney --- tools/testing/selftests/rcutorture/bin/kvm-series.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/rcutorture/bin/kvm-series.sh b/tools/t= esting/selftests/rcutorture/bin/kvm-series.sh index 29a2cd64835fd..277988c3e4a20 100755 --- a/tools/testing/selftests/rcutorture/bin/kvm-series.sh +++ b/tools/testing/selftests/rcutorture/bin/kvm-series.sh @@ -132,6 +132,8 @@ fi cpusused=3D0 touch $T/successlistfile touch $T/faillistfile +n2run=3D"`wc -l $T/torunlist | awk '{ print $1; }'`" +nrun=3D0 =20 # do_run_one_qemu ds resultsdir qemu_curout # @@ -193,9 +195,10 @@ run_one_qemu () { then cleanup_qemu_batch "${batchncpus}" fi - echo Starting ${config_sha1} using ${batchncpus} CPUs `date` + echo Starting ${config_sha1} using ${batchncpus} CPUs "($((nrun+1)) of ${= n2run})" `date` qemu_curout=3D"${DS}/${config_sha1}/qemu-series" do_run_one_qemu "$ds" "${config_sha1}" ${qemu_curout} & + nrun=3D"$((nrun+1))" } =20 # Re-ordering the runs will mess up the affinity chosen at build time --=20 2.40.1 From nobody Sun Feb 8 20:58:48 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 693AD299AAC; Mon, 29 Dec 2025 19:14:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767035640; cv=none; b=SS5MFgZ1ONRjmPw6+ZWiZUNFw8RFV21JG/P2aLxZQILD+U5hJ9Q5JITKZeGBarWjvIx5w6BWXzB8XQY1/xwNj8cb4/Ifg0w8OjdFmLL29xAxl7E5geGciZ7ZdzWjKxkDG7De6504tS8pNzuKSqqwsANt3wzMTTmcpvn6CDCdf+M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767035640; c=relaxed/simple; bh=7YZdNIC0rO1kY2z4VeiAJo6ZAUYFdwgJosKft3KdMEI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ct+59oq1MBkUMJLgyqD4I1c4mv50rcDRJ3Tdje71qddvIrgxDpeSo6+zQ8UuRjpCy+OgpHT6hBrMK/1I9btjb/QT5pNADg9VJgAtAymutPlb3jAYnudUTUkmp8y+zc/5/5vXgebAOeOV+J8AIqZvqoqp/c3RIliZaGFTRqH7UGs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=gYxI7rYZ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="gYxI7rYZ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4299FC116D0; Mon, 29 Dec 2025 19:14:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1767035640; bh=7YZdNIC0rO1kY2z4VeiAJo6ZAUYFdwgJosKft3KdMEI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gYxI7rYZoe+yfh44RoqV8JAY4a6lJ1yMD7EC2R2yu4wQf7ER4gat0pvmRyIrjlEU8 9X2VihoIjuyeEV631B8Glje0Z3zasU+g/0retplmk/3VX83Tkf2bEZvXciD8mSbzC0 6sG6wbCvIMJ9/nM3kjv9JOALFbiswnCfK+Kq95hYFOEQUV5TEEb9Jkz+BihrvmJHbm 7g+qiusgv99CrCfiuRxe87S6Fl3PheBiKv1PhIig5hyz8p7cpV8oyr8OCHCIw9TVQL wSk3vAWJb2dlR3LqobJ9+dhMcIAC9eQZOSyhjOFEqCh5iAqwrYJBhNwTQWPxtxecH8 SBpeoerYL+KLA== Received: by paulmck-ThinkPad-P17-Gen-1.home (Postfix, from userid 1000) id 97D45CE1079; Mon, 29 Dec 2025 11:13:59 -0800 (PST) From: "Paul E. McKenney" To: rcu@vger.kernel.org Cc: linux-kernel@vger.kernel.org, kernel-team@meta.com, rostedt@goodmis.org, "Paul E. McKenney" Subject: [PATCH v4 5/6] torture: Make config2csv.sh properly handle comments in .boot files Date: Mon, 29 Dec 2025 11:13:57 -0800 Message-Id: <20251229191358.693753-5-paulmck@kernel.org> X-Mailer: git-send-email 2.40.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" As in strip the "#" and everything after it and *then* tokenize. Signed-off-by: Paul E. McKenney --- tools/testing/selftests/rcutorture/bin/config2csv.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/testing/selftests/rcutorture/bin/config2csv.sh b/tools/t= esting/selftests/rcutorture/bin/config2csv.sh index 0cf55f1bf6548..aeab4d6f11ad2 100755 --- a/tools/testing/selftests/rcutorture/bin/config2csv.sh +++ b/tools/testing/selftests/rcutorture/bin/config2csv.sh @@ -42,7 +42,7 @@ do grep -v '^#' < $i | grep -v '^ *$' > $T/p if test -r $i.boot then - tr -s ' ' '\012' < $i.boot | grep -v '^#' >> $T/p + sed -e 's/#.*$//' < $i.boot | tr -s ' ' '\012' >> $T/p fi sed -e 's/^[^=3D]*$/&=3D?/' < $T/p | sed -e 's/^\([^=3D]*\)=3D\(.*\)$/\tp["\1:'"$i"'"] =3D "\2";\n\tc["\1"] = =3D 1;/' >> $T/p.awk --=20 2.40.1 From nobody Sun Feb 8 20:58:48 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9DD1229DB99; Mon, 29 Dec 2025 19:14:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767035640; cv=none; b=FMeol7Vm0c2xLvVotaXUv1LrqR4+Xp4xcT0mipXT4razr2ldwEhJ6PcWhRVwSiAYFtzd7NjOwfNzmSbBKEKLuU1C7jDJMzzIyv74gmxpz2fTwlxIREO25yNRVkfRVu2+jfTx/vv6bOXRWUN3ODrE7ah2EKKAjLD+1t/k8zunCwU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767035640; c=relaxed/simple; bh=EvhGlhlfv9Y3ZizK23Gd9rpD3qZ8iEJIkdoyNj7aKmQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ZlPm+bba2EE5INQ6y84B5Km5Xu3fnUPqcHBvvoT8b3YPqft5ziLDp5RYLdfZ9hRH2qXCmLeKYkj/rwDMqqqT1YEgvOEg9oCpwa6kheYIsrWJZl0tor2yWTYgFiKXOW0zVX+6nG6H/2BEOth7XEnGfcSl7To4BF50e9d84rbHgww= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Kn0lANO/; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Kn0lANO/" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 45763C19422; Mon, 29 Dec 2025 19:14:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1767035640; bh=EvhGlhlfv9Y3ZizK23Gd9rpD3qZ8iEJIkdoyNj7aKmQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Kn0lANO/IDRNVRx97vZMYFo6eYVUZ+DJxn60k6nuntES59adowMy5PkMZeZ/2YsE7 k6qe5D+vuGQ8Rhh6zBMEj1X/KBtNHH8gNPIrfLfZvju0NgHC5RBo8/TNx0qXyFh1y4 URCyiVxDZZMkqBF+sTNB5qvUrpDTJmv38zrAXr+bhXxmqXHEASRrxgt+9Cr6CR6LuF 9nE65CTN269vjxiPmNcFlg/1yy0YLPCxwMfzmAzvn3mIcOmLM0P0lzgjnOanfKrkew 9nw03WSHMwksG6oQ0yll/ECOvhFoV2PLkyLVMYSoFynOzRJAOi26NGXxGaPX7SezLw NFTTm6GijJXxA== Received: by paulmck-ThinkPad-P17-Gen-1.home (Postfix, from userid 1000) id 9A7D5CE10F4; Mon, 29 Dec 2025 11:13:59 -0800 (PST) From: "Paul E. McKenney" To: rcu@vger.kernel.org Cc: linux-kernel@vger.kernel.org, kernel-team@meta.com, rostedt@goodmis.org, "Paul E. McKenney" Subject: [PATCH v4 6/6] torture: Include commit discription in testid.txt Date: Mon, 29 Dec 2025 11:13:58 -0800 Message-Id: <20251229191358.693753-6-paulmck@kernel.org> X-Mailer: git-send-email 2.40.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Currently, the testid.txt file in the top-level directory of the rcutorture results contains the output of "git rev-parse HEAD", which just gives the full SHA-1 of the current commit. This is followed by the output of "git status", which is further followed by the output of "git diff". This works, but is less than helpful to human readers scanning a list of commits. This commit therefore instead uses "git show --oneline --no-patch HEAD", which provides a short SHA-1, but also the names of any branches and the commit's title. Signed-off-by: Paul E. McKenney --- tools/testing/selftests/rcutorture/bin/mktestid.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/testing/selftests/rcutorture/bin/mktestid.sh b/tools/tes= ting/selftests/rcutorture/bin/mktestid.sh index 16f9907a4dae0..24f6261dab6ab 100755 --- a/tools/testing/selftests/rcutorture/bin/mktestid.sh +++ b/tools/testing/selftests/rcutorture/bin/mktestid.sh @@ -18,7 +18,7 @@ fi echo Build directory: `pwd` > ${resdir}/testid.txt if test -d .git then - echo Current commit: `git rev-parse HEAD` >> ${resdir}/testid.txt + echo Current commit: `git show --oneline --no-patch HEAD` >> ${resdir}/te= stid.txt echo >> ${resdir}/testid.txt echo ' ---' Output of "'"git status"'": >> ${resdir}/testid.txt git status >> ${resdir}/testid.txt --=20 2.40.1