#
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
|