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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.