History log of /fuchsia/zircon/kernel/lib/hypervisor/rules.mk
Revision Date Author Comments
# c60c64df 05-Aug-2018 Abdulla Kamar <abdulla@google.com>

[hypervisor] Make zx_guest_create return a VMAR

Modify zx_guest_create to return a VMAR that represents the guest
physical address space.

A follow up CL will cover changes to the MMU code that allows uncached
and write-combining VMOs to be mapped into the guest physical address
space VMAR.

Test: Ran 'vmar-test', 'hypervisor-test', 'machina_unittests',
and 'guest launch zircon_guest'
Change-Id: I4b9eada3ccb206a205c6b30f1cf882766ba70fed


# 87b543ef 18-Mar-2018 Abdulla Kamar <abdulla@google.com>

[hypervisor][ktrace] Add VCPU blocking events

Add ktrace events for when the VCPU is blocked while either waiting for
an interrupt or waiting for a port packet to become available.

This also restructures the way we record metadata for VCPU ktraces in
order to be more efficient.

PD-100 #comment

Change-Id: I43551a0068bb3d6393a9a58c21b3ea813edfb726


# 30c0c660 26-Oct-2017 Abdulla Kamar <abdulla@google.com>

[lib][hypervisor] Rename CpuState to IdTracker.

The plan is to use IdTracker on ARM64 to track VMID and VPID separately,
as GICv2 will limit the number of VPIDs that can be active.

ZX-1289 #comment

Change-Id: I2d3a93eaa779778cd2e50a027f586a8fb2371d65


# 7fb7213b 01-Oct-2017 Abdulla Kamar <abdulla@google.com>

[lib][hypervisor] Rename PacketMux to TrapMap.

This more accurately describes what it does, and makes more sense in
the code.

Change-Id: Iae0223645dbf4b399ce29e15e10a8d3eeb8d3cf5


# 776d4eed 10-Sep-2017 Abdulla Kamar <abdulla@google.com>

[hypervisor] Extract common CPU state logic from VmxCpuState.

This is so we can reuse some of this logic in El2CpuState, and
customise it for allocating VMIDs.

Change-Id: I05b76d9694b8ed4446763604239cb78f77786e7f


# 59e644b1 07-Sep-2017 George Kulakowski <kulakowski@google.com>

[zircon][mxtl->fbl] Rename mxtl to fbl

Change-Id: Ie21b6498e1bfb0a7fa0315e40b9e5c3ee78646be


# 388a7f68 31-Aug-2017 Dave Bort <dbort@google.com>

[lib/magenta] Rename kernel/lib/magenta to kernel/object

TODO: Rename magenta.{cpp,h} and other instances of "magenta" in this
module.

For MG-1091 "Rename kernel/lib/magenta"

Change-Id: I2abc316f543798e00d3a4d1c2c83195da26e6836


# e5bdc68a 28-Aug-2017 Abdulla Kamar <abdulla@google.com>

[hypervisor] Invert build dependencies.

This allows us to depend on lib/magenta from lib/hypervisor, so we can remove
all of the WITH_LIB_MAGENTA defines and still build cleanly with the -test
targets.

Change-Id: I7a54c2ae4d812213a21ff67b963626a65879b2ea


# ce8c0523 20-Jul-2017 Abdulla Kamar <abdulla@google.com>

[hypervisor] Restructure around VCPUs.

This changes the structure of the hypervisor to be modelled around
virtual CPUs. Each VCPU is associated with a thread and a CPU, in
order to increase performance and simplify communication with user
space.

While the kernel-side of the hypervisor has been restructured, the
user space-side has not been modified to take advantage of the
optimisations that are possible. This will come in a follow up CL.

Change-Id: Ic0c9be724f12c9de601fc4b892d74ba224b0d85e


# af5adea3 28-Jun-2017 Tim Detwiler <tjdetwiler@google.com>

[hypervisor][vm] Implement page fault handling for EPT violations.

No longer commit pages up front for hypervisor guests and handle
appropriate EPT violations create the mappings on demand via the
root VMAR for the guest physical address space.

Change-Id: I3bdfc058c5b9bcb2b65dca1e2a6518d2c5b71a8c


# 4e88dcc0 28-Jun-2017 Tim Detwiler <tjdetwiler@google.com>

[hypervisor][vm] Allocate a root VMAR for guests.

First steps towards allowing for on-demand allocation of pages to guests.
All pages are still committed up front but this will stop happening once
we begin handling the EPT violations for uncommitted pages.

Change-Id: I808ee3402f4903046bbcb4f76b8231fb51cf86cf


# a881ec9a 30-Apr-2017 Abdulla Kamar <abdulla@google.com>

[hypervisor] Remove unused Read function from GPAS.

It turns out it was easier to map the page directly, rather than do a
read. Also remove unused safeint dependency.

Change-Id: Ica1d22bab7ff79f27997e721a7124e637b078c45


# 7d9252b4 26-Apr-2017 Travis Geiselbrecht <travisg@google.com>

[kernel][build] make it possible to remove the kernel test 'app' from the build

Mostly just fixing a few deps and stray extraneous includes of the app test header,
which has now been unexported.

Change-Id: Idb6566bff5c203eb62df6855e0d87a3670aa6dce


# 16656ae0 05-Apr-2017 Brian Swetland <swetland@google.com>

[build] flatten the build

Previously we treated kernel/, system/, and third_party/ as
overlays on a shared namespace. This required the concept
of "canonical" module names, and a lot of complexity to ensure
that things didn't collide and the build worked.

This change gets rid of that, no longer passes -I to make,
so that include directives from our *.mk files do not magically
wildcard across various paths, etc.

The most user-visible change is that everywhere where a module
name is specified (MODULE_DEPS, MODULE_LIBS, etc), full module
names like kernel/lib/io or system/ulib/mxio must be used instead
of previously-allowed "short" names like lib/io and ulib/mxio.

The build output still has a similar shape, but the first segment
of the module path (kernel/, system/, or third_party/) is no
longer elided under $(BUILDDIR)

Change-Id: I525aba1da1c86eb7a86007bddc669f7eeebfedd5


# 1f26ea59 27-Feb-2017 Abdulla Kamar <abdulla@google.com>

[magenta] Add EPT support to the hypervisor.

We now take a VMO and treat that as the guest's physical address
space. Currently we map everything on setup, but we will look into
moving to an on-demand solution in the future.

Additionally, a new hypervisor library was introduced to manage the
guest mappings, and will be a place for most of the hypervisor code to
live.

Change-Id: I31412d47537412929fb248a69e2655376d4fbddb