acrn-hypervisor/hypervisor
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
..
acpi_parser HV: remove multi-return in drhd_find_iter 2020-04-01 10:43:54 +08:00
arch/x86 hv: Reserve space for VMs' EPT 4k pages after boot 2020-04-01 21:13:37 +08:00
boot hv: Reserve space for VMs' EPT 4k pages after boot 2020-04-01 21:13:37 +08:00
bsp/ld hv: fixup relocation delta for symbols belong to entry section 2020-03-06 08:27:46 +08:00
common hv: list: rename list_entry to container_of 2020-03-31 10:57:47 +08:00
debug hv: move error message logging into gpa copy APIs 2020-03-30 13:19:01 +08:00
dm hv: vpic: remove vm structure pointer from vpic 2020-03-31 10:57:47 +08:00
hw HV: renamed some structs more understandably 2020-04-01 10:43:54 +08:00
include hv: Reserve space for VMs' EPT 4k pages after boot 2020-04-01 21:13:37 +08:00
lib hv:tiny cleanup 2019-09-05 09:58:47 +08:00
pre_build hv: add static check for CONFIG_HV_RAM_START and CONFIG_HV_RAM_SIZE 2020-03-11 10:37:50 +08:00
release hv: pci: rename CFG read/write function for PCI-compatible Configuration Mechanism 2020-03-12 09:17:02 +08:00
scenarios HV: update ept address range for pre-launched VM 2020-03-12 14:56:34 +08:00
scripts Makefile: move .mk file to hv scripts folder 2019-11-13 16:05:30 +08:00
Kconfig HV: config: add Kconfig and defconfigs for sbl & uefi 2018-06-08 17:21:13 +08:00
MAINTAINERS update home page information 2018-05-15 17:19:39 +08:00
Makefile hv: Reserve space for VMs' EPT 4k pages after boot 2020-04-01 21:13:37 +08:00
README.rst doc: fix utf-8 punctuation, branding, spelling 2019-03-14 09:13:58 -07:00

ACRN Hypervisor
###############

The open source `Project ACRN`_ defines a device hypervisor reference stack and
an architecture for running multiple software subsystems, managed securely, on
a consolidated system by means of a virtual machine manager. It also defines a
reference framework implementation for virtual device emulation, called the
"ACRN Device Model".

The ACRN Hypervisor is a Type 1 reference hypervisor stack, running directly on
the bare-metal hardware, and is suitable for a variety of IoT and embedded
device solutions. The ACRN hypervisor addresses the gap that currently exists
between datacenter hypervisors, and hard partitioning hypervisors. The ACRN
hypervisor architecture partitions the system into different functional
domains, with carefully selected guest OS sharing optimizations for IoT and
embedded devices.

You can find out more about Project ACRN on the `Project ACRN documentation`_
website.

.. _`Project ACRN`: https://projectacrn.org
.. _`ACRN Hypervisor`: https://github.com/projectacrn/acrn-hypervisor
.. _`Project ACRN documentation`: https://projectacrn.github.io/