[PATCH v4 20/20] xen/sysctl: wrap around sysctl hypercall

Penny Zheng posted 20 patches 5 months ago
There is a newer version of this series
[PATCH v4 20/20] xen/sysctl: wrap around sysctl hypercall
Posted by Penny Zheng 5 months ago
From: Stefano Stabellini <sstabellini@kernel.org>

Wrap sysctl hypercall def and sysctl.o with CONFIG_SYSCTL, and since
PV_SHIM_EXCLUSIVE needs sorting in the future, we move them out of
PV_SHIM_EXCLUSIVE condition at the same time.

We need to make SYSCTL with prompt back and state unsetting SYSCTL in
pvshim_defconfig to explicitly make it unavailable for PV shim.

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
Signed-off-by: Sergiy Kibrik <Sergiy_Kibrik@epam.com>
Signed-off-by: Penny Zheng <Penny.Zheng@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
v1 -> v2:
- remove all transient "#ifdef CONFIG_SYSCTL"-s in sysctl.c
---
v2 -> v3:
- move out of CONFIG_PV_SHIM_EXCLUSIVE condition
---
v3 -> v4:
- make SYSCTL with prompt
- state unsetting SYSCTL in pvshim_defconfig
---
 xen/arch/x86/configs/pvshim_defconfig | 1 +
 xen/common/Kconfig                    | 2 +-
 xen/common/Makefile                   | 2 +-
 xen/include/hypercall-defs.c          | 8 ++++++--
 4 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/configs/pvshim_defconfig b/xen/arch/x86/configs/pvshim_defconfig
index 6f652e145e..7d0cd45493 100644
--- a/xen/arch/x86/configs/pvshim_defconfig
+++ b/xen/arch/x86/configs/pvshim_defconfig
@@ -31,3 +31,4 @@ CONFIG_EXPERT=y
 # HYPERV_HYPERV_GUEST is not set
 # CONFIG_HVM is not set
 # CONFIG_VGA is not set
+# CONFIG_SYSCTL is not set
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index e3b6fd6ec4..f85593a9db 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -585,7 +585,7 @@ menu "Supported hypercall interfaces"
 
 config SYSCTL
 	bool "Enable sysctl hypercall"
-	def_bool y
+	default y
 	help
 	  This option shall only be disabled on some dom0less systems,
 	  to reduce Xen footprint.
diff --git a/xen/common/Makefile b/xen/common/Makefile
index 98f0873056..15ab048244 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -49,6 +49,7 @@ obj-y += spinlock.o
 obj-$(CONFIG_STACK_PROTECTOR) += stack-protector.o
 obj-y += stop_machine.o
 obj-y += symbols.o
+obj-$(CONFIG_SYSCTL) += sysctl.o
 obj-y += tasklet.o
 obj-y += time.o
 obj-y += timer.o
@@ -70,7 +71,6 @@ obj-$(CONFIG_COMPAT) += $(addprefix compat/,domain.o memory.o multicall.o xlat.o
 ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)
 obj-y += domctl.o
 obj-$(CONFIG_VM_EVENT) += monitor.o
-obj-y += sysctl.o
 endif
 
 extra-y := symbols-dummy.o
diff --git a/xen/include/hypercall-defs.c b/xen/include/hypercall-defs.c
index 7720a29ade..c1081d87a2 100644
--- a/xen/include/hypercall-defs.c
+++ b/xen/include/hypercall-defs.c
@@ -194,8 +194,10 @@ kexec_op(unsigned long op, void *uarg)
 #ifdef CONFIG_IOREQ_SERVER
 dm_op(domid_t domid, unsigned int nr_bufs, xen_dm_op_buf_t *bufs)
 #endif
-#ifndef CONFIG_PV_SHIM_EXCLUSIVE
+#ifdef CONFIG_SYSCTL
 sysctl(xen_sysctl_t *u_sysctl)
+#endif
+#ifndef CONFIG_PV_SHIM_EXCLUSIVE
 domctl(xen_domctl_t *u_domctl)
 paging_domctl_cont(xen_domctl_t *u_domctl)
 platform_op(xen_platform_op_t *u_xenpf_op)
@@ -273,8 +275,10 @@ physdev_op                         compat   do       hvm      hvm      do_arm
 #ifdef CONFIG_HVM
 hvm_op                             do       do       do       do       do
 #endif
-#ifndef CONFIG_PV_SHIM_EXCLUSIVE
+#ifdef CONFIG_SYSCTL
 sysctl                             do       do       do       do       do
+#endif
+#ifndef CONFIG_PV_SHIM_EXCLUSIVE
 domctl                             do       do       do       do       do
 #endif
 #ifdef CONFIG_KEXEC
-- 
2.34.1
Re: [PATCH v4 20/20] xen/sysctl: wrap around sysctl hypercall
Posted by Jan Beulich 4 months, 3 weeks ago
On 28.05.2025 11:17, Penny Zheng wrote:
> From: Stefano Stabellini <sstabellini@kernel.org>
> 
> Wrap sysctl hypercall def and sysctl.o with CONFIG_SYSCTL, and since
> PV_SHIM_EXCLUSIVE needs sorting in the future, we move them out of
> PV_SHIM_EXCLUSIVE condition at the same time.
> 
> We need to make SYSCTL with prompt back and state unsetting SYSCTL in
> pvshim_defconfig to explicitly make it unavailable for PV shim.

I'm struggling with this sentence. but nevertheless it seems pretty
clear that what the latter half of the sentence says is not the effect
of ...

> --- a/xen/arch/x86/configs/pvshim_defconfig
> +++ b/xen/arch/x86/configs/pvshim_defconfig
> @@ -31,3 +31,4 @@ CONFIG_EXPERT=y
>  # HYPERV_HYPERV_GUEST is not set
>  # CONFIG_HVM is not set
>  # CONFIG_VGA is not set
> +# CONFIG_SYSCTL is not set

... this change. The option is still going to be available; it's just
that the preset is "off" now.

Jan
RE: [PATCH v4 20/20] xen/sysctl: wrap around sysctl hypercall
Posted by Penny, Zheng 4 months, 2 weeks ago
[Public]

> -----Original Message-----
> From: Jan Beulich <jbeulich@suse.com>
> Sent: Tuesday, June 10, 2025 9:53 PM
> To: Penny, Zheng <penny.zheng@amd.com>
> Cc: Huang, Ray <Ray.Huang@amd.com>; Stefano Stabellini
> <sstabellini@kernel.org>; Andrew Cooper <andrew.cooper3@citrix.com>; Roger
> Pau Monné <roger.pau@citrix.com>; Anthony PERARD
> <anthony.perard@vates.tech>; Orzel, Michal <Michal.Orzel@amd.com>; Julien
> Grall <julien@xen.org>; Stabellini, Stefano <stefano.stabellini@amd.com>; Sergiy
> Kibrik <Sergiy_Kibrik@epam.com>; xen-devel@lists.xenproject.org
> Subject: Re: [PATCH v4 20/20] xen/sysctl: wrap around sysctl hypercall
>
> On 28.05.2025 11:17, Penny Zheng wrote:
> > From: Stefano Stabellini <sstabellini@kernel.org>
> >
> > Wrap sysctl hypercall def and sysctl.o with CONFIG_SYSCTL, and since
> > PV_SHIM_EXCLUSIVE needs sorting in the future, we move them out of
> > PV_SHIM_EXCLUSIVE condition at the same time.
> >
> > We need to make SYSCTL with prompt back and state unsetting SYSCTL in
> > pvshim_defconfig to explicitly make it unavailable for PV shim.
>
> I'm struggling with this sentence. but nevertheless it seems pretty clear that what
> the latter half of the sentence says is not the effect of ...

How about “
We shall add "#CONFIG_SYSCTL is not set" in pvshim_defconfig to at least provide
correct preset for PV shim
"

>
> > --- a/xen/arch/x86/configs/pvshim_defconfig
> > +++ b/xen/arch/x86/configs/pvshim_defconfig
> > @@ -31,3 +31,4 @@ CONFIG_EXPERT=y
> >  # HYPERV_HYPERV_GUEST is not set
> >  # CONFIG_HVM is not set
> >  # CONFIG_VGA is not set
> > +# CONFIG_SYSCTL is not set
>
> ... this change. The option is still going to be available; it's just that the preset is "off"
> now.
>
> Jan