acrn-hypervisor/hypervisor/include/arch/x86
Sainath Grandhi 8ffe6fc67a hv: Reserve space for VMs' EPT 4k pages after boot
As ACRN prepares to support servers with large amounts of memory
current logic to allocate space for 4K pages of EPT at compile time
will increase the size of .bss section of ACRN binary.

Bootloaders could run into a situation where they cannot
find enough contiguous space to load ACRN binary under 4GB,
which is typically heavily fragmented with E820 types Reserved,
ACPI data, 32-bit PCI hole etc.

This patch does the following
1) Works only for "direct" mode of vboot
2) reserves space for 4K pages of EPT, after boot by parsing
platform E820 table, for all types of VMs.

Size comparison:

w/o patch
Size of DRAM            Size of .bss
48 GB                   0xe1bbc98 (~226 MB)
128 GB                  0x222abc98 (~548 MB)

w/ patch
Size of DRAM            Size of .bss
48 GB                   0x1991c98 (~26 MB)
128 GB                  0x1a81c98 (~28 MB)

Tracked-On: #4563
Signed-off-by: Sainath Grandhi <sainath.grandhi@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2020-04-01 21:13:37 +08:00
..
boot hv: fixup relocation delta for symbols belong to entry section 2020-03-06 08:27:46 +08:00
guest hv: vmtrr: remove vcpu structure pointer from vmtrr 2020-03-31 10:57:47 +08:00
lib hv: Add a helper to account bitmap weight 2019-09-24 11:58:45 +08:00
apicreg.h HV: fix violations touched type conversion 2019-07-11 09:16:09 +08:00
board.h HV: move create_sos_vm_e820 to ve820.c 2020-03-12 14:56:34 +08:00
cpu_caps.h hv:enable gpu iommu except APL platforms 2020-02-24 11:47:10 +08:00
cpu.h hv: xsave: move assembler to individual function 2020-02-28 17:55:06 +08:00
cpufeatures.h HV: Generalize RDT infrastructure and fix RDT 2020-02-27 10:44:07 +08:00
cpuid.h hv: cpuid: remove cpuid() 2020-03-25 13:26:58 +08:00
default_acpi_info.h hv: emulate ACPI reset register for Service OS guest 2019-05-15 11:20:12 +08:00
e820.h hv: Reserve space for VMs' EPT 4k pages after boot 2020-04-01 21:13:37 +08:00
gdt.h hv: coding style: remove no real declaration for external variable 2018-12-20 20:20:08 +08:00
host_pm.h pm: S5: update the system shutdown logical in ACRN 2019-12-23 15:15:09 +08:00
idt.h hv:cleanup header files for arch folder 2019-02-22 13:14:36 +08:00
init.h HV: Add prefix 'p' before 'cpu' to physical cpu related functions 2019-04-24 10:50:28 +08:00
io.h hv:modulization for IO Emulation 2019-01-21 13:49:54 +08:00
ioapic.h hv: vioapic init for SOS VM on platforms with multiple IO-APICs 2020-03-25 09:36:18 +08:00
irq.h hv: rename VECTOR_XXX and XXX_IRQ Macros 2020-01-14 10:21:23 +08:00
lapic.h HV: clean up redundant macro in lapic.h 2019-12-27 12:27:08 +08:00
mmu.h HV: correct ept page array usage 2020-03-12 14:56:34 +08:00
msr.h HV: Add MBA support in ACRN 2020-03-04 17:33:50 +08:00
page.h hv: Reserve space for VMs' EPT 4k pages after boot 2020-04-01 21:13:37 +08:00
pci_dev.h hv: refine init_one_dev_config 2020-03-03 09:32:11 +08:00
per_cpu.h hv: sched_bvt: add BVT scheduler 2020-02-25 09:11:32 +08:00
pgtable.h hv:change function parameter for invept 2019-09-05 16:32:30 +08:00
rdt.h HV: Add MBA support in ACRN 2020-03-04 17:33:50 +08:00
security.h hv: ept: apply MCE on page size change mitigation conditionally 2019-12-03 09:17:04 +08:00
seed.h hv: seed: refine header file 2019-03-15 14:09:56 +08:00
sgx.h hv: sgx: add basic support to init sgx resource for vm 2019-05-29 11:24:13 +08:00
timer.h hv: vpci: revert do FLR and BAR restore 2019-12-30 13:43:07 +08:00
trampoline.h hv:Move severl variable declaration for boot code 2019-01-25 21:32:21 +08:00
vm_config.h hv: Reserve space for VMs' EPT 4k pages after boot 2020-04-01 21:13:37 +08:00
vmx.h hv: extend struct pi_desc to support VT-d posted interrupts 2020-03-31 10:30:30 +08:00
vtd.h HV: Removed unused member variable of iommu_domain and related code 2020-04-01 10:43:54 +08:00
zeropage.h HV: init efi info with multiboot2 2020-02-26 09:24:16 +08:00