[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen staging] x86: decouple xen alignment setting from EFI/ELF build



commit a892f81ddecf0ad90564a4d91d520234c542b068
Author:     Wei Liu <wei.liu2@xxxxxxxxxx>
AuthorDate: Tue Mar 19 13:57:06 2019 +0000
Commit:     Wei Liu <wei.liu2@xxxxxxxxxx>
CommitDate: Tue Mar 19 14:39:42 2019 +0000

    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@xxxxxxxxxx>
    Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
---
 xen/arch/x86/Kconfig   | 23 +++++++++++++++++++++++
 xen/arch/x86/xen.lds.S |  8 ++++++--
 2 files changed, 29 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig
index 76393fd23a..4b8b07b549 100644
--- a/xen/arch/x86/Kconfig
+++ b/xen/arch/x86/Kconfig
@@ -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"
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index 6e9bda5109..cb42dc8fda 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -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)
--
generated by git-patchbot for /home/xen/git/xen.git#staging

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/xen-changelog

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.