This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


RE: [Xen-devel] HVM hypercalls, hvm_hypercall_table

To: "George Surka" <gsurka@xxxxxxxxxxxxxxxxxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: RE: [Xen-devel] HVM hypercalls, hvm_hypercall_table
From: "Petersson, Mats" <Mats.Petersson@xxxxxxx>
Date: Thu, 15 Mar 2007 20:38:46 +0100
Delivery-date: Thu, 15 Mar 2007 12:38:01 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <F6E30BE76F1FEF4EA1C2FD98939DFB30021A4ED5@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AcdnOH49IAIVSTjGTcG3UeosKV7iLAAAFf2g
Thread-topic: [Xen-devel] HVM hypercalls, hvm_hypercall_table

> -----Original Message-----
> From: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx 
> [mailto:xen-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of 
> George Surka
> Sent: 15 March 2007 19:31
> To: xen-devel@xxxxxxxxxxxxxxxxxxx
> Subject: [Xen-devel] HVM hypercalls, hvm_hypercall_table
> Hi everyone,
> I am running XenEnterprise 3.1.0 (Xen v. on x86-32 
> hardware. I have noticed that the hvm_hypercall_table is 
> initialized for only 6 hypercalls (memory_op, multicall, 
> xen_version, event_channel_op, sched_op, and hvm_op). The 
> hypercall_page for HVM domain is initialized with HVM exit 
> (VMCALL instr.) - all stubs.

The purpose of the hvm_hypercall_table is to support para-virtual

You should (generally speaking) not be making other hypercalls from a
fully-virtualized (HVM) domain, as those are potentially not safe. Is
ther a particular hypercall you're after, or is this a generic question
as to why this is?

> So, how do I do the other hypercalls (beyond those 6) from 
> HVM domain? Do I just have to use INT 0x82 trap without using 
> the hypercall-page (without using the HYPERVISOR_* hypercall 
> macros in hypercall.h)?

No, you can't make any other hypercalls from fully virtualized domains. 

If you need further hypercalls, it may be possible to add further
hypercalls, but I don't believe that a "wholesale" implementation of all
hypercalls available to para-virtual Xen will make sense (and in some
cases would be potentials for crashing the guest and/or hypervisor), so
selective implementation is the key here. 

[Many of the hypercalls are implemented to overcome the same problems
that the hardware solves in fully virtualized domains, so duplicating
the solution doesn't actually help anything - just adds more code!]

> Why there is just those six hypercalls implemented as HVM-hypercalls?
> Thanks.
> George

Xen-devel mailing list

<Prev in Thread] Current Thread [Next in Thread>