- 25 Oct, 2016 40 commits
-
-
Charlie Jacobsen authored
-
Anton Burtsev authored
-
Charlie Jacobsen authored
-
Charlie Jacobsen authored
Constructors and casting inlines are in arch-dep code header.
-
Charles Jacobsen authored
Nasty casting bug. (I should create separate types for gpa, hpa, hva, gva...).
-
Charles Jacobsen authored
-
Charles Jacobsen authored
-
Charles Jacobsen authored
Wasn't setting paging entry var when allocating memory for a paging structure.
-
Charles Jacobsen authored
-
Charlie Jacobsen authored
Updated tests.
-
Charles Jacobsen authored
Originally, destroying the ept structures also freed the mapped host physical memory. This is leading to bad double free errors. Instead, I will report a potential memory leak if an ept pte is present. Users of the ept should unmap any host phys memory before destroying the ept (will shift over ept unmap range from arch-indep to arch-dep next). Updated arch test04 to use vmx_free_ept, now that it doesn't try to free mapped host phys mem.
-
Charles Jacobsen authored
-
Charlie Jacobsen authored
-
Charles Jacobsen authored
-
Charlie Jacobsen authored
-
Charles Jacobsen authored
Added pgd_pfn to asm/pgtables.h.
-
Anton Burtsev authored
-
Anton Burtsev authored
-
Anton Burtsev authored
-
Charlie Jacobsen authored
-
Charles Jacobsen authored
I needed to mask off the flags in the lower part of the pte ...
-
Charles Jacobsen authored
-
Charlie Jacobsen authored
-
Charles Jacobsen authored
-
Charlie Jacobsen authored
For paging mem allocation.
-
Charlie Jacobsen authored
Need to load vmcs in order to modify it.
-
Charles Jacobsen authored
-
Charlie Jacobsen authored
-
Charlie Jacobsen authored
-
Charles Jacobsen authored
Was falling through fail labels.
-
Charles Jacobsen authored
Can't set stack pointer until vmcs is loaded.
-
Charles Jacobsen authored
Pushing in case of crash ...
-
Charlie Jacobsen authored
-
Charles Jacobsen authored
-
Charlie Jacobsen authored
Each step in the deallocation requires resolving a guest physical address to a host virtual address, unmapping the paging structure in the lcd's ept, and freeing the host physical memory.
-
Charlie Jacobsen authored
-
Charlie Jacobsen authored
This was tricky. Unfortunately, since guest physical addresses are wrapped in the paging entries, we can't use some of the linux macros / routines (e.g., pud_offset). This would allow us to benefit from pud- and pmd-folding, making the code more portable. Perhaps we'll think of something later... The code will only work on a linux with 4 paging levels (pgd, pud, pmd, page table). lcd_mm_gva_walk is the main routine that traverses the hierarchy. Each subroutine translates a paging structures guest physical to host virtual address, and gets the correct entry. A simple watermark is used (rather than a bitmap) for allocating guest physical memory.
-
Charlie Jacobsen authored
Guest physical unmapping code. Guest virtual tear down to be implemented soon.
-
Charlie Jacobsen authored
Changed to use macro accessor in lcd_arch. I think this is less confusing and less bug prone. So, to access lcd's utcb, do: struct lcd_utcb *utcb; utcb = LCD_ARCH_GET_UTCB(vcpu);
-
Charlie Jacobsen authored
(Code before relied on free ept to free memory. But this could be confusing and hard to debug in the future...)
-