This is really exciting. We began the vmmcp journey well under a year ago and here we are. Just amazing!
ron On Tue, Feb 2, 2016 at 2:43 PM Barret Rhoden <[email protected]> wrote: > K, I fixed that and a couple things we discovered during a walkthrough > with Ron, Gan, and Mike. > > Merged to master at 915eac00a7e0..3c1fc47cbf74 (from, to] > > You can see the entire diff with 'git diff' or at > https://github.com/brho/akaros/compare/915eac00a7e0...3c1fc47cbf74 > > > > On 2016-02-02 at 19:43 ron minnich <[email protected]> wrote: > > I'd recommend giving the nonstandard reasons a really big number, not > > 64 and 65. Intel keeps adding new ones. Maybe start at an offset of > > 0x100000. > > > > overall, LGTM. This is really really cool. > > > > > > > > On Tue, Feb 2, 2016 at 9:49 AM Barret Rhoden <[email protected]> > > wrote: > > > > > Hi - > > > > > > Here's the VM context patch set. We've now got a VMM using native > > > VM contexts in Akaros, meaning that a VM/guest physical core is just > > > another type of uthread. > > > > > > Let me know if you spot any issues. > > > > > > Barret > > > > > > > > > The following changes since commit > > > 915eac00a7e0f578f9e921af2b205b6efa3739b5: > > > > > > Slices: A growable list of pointers. (2016-01-25 11:02:20 -0500) > > > > > > are available in the git repository at: > > > > > > [email protected]:brho/akaros.git vmctx > > > > > > for you to fetch changes up to > > > 9b89ca30a0f44212e824e058ad066e9d3754df4a: > > > > > > VMM: Rename vmx_vcpu -> guest_pcore (XCC) (2016-02-02 12:40:09 > > > -0500) > > > > > > ---------------------------------------------------------------- > > > Barret Rhoden (32): > > > Allow copy_*_user to be included from umem.h > > > Provide a syscall to pop a user context (XCC) > > > x86: Use a common lock for printing all trapframes > > > Stub out kernel support for VM contexts (XCC) > > > Add user support for VM contexts > > > Move trap reflection bits into their own header > > > Make HW trap reflection more arch-independent > > > Change the 2LS reflected fault op to take a ctx > > > Split up reflect_unhandled_trap() > > > VMM: init the vmexit counters when initing the VMM > > > VMM: perform per-guest-pcore init at setup (XCC) > > > Restrict uva2kva() to only work for user addresses > > > x86: Add a helper for loading cr2 > > > VMM: refactor MSR emulation > > > VMM: Add helpers for vmcs_read() and vmcs_write() > > > VMM: Add helpers for loading guest pcores > > > x86: Remove x86_get_ip_hw() > > > VMM: Add a helper to emulate MSRs [1/4] > > > VMM: Clear upper 32 bits on MSR reads [2/4] > > > VMM: Decouple MSR emulation from VMX [3/4] > > > VMM: Move MSR emulation to vmm.c [4/4] > > > VMM: Add a gva2gpa() helper > > > x86: Enumerate reserved eflags (XCC) > > > VMM: Clean up per-cpu VMCS state > > > Stop zeroing current_ctx before popping a TF > > > VMM: Add custom exit reasons (XCC) > > > x86: Factor out irq_dispatch() from handle_irq() > > > VMM: Add kernel support for VM contexts [1/2] > > > VMM: Use VM contexts [2/2] > > > VMM: Remove unused code (XCC) > > > VMM: Clean up VMX setup > > > VMM: Rename vmx_vcpu -> guest_pcore (XCC) > > > > > > GanShun (1): > > > Suppressed prints for CPUID exit RIPS and removed timer thread > > > > > > kern/arch/riscv/pmap.c | 6 + > > > kern/arch/riscv/process.c | 3 +- > > > kern/arch/riscv/ros/trapframe.h | 4 + > > > kern/arch/riscv/ros/vmm.h | 3 + > > > kern/arch/riscv/trap.c | 13 +- > > > kern/arch/riscv/trap.h | 12 + > > > kern/arch/x86/pmap64.c | 41 ++ > > > kern/arch/x86/process64.c | 309 +++++++--- > > > kern/arch/x86/ros/mmu.h | 2 + > > > kern/arch/x86/ros/trapframe64.h | 48 ++ > > > kern/arch/x86/ros/vmm.h | 8 + > > > kern/arch/x86/ros/vmx.h | 30 +- > > > kern/arch/x86/trap.c | 246 +++++++- > > > kern/arch/x86/trap64.c | 48 +- > > > kern/arch/x86/trap64.h | 36 +- > > > kern/arch/x86/trapentry64.S | 40 ++ > > > kern/arch/x86/vmm/intel/vmx.c | 1177 > > > +++++-------------------------------- > > > kern/arch/x86/vmm/intel/vmx.h | 39 +- > > > kern/arch/x86/vmm/vmm.c | 314 +++++++++- > > > kern/arch/x86/vmm/vmm.h | 35 +- > > > kern/arch/x86/x86.h | 5 + > > > kern/drivers/dev/cons.c | 30 +- > > > kern/include/ros/bits/syscall.h | 1 + > > > kern/include/ros/trapframe.h | 6 +- > > > kern/include/ros/vmm.h | 3 - > > > kern/include/smp.h | 4 +- > > > kern/include/trap.h | 3 + > > > kern/include/umem.h | 6 +- > > > kern/src/process.c | 3 +- > > > kern/src/syscall.c | 53 +- > > > kern/src/trap.c | 106 ++-- > > > kern/src/umem.c | 14 +- > > > tests/vmm/vmrunkernel.c | 209 ++++++- > > > user/parlib/include/riscv/trap.h | 45 ++ > > > user/parlib/include/riscv/vcore.h | 25 - > > > user/parlib/include/uthread.h | 3 +- > > > user/parlib/include/x86/trap.h | 62 ++ > > > user/parlib/include/x86/vcore64.h | 56 +- > > > user/parlib/signal.c | 5 +- > > > user/parlib/thread0_sched.c | 28 +- > > > user/parlib/uthread.c | 25 +- > > > user/parlib/x86/vcore.c | 47 +- > > > user/pthread/pthread.c | 65 +- > > > user/vmm/vmx.c | 51 +- > > > user/vmm/vmx.h | 46 -- > > > 45 files changed, 1805 insertions(+), 1510 deletions(-) > > > create mode 100644 user/parlib/include/riscv/trap.h > > > create mode 100644 user/parlib/include/x86/trap.h > > > delete mode 100644 user/vmm/vmx.h > > > > > > -- > > > You received this message because you are subscribed to the Google > > > Groups "Akaros" group. > > > To unsubscribe from this group and stop receiving emails from it, > > > send an email to [email protected]. > > > To post to this group, send email to [email protected]. > > > For more options, visit https://groups.google.com/d/optout. > > > > > > > -- > You received this message because you are subscribed to the Google Groups > "Akaros" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Akaros" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. For more options, visit https://groups.google.com/d/optout.
