Re: NOVA, NUL, snapshotting
Julian Stecklina <[email protected]>
| Newsgroups | gmane.comp.micro-kernel.l4.devel |
|---|---|
| Message-ID | <[email protected]> |
"Sartakov A. Vasily" <[email protected]> schrieb: > >23.08.2013, в 15:23, Udo Steinberg <[email protected]> написал(а): > >> On Fri, 23 Aug 2013 15:13:35 +0400 Sartakov A. Vasily (SAV) wrote: >> >> SAV> Could you please describe how to get access to a context of >virtual machine? >> SAV> How can I modify context of virtual machine from Vancouver? >> SAV> When system switches into Vancouver, for example by pressing a >special keyboard key, where is stored context of VM? in allocated VMCB? >Can I read and modify its from Vancouver? >> >> If you look at git/nul/vancouver/apps/vancouver/vancouver.cc you'll >see >> functions like: >> >> VM_FUNC(PT_VMX + 31, vmx_rdmsr, MTD_RIP_LEN | MTD_GPR_ACDB | MTD_TSC >| MTD_SYSENTER | MTD_STATE, >> handle_vcpu(pid, true, CpuMessage::TYPE_RDMSR, tls, utcb);) >> >> This is the handler for VMX portal 31, which handles emulation of the >RDMSR >> instruction (see NOVA specification Section 7.2 for a list of >intercepts). >> The portal is configured to transfer a subset of the architectural >state >> according to the MTD bits (see Section 7.4). The hypervisor stores >the >> requested state into the UTCB, where the VMM can read and modify it. >Section >> 7.3 shows the layout of the UTCB with all the state fields. >> > >Thanks, now it is clear: NOVA can intercept commands from guest >machine, then call VM functions via portal with saved state in UTCB. > >I do not understand several things about messaging: > >I see several reply functions and I know where they are called. >for example: > >sigma0.cc, +1659: >case MessageConsole::TYPE_START: > >And I see, that this message is send from function >handle_console_switching > >hostvga.cc, +179: >by calling msg1(MessageConsole::TYPE_START, num -1); > >I hit a key, a key is processed by host driver, driver decides that >this is a command for VM switching, host driver sends message to >sigma0, sigma0 does something. > >What about other commands, like MessageHostOp::OP_GET_MODULE? I see >that all modules has a handler for this message, but I do not see who >and how call them. This command is used by the vbios for Multiboot support. Check executor/vbios_multiboot.cc. HTH, Julian -- Sent from my phone. Please excuse my brevity. _______________________________________________ l4-hackers mailing list [email protected] http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers