[PATCH 11/11] xen/sysctl: wrap around sysctl hypercall

Penny Zheng posted 11 patches 3 months, 3 weeks ago
There is a newer version of this series
[PATCH 11/11] xen/sysctl: wrap around sysctl hypercall
Posted by Penny Zheng 3 months, 3 weeks 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, add help info and set default
value as y. We shall at least provide "# CONFIG_SYSCTL is not set" in preset
configs for PV shim on x86.

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
---
v4 -> v5:
- adapt to the new changes in commit "xen: introduce CONFIG_SYSCTL"
- expand help info also for PV shim
- refactor commit message
---
 xen/arch/x86/configs/pvshim_defconfig | 1 +
 xen/common/Kconfig                    | 6 +++++-
 xen/common/Makefile                   | 2 +-
 xen/include/hypercall-defs.c          | 8 ++++++--
 4 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/xen/arch/x86/configs/pvshim_defconfig b/xen/arch/x86/configs/pvshim_defconfig
index 9dc91c33e3..aab5940e62 100644
--- a/xen/arch/x86/configs/pvshim_defconfig
+++ b/xen/arch/x86/configs/pvshim_defconfig
@@ -28,3 +28,4 @@ CONFIG_EXPERT=y
 # CONFIG_GDBSX is not set
 # CONFIG_PM_OP is not set
 # CONFIG_PM_STATS is not set
+# CONFIG_SYSCTL is not set
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 65f07289dd..64865112a1 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -616,7 +616,11 @@ menu "Supported hypercall interfaces"
 	visible if EXPERT
 
 config SYSCTL
-	def_bool y
+	bool "Enable sysctl hypercall"
+	default y
+	help
+	  This option shall only be disabled on some dom0less systems, or
+	  PV shim on x86, to reduce Xen footprint.
 
 endmenu
 
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 11/11] xen/sysctl: wrap around sysctl hypercall
Posted by Jan Beulich 3 months, 3 weeks ago
On 07.07.2025 05:13, Penny Zheng wrote:
> --- a/xen/arch/x86/configs/pvshim_defconfig
> +++ b/xen/arch/x86/configs/pvshim_defconfig
> @@ -28,3 +28,4 @@ CONFIG_EXPERT=y
>  # CONFIG_GDBSX is not set
>  # CONFIG_PM_OP is not set
>  # CONFIG_PM_STATS is not set
> +# CONFIG_SYSCTL is not set

Beyond what I said in reply to patch 4, LIVEPATCH for example also shouldn't
be needed here anymore, for similarly depending on SYSCTL. You will want to
go through the entire file to check what can now be pruned off.

Jan
RE: [PATCH 11/11] xen/sysctl: wrap around sysctl hypercall
Posted by Penny, Zheng 3 months, 3 weeks ago
[Public]

> -----Original Message-----
> From: Jan Beulich <jbeulich@suse.com>
> Sent: Tuesday, July 8, 2025 9:47 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 11/11] xen/sysctl: wrap around sysctl hypercall
>
> On 07.07.2025 05:13, Penny Zheng wrote:
> > --- a/xen/arch/x86/configs/pvshim_defconfig
> > +++ b/xen/arch/x86/configs/pvshim_defconfig
> > @@ -28,3 +28,4 @@ CONFIG_EXPERT=y
> >  # CONFIG_GDBSX is not set
> >  # CONFIG_PM_OP is not set
> >  # CONFIG_PM_STATS is not set
> > +# CONFIG_SYSCTL is not set
>
> Beyond what I said in reply to patch 4, LIVEPATCH for example also shouldn't be
> needed here anymore, for similarly depending on SYSCTL. You will want to go
> through the entire file to check what can now be pruned off.
>

Understood

> Jan