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

Re: [Xen-devel] How does hypervisor handle the hypercalls from guest OSes?

> I'm trying to encapsulate some operations into "hypercall" and pass
> the hypercall into hypervisor.
> But I cannot find out how the hypervisor to deal with hypercalls
> from guest OSes.

Hypercalls go from ring 1 (xenolinux kernel) to ring 0; they are
invoked by using "int $0x82".

You can see the "top half" (guest side) of the hypercall interface by
looking at the file


which includes a bunch of inline C functions like: 

static inline int HYPERVISOR_mmu_update(mmu_update_t *req, int count)
    int ret;
    __asm__ __volatile__ (
        : "=a" (ret) : "0" (__HYPERVISOR_mmu_update),
        "b" (req), "c" (count) : "memory" );

    return ret;

You can see the "bottom half" (xen side) of the hypercall interface 
by looking at the files 


; the former includes definitions of all the numbers used for the 
various hypercalls while latter handles the int $0x82 and decides
which actual hypercall to invoke (by using hypervisor_call_table; 
see the end of entry.S). 

> I find a function "do_dom0_op" in xeno-1.2.bk/xen/common/dom0_ops.c.
> It looks like the function which would deal with hypercalls .

No; a dom0_op is just one of the hypercalls; it is the general method
used for control software (running in domain 0) to invoke various 
operations within Xen. 

Depending on what you're actually trying to do, adding a new dom0_op 
rather than a new hypercall might be the right thing to do though. 

> and I try to modify the code in do_dom0_op to handle my new
> hypercall, but I failed.


> can someone tell me how does hypervisor handle the hypercalls from
> guest OSes?

Hopefully the above description is of some use. 



This SF.Net email is sponsored by Sleepycat Software
Learn developer strategies Cisco, Motorola, Ericsson & Lucent use to deliver
higher performing products faster, at low TCO.
Xen-devel mailing list



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