Re: [PATCH] x86/rcutorture move CONFIG_HYPERVISOR_GUEST to kvm-test-1-run.sh

From: Paul E. McKenney
Date: Mon Apr 29 2024 - 19:22:11 EST


On Sat, Apr 27, 2024 at 12:56:26AM +0000, Zhouyi Zhou wrote:
> CONFIG_HYPERVISOR_GUEST is a x86 specific kernel option, move to
> kvm-test-1-run.sh to avoid ConfigFragment.diags in non-x86 platforms.
>
> Tested in both PPC VM of Open Source lab of Oregon State University and
> local x86_64 server.
>
> Fixes: a6fda6dab93c ("rcutorture: Tweak kvm options")
> Signed-off-by: Zhouyi Zhou <zhouzhouyi@xxxxxxxxx>

I like this general approach, but why not have something like a
CFCOMMON.arch for the various "arch"s that need it?

Better yet, I bet that there is already something somewhere in the
Linux kernel source tree that knows what hypervisor Kconfig options
each architecture needs. If so, it would be most excellent to reuse
that information instead of maintaining it separately in RCU.

Thanx, Paul

> ---
> tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh | 4 ++++
> tools/testing/selftests/rcutorture/configs/rcu/CFcommon | 1 -
> 2 files changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh b/tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh
> index b33cd8753689..75774bc70be7 100755
> --- a/tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh
> +++ b/tools/testing/selftests/rcutorture/bin/kvm-test-1-run.sh
> @@ -68,6 +68,10 @@ config_override_param "--gdb options" KcList "$TORTURE_KCONFIG_GDB_ARG"
> config_override_param "--kasan options" KcList "$TORTURE_KCONFIG_KASAN_ARG"
> config_override_param "--kcsan options" KcList "$TORTURE_KCONFIG_KCSAN_ARG"
> config_override_param "--kconfig argument" KcList "$TORTURE_KCONFIG_ARG"
> +if uname -a | grep -q x86
> +then
> + config_override_param "x86 specific option" KcList "CONFIG_HYPERVISOR_GUEST=y"
> +fi
> cp $T/KcList $resdir/ConfigFragment
>
> base_resdir=`echo $resdir | sed -e 's/\.[0-9]\+$//'`
> diff --git a/tools/testing/selftests/rcutorture/configs/rcu/CFcommon b/tools/testing/selftests/rcutorture/configs/rcu/CFcommon
> index 0e92d85313aa..cf0387ae5358 100644
> --- a/tools/testing/selftests/rcutorture/configs/rcu/CFcommon
> +++ b/tools/testing/selftests/rcutorture/configs/rcu/CFcommon
> @@ -1,6 +1,5 @@
> CONFIG_RCU_TORTURE_TEST=y
> CONFIG_PRINTK_TIME=y
> -CONFIG_HYPERVISOR_GUEST=y
> CONFIG_PARAVIRT=y
> CONFIG_KVM_GUEST=y
> CONFIG_KCSAN_ASSUME_PLAIN_WRITES_ATOMIC=n
> --
> 2.34.1
>