Message ID | 8d35ec8373b65bca2fe471eac7a17cb2a98db3fc.1741687645.git.Sergiy_Kibrik@epam.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | make build of vm_event/mem_access/monitor optional | expand |
On 11.03.2025 11:23, Sergiy Kibrik wrote: > --- a/xen/common/Kconfig > +++ b/xen/common/Kconfig > @@ -92,7 +92,7 @@ config HAS_VMAP > config MEM_ACCESS_ALWAYS_ON > bool > > -config MEM_ACCESS > +config VM_EVENT > def_bool MEM_ACCESS_ALWAYS_ON > prompt "Memory Access and VM events" if !MEM_ACCESS_ALWAYS_ON > depends on HVM I still don't see why we would then stick to MEM_ACCESS_ALWAYS_ON as a name for the sibling option. Jan
On Tue, Mar 11, 2025 at 8:01 AM Jan Beulich <jbeulich@suse.com> wrote: > > On 11.03.2025 11:23, Sergiy Kibrik wrote: > > --- a/xen/common/Kconfig > > +++ b/xen/common/Kconfig > > @@ -92,7 +92,7 @@ config HAS_VMAP > > config MEM_ACCESS_ALWAYS_ON > > bool > > > > -config MEM_ACCESS > > +config VM_EVENT > > def_bool MEM_ACCESS_ALWAYS_ON > > prompt "Memory Access and VM events" if !MEM_ACCESS_ALWAYS_ON > > depends on HVM > > I still don't see why we would then stick to MEM_ACCESS_ALWAYS_ON as a name > for the sibling option. I'm not opposed to renaming it but it's also not something I see much value in doing. It's not used anywhere in the code, it's purely used in the config selector to mark that on x86 the vm_event/mem_access/monitor bits are not setup to be compiled-out. Tamas
11.03.25 14:01, Jan Beulich: > On 11.03.2025 11:23, Sergiy Kibrik wrote: >> --- a/xen/common/Kconfig >> +++ b/xen/common/Kconfig >> @@ -92,7 +92,7 @@ config HAS_VMAP >> config MEM_ACCESS_ALWAYS_ON >> bool >> >> -config MEM_ACCESS >> +config VM_EVENT >> def_bool MEM_ACCESS_ALWAYS_ON >> prompt "Memory Access and VM events" if !MEM_ACCESS_ALWAYS_ON >> depends on HVM > > I still don't see why we would then stick to MEM_ACCESS_ALWAYS_ON as a name > for the sibling option. > as HVM requires mem-access to be enabled I felt like it should be kept as is -- to hint that it is mem-access that ties vm_event to hvm. -Sergiy
On 11.03.2025 14:41, Sergiy Kibrik wrote: > 11.03.25 14:01, Jan Beulich: >> On 11.03.2025 11:23, Sergiy Kibrik wrote: >>> --- a/xen/common/Kconfig >>> +++ b/xen/common/Kconfig >>> @@ -92,7 +92,7 @@ config HAS_VMAP >>> config MEM_ACCESS_ALWAYS_ON >>> bool >>> >>> -config MEM_ACCESS >>> +config VM_EVENT >>> def_bool MEM_ACCESS_ALWAYS_ON >>> prompt "Memory Access and VM events" if !MEM_ACCESS_ALWAYS_ON >>> depends on HVM >> >> I still don't see why we would then stick to MEM_ACCESS_ALWAYS_ON as a name >> for the sibling option. > > as HVM requires mem-access to be enabled If that was indeed the case, ... > I felt like it should be kept > as is -- to hint that it is mem-access that ties vm_event to hvm. ... I'd agree. It was my understanding though that MEM_ACCESS_ALWAYS_ON only exists because when Arm support was added no-one wanted to take the time to make mem-access properly optional on x86. Jan
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml index 034d6d9c3a..b6383c4fc8 100644 --- a/automation/gitlab-ci/build.yaml +++ b/automation/gitlab-ci/build.yaml @@ -744,7 +744,7 @@ debian-12-riscv64-gcc: CONFIG_EXPERT=y CONFIG_GRANT_TABLE=n CONFIG_LIVEPATCH=n - CONFIG_MEM_ACCESS=n + CONFIG_VM_EVENT=n CONFIG_QEMU_PLATFORM=y CONFIG_XSM=n diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile index fb0948f067..3bd5125e64 100644 --- a/xen/arch/arm/Makefile +++ b/xen/arch/arm/Makefile @@ -38,7 +38,7 @@ obj-y += irq.o obj-y += kernel.init.o obj-$(CONFIG_LIVEPATCH) += livepatch.o obj-$(CONFIG_LLC_COLORING) += llc-coloring.o -obj-$(CONFIG_MEM_ACCESS) += mem_access.o +obj-$(CONFIG_VM_EVENT) += mem_access.o obj-y += mm.o obj-y += monitor.o obj-y += p2m.o diff --git a/xen/arch/arm/configs/tiny64_defconfig b/xen/arch/arm/configs/tiny64_defconfig index cc6d93f2f8..469a1eb9f9 100644 --- a/xen/arch/arm/configs/tiny64_defconfig +++ b/xen/arch/arm/configs/tiny64_defconfig @@ -5,7 +5,7 @@ CONFIG_ARM=y # Architecture Features # # CONFIG_GICV3 is not set -# CONFIG_MEM_ACCESS is not set +# CONFIG_VM_EVENT is not set # CONFIG_SBSA_VUART_CONSOLE is not set # diff --git a/xen/arch/arm/include/asm/mem_access.h b/xen/arch/arm/include/asm/mem_access.h index abac8032fc..d42f28e8b7 100644 --- a/xen/arch/arm/include/asm/mem_access.h +++ b/xen/arch/arm/include/asm/mem_access.h @@ -37,7 +37,7 @@ static inline bool p2m_mem_access_sanity_check(struct domain *d) * Send mem event based on the access. Boolean return value indicates if trap * needs to be injected into guest. */ -#ifdef CONFIG_MEM_ACCESS +#ifdef CONFIG_VM_EVENT bool p2m_mem_access_check(paddr_t gpa, vaddr_t gla, const struct npfec npfec); struct page_info* @@ -58,7 +58,7 @@ p2m_mem_access_check_and_get_page(vaddr_t gva, unsigned long flag, return NULL; } -#endif /*CONFIG_MEM_ACCESS*/ +#endif /* CONFIG_VM_EVENT */ #endif /* _ASM_ARM_MEM_ACCESS_H */ /* diff --git a/xen/arch/ppc/configs/ppc64_defconfig b/xen/arch/ppc/configs/ppc64_defconfig index 4924d881a2..d6aaf772e7 100644 --- a/xen/arch/ppc/configs/ppc64_defconfig +++ b/xen/arch/ppc/configs/ppc64_defconfig @@ -1,6 +1,6 @@ # CONFIG_GRANT_TABLE is not set # CONFIG_SPECULATIVE_HARDEN_ARRAY is not set -# CONFIG_MEM_ACCESS is not set +# CONFIG_VM_EVENT is not set CONFIG_PPC64=y CONFIG_DEBUG=y diff --git a/xen/arch/riscv/configs/tiny64_defconfig b/xen/arch/riscv/configs/tiny64_defconfig index bb3ae26a44..2399f7b918 100644 --- a/xen/arch/riscv/configs/tiny64_defconfig +++ b/xen/arch/riscv/configs/tiny64_defconfig @@ -1,6 +1,6 @@ # CONFIG_BOOT_TIME_CPUPOOLS is not set # CONFIG_GRANT_TABLE is not set -# CONFIG_MEM_ACCESS is not set +# CONFIG_VM_EVENT is not set # CONFIG_COVERAGE is not set # CONFIG_LIVEPATCH is not set # CONFIG_XSM is not set diff --git a/xen/arch/x86/mm/Makefile b/xen/arch/x86/mm/Makefile index 0345388359..960f6e8409 100644 --- a/xen/arch/x86/mm/Makefile +++ b/xen/arch/x86/mm/Makefile @@ -4,7 +4,7 @@ obj-$(CONFIG_HVM) += hap/ obj-$(CONFIG_ALTP2M) += altp2m.o obj-$(CONFIG_HVM) += guest_walk_2.o guest_walk_3.o guest_walk_4.o obj-$(CONFIG_SHADOW_PAGING) += guest_walk_4.o -obj-$(CONFIG_MEM_ACCESS) += mem_access.o +obj-$(CONFIG_VM_EVENT) += mem_access.o obj-$(CONFIG_MEM_PAGING) += mem_paging.o obj-$(CONFIG_MEM_SHARING) += mem_sharing.o obj-$(CONFIG_HVM) += nested.o diff --git a/xen/common/Kconfig b/xen/common/Kconfig index 6166327f4d..a6aa2c5c14 100644 --- a/xen/common/Kconfig +++ b/xen/common/Kconfig @@ -92,7 +92,7 @@ config HAS_VMAP config MEM_ACCESS_ALWAYS_ON bool -config MEM_ACCESS +config VM_EVENT def_bool MEM_ACCESS_ALWAYS_ON prompt "Memory Access and VM events" if !MEM_ACCESS_ALWAYS_ON depends on HVM diff --git a/xen/common/Makefile b/xen/common/Makefile index cba3b32733..b71d4b3efa 100644 --- a/xen/common/Makefile +++ b/xen/common/Makefile @@ -26,7 +26,7 @@ obj-$(CONFIG_KEXEC) += kexec.o obj-$(CONFIG_KEXEC) += kimage.o obj-$(CONFIG_LIVEPATCH) += livepatch.o livepatch_elf.o obj-$(CONFIG_LLC_COLORING) += llc-coloring.o -obj-$(CONFIG_MEM_ACCESS) += mem_access.o +obj-$(CONFIG_VM_EVENT) += mem_access.o obj-y += memory.o obj-y += multicall.o obj-y += notifier.o diff --git a/xen/common/domctl.c b/xen/common/domctl.c index b897ca8723..bfe2e1f9f0 100644 --- a/xen/common/domctl.c +++ b/xen/common/domctl.c @@ -809,7 +809,7 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl) copyback = true; break; -#ifdef CONFIG_MEM_ACCESS +#ifdef CONFIG_VM_EVENT case XEN_DOMCTL_set_access_required: if ( unlikely(current->domain == d) ) /* no domain_pause() */ ret = -EPERM; diff --git a/xen/include/xen/mem_access.h b/xen/include/xen/mem_access.h index 2231341b5d..4de651038d 100644 --- a/xen/include/xen/mem_access.h +++ b/xen/include/xen/mem_access.h @@ -33,7 +33,7 @@ */ struct vm_event_st; -#ifdef CONFIG_MEM_ACCESS +#ifdef CONFIG_VM_EVENT #include <asm/mem_access.h> #endif @@ -99,7 +99,7 @@ long p2m_set_mem_access_multi(struct domain *d, int p2m_get_mem_access(struct domain *d, gfn_t gfn, xenmem_access_t *access, unsigned int altp2m_idx); -#ifdef CONFIG_MEM_ACCESS +#ifdef CONFIG_VM_EVENT int mem_access_memop(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(xen_mem_access_op_t) arg); #else @@ -109,7 +109,7 @@ int mem_access_memop(unsigned long cmd, { return -ENOSYS; } -#endif /* CONFIG_MEM_ACCESS */ +#endif /* CONFIG_VM_EVENT */ #endif /* _XEN_MEM_ACCESS_H */ diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h index a8d06de6b0..9227205fcd 100644 --- a/xen/include/xsm/dummy.h +++ b/xen/include/xsm/dummy.h @@ -647,7 +647,7 @@ static XSM_INLINE int cf_check xsm_vm_event_control( return xsm_default_action(action, current->domain, d); } -#ifdef CONFIG_MEM_ACCESS +#ifdef CONFIG_VM_EVENT static XSM_INLINE int cf_check xsm_mem_access(XSM_DEFAULT_ARG struct domain *d) { XSM_ASSERT_ACTION(XSM_DM_PRIV); diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h index 8c33b055fc..24acc16125 100644 --- a/xen/include/xsm/xsm.h +++ b/xen/include/xsm/xsm.h @@ -153,7 +153,7 @@ struct xsm_ops { int (*vm_event_control)(struct domain *d, int mode, int op); -#ifdef CONFIG_MEM_ACCESS +#ifdef CONFIG_VM_EVENT int (*mem_access)(struct domain *d); #endif @@ -637,7 +637,7 @@ static inline int xsm_vm_event_control( return alternative_call(xsm_ops.vm_event_control, d, mode, op); } -#ifdef CONFIG_MEM_ACCESS +#ifdef CONFIG_VM_EVENT static inline int xsm_mem_access(xsm_default_t def, struct domain *d) { return alternative_call(xsm_ops.mem_access, d); diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c index ce6fbdc6c5..93fbfc43cc 100644 --- a/xen/xsm/dummy.c +++ b/xen/xsm/dummy.c @@ -111,7 +111,7 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = { .vm_event_control = xsm_vm_event_control, -#ifdef CONFIG_MEM_ACCESS +#ifdef CONFIG_VM_EVENT .mem_access = xsm_mem_access, #endif diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c index 389707a164..6a53487ea4 100644 --- a/xen/xsm/flask/hooks.c +++ b/xen/xsm/flask/hooks.c @@ -1362,7 +1362,7 @@ static int cf_check flask_vm_event_control(struct domain *d, int mode, int op) return current_has_perm(d, SECCLASS_DOMAIN2, DOMAIN2__VM_EVENT); } -#ifdef CONFIG_MEM_ACCESS +#ifdef CONFIG_VM_EVENT static int cf_check flask_mem_access(struct domain *d) { return current_has_perm(d, SECCLASS_DOMAIN2, DOMAIN2__MEM_ACCESS); @@ -1955,7 +1955,7 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = { .vm_event_control = flask_vm_event_control, -#ifdef CONFIG_MEM_ACCESS +#ifdef CONFIG_VM_EVENT .mem_access = flask_mem_access, #endif