diff options
author | Paul E. McKenney <paulmck@kernel.org> | 2025-05-16 14:37:08 -0700 |
---|---|---|
committer | Paul E. McKenney <paulmck@kernel.org> | 2025-05-16 14:37:08 -0700 |
commit | 671fe0da0f99ba69510db56a71dbac82b233cea8 (patch) | |
tree | 9e6465fec6ecc59a03a7a287567d4cdd48a82de4 | |
parent | 9aada374efa210329838d35662956c40524d1378 (diff) | |
download | linux-rcu-dev.tar.gz |
rcutorture: Build with CONFIG_RCU_TORTURE_TEST_CHK_RDR_STATE=y for KCSANdev
The RCU_TORTURE_TEST_CHK_RDR_STATE Kconfig option is used for
low-level debugging of rcutorture's generation of overlapping and
nested RCU readers. It incurs significant overhead, and is thus not
to be used lightly. But if it is not tested regularly, it won't
be there when it is needed. On the other hand, KCSAN's overhead
is also non-trivial. This commit therefore builds KCSAN kernels
CONFIG_RCU_TORTURE_TEST_CHK_RDR_STATE=y, but only for the --d0-rcutorture
case.
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
-rwxr-xr-x | tools/testing/selftests/rcutorture/bin/torture.sh | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/tools/testing/selftests/rcutorture/bin/torture.sh b/tools/testing/selftests/rcutorture/bin/torture.sh index 8154411257f2a8..ed59bd43d4f889 100755 --- a/tools/testing/selftests/rcutorture/bin/torture.sh +++ b/tools/testing/selftests/rcutorture/bin/torture.sh @@ -394,7 +394,12 @@ function torture_set { kcsan_kmake_tag="--kmake-args" cur_kcsan_kmake_args="$kcsan_kmake_args" fi - torture_one "$@" --kconfig "CONFIG_DEBUG_LOCK_ALLOC=y CONFIG_PROVE_LOCKING=y ${kcsan_expert} CONFIG_RCU_TORTURE_TEST_CHK_RDR_STATE=y" $kcsan_kmake_tag $cur_kcsan_kmake_args --kcsan + chk_rdr_state= + if test "${flavor}" = rcutorture + then + chk_rdr_state="CONFIG_RCU_TORTURE_TEST_CHK_RDR_STATE=y" + fi + torture_one "$@" --kconfig "CONFIG_DEBUG_LOCK_ALLOC=y CONFIG_PROVE_LOCKING=y ${kcsan_expert} ${chk_rdr_state}" $kcsan_kmake_tag $cur_kcsan_kmake_args --kcsan mv $T/last-resdir $T/last-resdir-kcsan || : fi } |