diff mbox series

x86/rcutorture move CONFIG_HYPERVISOR_GUEST to kvm-test-1-run.sh

Message ID 20240427005626.1365935-1-zhouzhouyi@gmail.com (mailing list archive)
State New
Headers show
Series x86/rcutorture move CONFIG_HYPERVISOR_GUEST to kvm-test-1-run.sh | expand

Commit Message

Zhouyi Zhou April 27, 2024, 12:56 a.m. UTC
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@gmail.com>
---
 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(-)

Comments

Paul E. McKenney April 29, 2024, 11:22 p.m. UTC | #1
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@gmail.com>

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
>
Zhouyi Zhou April 30, 2024, 12:58 a.m. UTC | #2
On Tue, Apr 30, 2024 at 7:22 AM Paul E. McKenney <paulmck@kernel.org> wrote:
>
> 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@gmail.com>
>
> 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.
Thank Paul for your great guidance and valuable advice!

I will do a thorough research on the above approaches.

Thanks again ;-)
Zhouyi
>
>                                                         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
> >
diff mbox series

Patch

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