NOVA, NUL, snapshotting

Sartakov A. Vasily sartakov at ksyslabs.org
Sat Aug 24 09:51:37 CEST 2013


23.08.2013, в 15:23, Udo Steinberg <udo at hypervisor.org> написал(а):

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

-- 
Sartakov A. Vasily
sartakov at ksyslabs.org



-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 842 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://os.inf.tu-dresden.de/pipermail/l4-hackers/attachments/20130824/7db453ff/attachment-0001.asc>


More information about the l4-hackers mailing list