x86: decouple xen alignment setting from EFI/ELF build

Introduce a new Kconfig option to pick the alignment for xen binary.
To retain original behaviour, the default pick for EFI build is 2M and
ELF build 4K.

Make the PVHSHIM build use 2M alignment for potentially better
performance.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
This commit is contained in:
Wei Liu committed 2019-03-19 14:39:42 +00:00
1 parent 8ac7d80f8d
commit a892f81dde
2 files changed
+29 -2

No files matched your search

+23
View File
@@ -137,6 +137,29 @@ config TBOOT
If unsure, say Y.
choice
prompt "Alignment of Xen image"
default XEN_ALIGN_2M if PV_SHIM_EXCLUSIVE
default XEN_ALIGN_DEFAULT
---help---
Specify alignment for Xen image.
If unsure, choose "default".
config XEN_ALIGN_DEFAULT
bool "Default alignment"
---help---
Pick alignment according to build variants.
For EFI build the default alignment is 2M. For ELF build
the default alignment is 4K due to syslinux failing to handle
the increment of image size induced by 2M alignment.
config XEN_ALIGN_2M
bool "2M alignment"
endchoice
config XEN_GUEST
def_bool n
prompt "Xen Guest"
+6 -2
View File
@@ -12,7 +12,6 @@
#define FORMAT "pei-x86-64"
#undef __XEN_VIRT_START
#define __XEN_VIRT_START __image_base__
#define SECTION_ALIGN MB(2)
#define DECL_SECTION(x) x :
ENTRY(efi_start)
@@ -20,13 +19,18 @@ ENTRY(efi_start)
#else /* !EFI */
#define FORMAT "elf64-x86-64"
#define SECTION_ALIGN PAGE_SIZE
#define DECL_SECTION(x) x : AT(ADDR(x) - __XEN_VIRT_START)
ENTRY(start_pa)
#endif /* EFI */
#if defined(CONFIG_XEN_ALIGN_2M) || defined(EFI)
# define SECTION_ALIGN MB(2)
#else
# define SECTION_ALIGN PAGE_SIZE
#endif
OUTPUT_FORMAT(FORMAT, FORMAT, FORMAT)
OUTPUT_ARCH(i386:x86-64)
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.