[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-users] hypercall implementation



I talked about PV.

I know the hypercall's implementation mechanism, but hypercall's call tree.

From the book, The Definitive Guide to Xen Hypervisor, I known that the "generic builder" will automatically map the hypercall page at one page indicated by the key "HYPERCALL_PAGE" in the guest kernel elf's  section "__xen_guest " into the guest os' address space. I have searched the Xen source code. I can't find the hypercall page's source code. Where is it?

In addition,  The book mentioned above describes xen' internals well mainly in English. In order to know Xen exactly, I think I must read Xen's source code. Is there some resource(book, blog, paper, etc) descriping Xen hypervisor mainly in C language. I need a start point in Xen's source code to explore Xen hypervisor or a path through it. Do you have some suggestion ? Thangks.

Cloud Zhang.


ååäæææèïææåæäééãæèåèååäïæäéåèæéã

å2013å12æ10 19æ01åï"Ian Campbell"<Ian.Campbell@xxxxxxxxxx>åéï

On Tue, 2013-12-10 at 18:55 +0800, åäé wrote:
> But what's the content (src code) of hypercall_page?
>  How is the hypercall implemented?

You need to be looking on the hypervisor side for that. It is a page of
code which is mapped into the guest kernel and contains the necessary
instructions (int 0x82, syscall, vmcall, etc) depending on the guest
type etc. For a PV guest it is populated by the Xen tools asking the
hypervisor to do so during guest build and for a PVHVM guest it is
populated by the guest writing to a special MSR, see enlighten.c in the
Linux kernel, specifically init_hvm_pv_info().

Ian.




_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxx
http://lists.xen.org/xen-users

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.