[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen master] xen: introduce Kconfig function alignment option
commit ca7c872c70cb58f1e4b59f8eb619ffa0ecc1ed87 Author: Roger Pau Monné <roger.pau@xxxxxxxxxx> AuthorDate: Tue Feb 27 10:17:59 2024 +0100 Commit: Jan Beulich <jbeulich@xxxxxxxx> CommitDate: Tue Feb 27 10:17:59 2024 +0100 xen: introduce Kconfig function alignment option And use it to replace CODE_ALIGN in assembly. This allows to generalize the way the code alignment gets set across all architectures. No functional change intended. Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> Reviewed-by: Michal Orzel <michal.orzel@xxxxxxx> Acked-by: Shawn Anastasio <sanastasio@xxxxxxxxxxxxxxxxxxxxx> --- xen/Kconfig | 17 +++++++++++++++++ xen/arch/arm/Kconfig | 1 + xen/arch/arm/include/asm/config.h | 3 +-- xen/arch/ppc/Kconfig | 1 + xen/arch/ppc/include/asm/config.h | 5 ----- xen/arch/riscv/Kconfig | 1 + xen/arch/riscv/include/asm/config.h | 1 - xen/arch/x86/Kconfig | 1 + xen/arch/x86/include/asm/config.h | 3 +-- xen/include/xen/linkage.h | 6 +++--- 10 files changed, 26 insertions(+), 13 deletions(-) diff --git a/xen/Kconfig b/xen/Kconfig index 134e6e68ad..1e1b041fd5 100644 --- a/xen/Kconfig +++ b/xen/Kconfig @@ -37,6 +37,23 @@ config CC_HAS_VISIBILITY_ATTRIBUTE config CC_SPLIT_SECTIONS bool +# Set code alignment. +# +# Allow setting on a boolean basis, and then convert such selection to an +# integer for the build system and code to consume more easily. +config FUNCTION_ALIGNMENT_4B + bool +config FUNCTION_ALIGNMENT_8B + bool +config FUNCTION_ALIGNMENT_16B + bool +config FUNCTION_ALIGNMENT + int + default 16 if FUNCTION_ALIGNMENT_16B + default 8 if FUNCTION_ALIGNMENT_8B + default 4 if FUNCTION_ALIGNMENT_4B + default 0 + source "arch/$(SRCARCH)/Kconfig" config DEFCONFIG_LIST diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig index 72af329564..40f834bb71 100644 --- a/xen/arch/arm/Kconfig +++ b/xen/arch/arm/Kconfig @@ -11,6 +11,7 @@ config ARM_64 config ARM def_bool y + select FUNCTION_ALIGNMENT_4B select HAS_ALTERNATIVE select HAS_DEVICE_TREE select HAS_PASSTHROUGH diff --git a/xen/arch/arm/include/asm/config.h b/xen/arch/arm/include/asm/config.h index 3b6d829197..a2e22b659d 100644 --- a/xen/arch/arm/include/asm/config.h +++ b/xen/arch/arm/include/asm/config.h @@ -53,8 +53,7 @@ /* Linkage for ARM */ #ifdef __ASSEMBLY__ -#define CODE_ALIGN 4 -#define ALIGN .balign CODE_ALIGN +#define ALIGN .balign CONFIG_FUNCTION_ALIGNMENT #define ENTRY(name) \ .globl name; \ ALIGN; \ diff --git a/xen/arch/ppc/Kconfig b/xen/arch/ppc/Kconfig index ab116ffb2a..f6a77a8200 100644 --- a/xen/arch/ppc/Kconfig +++ b/xen/arch/ppc/Kconfig @@ -1,5 +1,6 @@ config PPC def_bool y + select FUNCTION_ALIGNMENT_4B select HAS_DEVICE_TREE config PPC64 diff --git a/xen/arch/ppc/include/asm/config.h b/xen/arch/ppc/include/asm/config.h index e5d201e16c..148fb3074d 100644 --- a/xen/arch/ppc/include/asm/config.h +++ b/xen/arch/ppc/include/asm/config.h @@ -30,11 +30,6 @@ #define OPT_CONSOLE_STR "dtuart" #define INVALID_VCPU_ID MAX_VIRT_CPUS -/* Linkage for PPC */ -#ifdef __ASSEMBLY__ -#define CODE_ALIGN 4 -#endif - #define XEN_VIRT_START _AC(0xc000000000000000, UL) /* Fixed address for start of the section containing exception vectors */ diff --git a/xen/arch/riscv/Kconfig b/xen/arch/riscv/Kconfig index f382b36f6c..b4b354a778 100644 --- a/xen/arch/riscv/Kconfig +++ b/xen/arch/riscv/Kconfig @@ -1,5 +1,6 @@ config RISCV def_bool y + select FUNCTION_ALIGNMENT_16B config RISCV_64 def_bool y diff --git a/xen/arch/riscv/include/asm/config.h b/xen/arch/riscv/include/asm/config.h index 2c7f2b1ff9..c5f93e6a01 100644 --- a/xen/arch/riscv/include/asm/config.h +++ b/xen/arch/riscv/include/asm/config.h @@ -132,7 +132,6 @@ /* Linkage for RISCV */ #ifdef __ASSEMBLY__ -#define CODE_ALIGN 16 #define CODE_FILL /* empty */ #endif diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig index 1acdffc51c..01c6bea480 100644 --- a/xen/arch/x86/Kconfig +++ b/xen/arch/x86/Kconfig @@ -11,6 +11,7 @@ config X86 select ARCH_MAP_DOMAIN_PAGE select ARCH_SUPPORTS_INT128 imply CORE_PARKING + select FUNCTION_ALIGNMENT_16B select GENERIC_BUG_FRAME select HAS_ALTERNATIVE select HAS_COMPAT diff --git a/xen/arch/x86/include/asm/config.h b/xen/arch/x86/include/asm/config.h index 660246d1da..ab7288cb36 100644 --- a/xen/arch/x86/include/asm/config.h +++ b/xen/arch/x86/include/asm/config.h @@ -43,9 +43,8 @@ /* Linkage for x86 */ #ifdef __ASSEMBLY__ -#define CODE_ALIGN 16 #define CODE_FILL 0x90 -#define ALIGN .align CODE_ALIGN, CODE_FILL +#define ALIGN .align CONFIG_FUNCTION_ALIGNMENT, CODE_FILL #define ENTRY(name) \ ALIGN; \ GLOBAL(name) diff --git a/xen/include/xen/linkage.h b/xen/include/xen/linkage.h index 0997e16810..478b1d7287 100644 --- a/xen/include/xen/linkage.h +++ b/xen/include/xen/linkage.h @@ -5,7 +5,6 @@ #include <xen/macros.h> -/* CODE_ALIGN needs to be specified by every architecture. */ #ifndef CODE_FILL # define CODE_FILL ~0 #endif @@ -41,9 +40,10 @@ */ #define count_args_exp(args...) count_args(args) #if count_args_exp(CODE_FILL) -# define DO_CODE_ALIGN(align...) LASTARG(CODE_ALIGN, ## align), CODE_FILL +# define DO_CODE_ALIGN(align...) LASTARG(CONFIG_FUNCTION_ALIGNMENT, ## align), \ + CODE_FILL #else -# define DO_CODE_ALIGN(align...) LASTARG(CODE_ALIGN, ## align) +# define DO_CODE_ALIGN(align...) LASTARG(CONFIG_FUNCTION_ALIGNMENT, ## align) #endif #define FUNC(name, align...) \ -- generated by git-patchbot for /home/xen/git/xen.git#master
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |