In smpboot, there is no need to abstract setup_trampoline() away. Drop the
define and use bootsym_phys() directly.
In tboot, the 3 size calculations are invariant of their bootsym_phys()/__pa()
transformations, but the compiler can't tell this. Drop the tranformations,
which simplifies the compiled function.
add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-134 (-134)
Function old new delta
tboot_shutdown 620 486 -134
Total: Before=3337042, After=3336908, chg -0.00%
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Jan Beulich <JBeulich@suse.com>
CC: Wei Liu <wl@xen.org>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Lukasz Hawrylko <lukasz.hawrylko@linux.intel.com>
---
xen/arch/x86/smpboot.c | 4 +---
xen/arch/x86/tboot.c | 9 +++------
2 files changed, 4 insertions(+), 9 deletions(-)
diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c
index 911416c1e1..6904ef5771 100644
--- a/xen/arch/x86/smpboot.c
+++ b/xen/arch/x86/smpboot.c
@@ -46,8 +46,6 @@
#include <asm/tboot.h>
#include <mach_apic.h>
-#define setup_trampoline() (bootsym_phys(trampoline_realmode_entry))
-
unsigned long __read_mostly trampoline_phys;
/* representing HT siblings of each logical CPU */
@@ -545,7 +543,7 @@ static int do_boot_cpu(int apicid, int cpu)
booting_cpu = cpu;
- start_eip = setup_trampoline();
+ start_eip = bootsym_phys(trampoline_realmode_entry);
/* start_eip needs be page aligned, and below the 1M boundary. */
if ( start_eip & ~0xff000 )
diff --git a/xen/arch/x86/tboot.c b/xen/arch/x86/tboot.c
index 8263f24009..3e828fe204 100644
--- a/xen/arch/x86/tboot.c
+++ b/xen/arch/x86/tboot.c
@@ -370,16 +370,13 @@ void tboot_shutdown(uint32_t shutdown_type)
g_tboot_shared->num_mac_regions = 3;
/* S3 resume code (and other real mode trampoline code) */
g_tboot_shared->mac_regions[0].start = bootsym_phys(trampoline_start);
- g_tboot_shared->mac_regions[0].size = bootsym_phys(trampoline_end) -
- bootsym_phys(trampoline_start);
+ g_tboot_shared->mac_regions[0].size = trampoline_end - trampoline_start;
/* hypervisor .text + .rodata */
g_tboot_shared->mac_regions[1].start = (uint64_t)__pa(&_stext);
- g_tboot_shared->mac_regions[1].size = __pa(&__2M_rodata_end) -
- __pa(&_stext);
+ g_tboot_shared->mac_regions[1].size = __2M_rodata_end - _stext;
/* hypervisor .data + .bss */
g_tboot_shared->mac_regions[2].start = (uint64_t)__pa(&__2M_rwdata_start);
- g_tboot_shared->mac_regions[2].size = __pa(&__2M_rwdata_end) -
- __pa(&__2M_rwdata_start);
+ g_tboot_shared->mac_regions[2].size = __2M_rwdata_end - __2M_rwdata_start;
/*
* MAC domains and other Xen memory
--
2.11.0
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
On 09.09.2019 12:44, Andrew Cooper wrote: > In smpboot, there is no need to abstract setup_trampoline() away. Drop the > define and use bootsym_phys() directly. > > In tboot, the 3 size calculations are invariant of their bootsym_phys()/__pa() > transformations, but the compiler can't tell this. Drop the tranformations, > which simplifies the compiled function. > > add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-134 (-134) > Function old new delta > tboot_shutdown 620 486 -134 > Total: Before=3337042, After=3336908, chg -0.00% > > Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> Reviewed-by: Jan Beulich <jbeulich@suse.com> _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
© 2016 - 2024 Red Hat, Inc.