[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v3 00/28] Disable domctl-op via CONFIG_MGMT_HYPERCALLS
It can be beneficial for some dom0less systems to further reduce Xen footprint via disabling some hypercalls handling code, which may not to be used & required in such systems. We are introducing a new single Kconfig CONFIG_MGMT_HYPERCALLS to manage such hypercalls. We are trying to disable hypercalls in the following aspects: - sysctl - domctl - hvm - physdev - platform This patch serie is only focusing on domctl-op. Different aspects will be covered in different patch serie. Features, like VM event, or paging log-dirty support, which fully rely on domctl-op, will be wrapped with CONFIG_MGMT_HYPERCALLS, to reduce Xen footprint as much as possible. It is derived from Stefano Stabellini's commit "xen: introduce kconfig options to disable hypercalls"( https://lore.kernel.org/xen-devel/20241219092917.3006174-1-Sergiy_Kibrik@xxxxxxxx) Penny Zheng (28): xen/xsm: remove redundant xsm_iomem_mapping() xen/mem_sharing: wrap hvm_copy_context_and_params() with CONFIG_MEM_SHARING xen/altp2m: move p2m_set_suppress_ve_multi() forward xen/sched: remove vcpu_set_soft_affinity() xen/sysctl: replace CONFIG_SYSCTL with CONFIG_MGMT_DOMCTL xen/x86: move domctl.o out of PV_SHIM_EXCLUSIVE xen/domctl: make MGMT_HYPERCALLS transiently def_bool xen/vm_event: introduce vm_event_is_enabled() xen/vm_event: consolidate CONFIG_VM_EVENT xen/vm_event: make VM_EVENT depend on CONFIG_MGMT_HYPERCALLS xen/xsm: wrap xsm_vm_event_control() with CONFIG_VM_EVENT xen/domctl: wrap domain_pause_by_systemcontroller() with MGMT_HYPERCALLS xen/domctl: wrap domain_soft_reset() with CONFIG_MGMT_HYPERCALLS xen/domctl: wrap domain_resume() with CONFIG_MGMT_HYPERCALLS xen/domctl: wrap domain_kill() with CONFIG_MGMT_HYPERCALLS xen/domctl: wrap domain_set_node_affinity() with CONFIG_MGMT_HYPERCALLS xen/domctl: wrap vcpu_affinity_domctl() with CONFIG_MGMT_HYPERCALLS xen/domctl: wrap sched_adjust() with CONFIG_MGMT_HYPERCALLS xen/domctl: wrap xsm_irq_permission with CONFIG_MGMT_HYPERCALLS xen/domctl: wrap arch-specific domain_set_time_offset() with CONFIG_MGMT_HYPERCALLS xen/domctl: wrap xsm_set_target() with CONFIG_MGMT_HYPERCALLS xen/domctl: wrap iommu-related domctl op with CONFIG_MGMT_HYPERCALLS xen/domctl: wrap arch_{get,set}_paging_mempool_size() with CONFIG_MGMT_HYPERCALLS xen/domctl: make CONFIG_X86_PSR depend on CONFIG_MGMT_HYPERCALLS xen/domctl: avoid unreachable codes when both MGMT_HYPERCALLS and MEM_SHARING unset xen/domctl: wrap arch-specific domctl-op with CONFIG_MGMT_HYPERCALLS xen/domctl: make HVM_PARAM_IDENT_PT conditional upon CONFIG_MGMT_HYPERCALLS xen/domctl: wrap common/domctl.c with CONFIG_MGMT_HYPERCALLS xen/Kconfig.debug | 4 +- xen/arch/arm/Kconfig | 2 +- xen/arch/arm/Makefile | 4 +- xen/arch/arm/arm32/Makefile | 2 +- xen/arch/arm/arm64/Makefile | 2 +- xen/arch/arm/domain.c | 5 + xen/arch/arm/include/asm/tee/tee.h | 2 + xen/arch/arm/mmu/p2m.c | 8 + xen/arch/arm/mpu/p2m.c | 2 + xen/arch/arm/tee/ffa.c | 4 + xen/arch/arm/tee/optee.c | 4 + xen/arch/arm/tee/tee.c | 2 + xen/arch/arm/time.c | 2 + xen/arch/ppc/stubs.c | 4 + xen/arch/riscv/stubs.c | 10 +- xen/arch/x86/Kconfig | 1 + xen/arch/x86/Makefile | 6 +- xen/arch/x86/configs/pvshim_defconfig | 2 +- xen/arch/x86/domain.c | 4 + xen/arch/x86/emul-i8254.c | 2 + xen/arch/x86/hvm/Kconfig | 1 - xen/arch/x86/hvm/Makefile | 4 +- xen/arch/x86/hvm/emulate.c | 67 +++++---- xen/arch/x86/hvm/hvm.c | 57 +++++++- xen/arch/x86/hvm/pmtimer.c | 2 + xen/arch/x86/hvm/save.c | 154 ++++++++++---------- xen/arch/x86/hvm/svm/intr.c | 2 +- xen/arch/x86/hvm/svm/svm.c | 66 +++++---- xen/arch/x86/hvm/vmx/intr.c | 2 +- xen/arch/x86/hvm/vmx/vmx.c | 80 ++++++---- xen/arch/x86/include/asm/hvm/hvm.h | 17 ++- xen/arch/x86/include/asm/mem_access.h | 9 ++ xen/arch/x86/include/asm/monitor.h | 9 ++ xen/arch/x86/include/asm/p2m.h | 2 +- xen/arch/x86/include/asm/paging.h | 2 +- xen/arch/x86/include/asm/vm_event.h | 9 ++ xen/arch/x86/mm/altp2m.c | 34 ++--- xen/arch/x86/mm/mem_sharing.c | 7 + xen/arch/x86/mm/p2m-pod.c | 2 + xen/arch/x86/mm/p2m.c | 2 + xen/arch/x86/mm/paging.c | 4 + xen/arch/x86/psr.c | 18 --- xen/arch/x86/time.c | 2 + xen/common/Kconfig | 32 ++-- xen/common/Makefile | 7 +- xen/common/argo.c | 2 + xen/common/device-tree/device-tree.c | 2 + xen/common/domain.c | 10 ++ xen/common/domctl.c | 2 +- xen/common/grant_table.c | 2 + xen/common/page_alloc.c | 8 +- xen/common/perfc.c | 4 +- xen/common/sched/arinc653.c | 11 +- xen/common/sched/core.c | 18 +-- xen/common/sched/cpupool.c | 16 +- xen/common/sched/credit.c | 10 +- xen/common/sched/credit2.c | 10 +- xen/common/sched/private.h | 10 +- xen/common/sched/rt.c | 4 + xen/common/spinlock.c | 4 +- xen/drivers/char/console.c | 4 +- xen/drivers/passthrough/amd/pci_amd_iommu.c | 8 + xen/drivers/passthrough/arm/ipmmu-vmsa.c | 8 + xen/drivers/passthrough/arm/smmu-v3.c | 4 + xen/drivers/passthrough/arm/smmu.c | 10 ++ xen/drivers/passthrough/device_tree.c | 8 + xen/drivers/passthrough/iommu.c | 2 + xen/drivers/passthrough/pci.c | 6 + xen/drivers/passthrough/vtd/iommu.c | 6 + xen/drivers/vpci/header.c | 2 +- xen/include/hypercall-defs.c | 12 +- xen/include/xen/domain.h | 4 - xen/include/xen/mem_access.h | 10 ++ xen/include/xen/vm_event.h | 7 + xen/include/xsm/dummy.h | 33 +++-- xen/include/xsm/xsm.h | 65 ++++----- xen/lib/x86/Makefile | 4 +- xen/xsm/dummy.c | 23 +-- xen/xsm/flask/hooks.c | 58 ++++---- 79 files changed, 655 insertions(+), 395 deletions(-) -- 2.34.1
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |