aditya shevalkar
2007-Jan-30 12:47 UTC
[Xen-devel] Informatio required on VMEXit settings and process.
Hi all, Please help me in understanding who update the VMEXIT_REASON and VMEXIT_QUALIFICATION fields in the VMCS field i.e. Xen or CPU and how when the VMExit occurs.And how the VMexit occurs(porcess of vmexit). Also explain this process in case of page fault if possible. Give the code reference if possible. Thanks and Regards, Aditya Shevalkar. __________________________________________________________ Yahoo! India Answers: Share what you know. Learn something new http://in.answers.yahoo.com/ _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Petersson, Mats
2007-Jan-30 13:06 UTC
RE: [Xen-devel] Informatio required on VMEXit settings and process.
> -----Original Message----- > From: xen-devel-bounces@lists.xensource.com > [mailto:xen-devel-bounces@lists.xensource.com] On Behalf Of > aditya shevalkar > Sent: 30 January 2007 12:47 > To: xen devel > Subject: [Xen-devel] Informatio required on VMEXit settings > and process. > > Hi all, > Please help me in understanding who update the VMEXIT_REASON > and VMEXIT_QUALIFICATION fields in the VMCS field i.e. Xen or > CPU and how when the VMExit occurs.And how the VMexit > occurs(porcess of vmexit).The VMEXIT_REASON is set by the CPU when it sees a condition that generates a vmexit (i.e. the guest is doing something that the hypervisor/host has set to exit in "EXEC_CONTROLS"). The VMEXIT_QUALIFICATION is likewise filled in with the relevant information by the CPU (such as the address of a page-fault or the interrupt vector on an interrupt exit). [I''m not an Intel expert, but seeing as the overall concept is almost identical for AMD and Intel, the question can be answered in a way that applies to both, with the slight difference that the AMD uses a VMCB and different names for the fields. For example, exit_reason in Intel is called exitcode in AMD''s world, and exit_qualification is called exitinfo{1,2} and exitintinfo]> Also explain this process in case of page fault if possible.Processor sees a memory access. The processor checks the page-tables, and if the access is not allowed, the processor gives a vmexit to the hypervisor. The hypervisor checks the exit_reason to see that it''s a page-fault, and determines if it''s a "hypervisor" related page-fault (such as a page-table update or a MMIO access to a virtual device) or a "guest fault". For the former, the hypervisor will then perform the relevant work to either update the page-table or to send MMIO operation to QEMU. If it''s not a hypervisor fault, it is by process of elimination a guest-fault (for example a page-access that hits a page that is stored in the swap or a write to a page that is shared with "copy-on-write" in a forked process). Guest faults are forwarded to the guest by "injection". A more concrete question would probably give you a more precise answer - there are MANY pages in the manual on the subject, so it''s pretty much a waste of everyones time to rewrite it here...> Give the code reference if possible..../xen/arch/x86/hvm/svm/svm.c for AMD code. .../xen/arch/x86/hvm/vmx/vmx.c for Intel code. -- Mats> > Thanks and Regards, > Aditya Shevalkar. > > > > __________________________________________________________ > Yahoo! India Answers: Share what you know. Learn something new > http://in.answers.yahoo.com/ > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel > > >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel