All of lore.kernel.org
 help / color / mirror / Atom feed
* HVM hypercalls, hvm_hypercall_table
@ 2007-03-15 19:31 George Surka
  2007-03-15 19:38 ` Petersson, Mats
  0 siblings, 1 reply; 4+ messages in thread
From: George Surka @ 2007-03-15 19:31 UTC (permalink / raw)
  To: xen-devel


[-- Attachment #1.1: Type: text/plain, Size: 653 bytes --]

Hi everyone,
 
I am running XenEnterprise 3.1.0 (Xen v.3.0.3.0) 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.
 
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)?
 
Why there is just those six hypercalls implemented as HVM-hypercalls?
 
Thanks.
 
George
 

[-- Attachment #1.2: Type: text/html, Size: 1886 bytes --]

[-- Attachment #2: Type: text/plain, Size: 138 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel

^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: HVM hypercalls, hvm_hypercall_table
  2007-03-15 19:31 HVM hypercalls, hvm_hypercall_table George Surka
@ 2007-03-15 19:38 ` Petersson, Mats
  2007-03-15 19:49   ` George Surka
  0 siblings, 1 reply; 4+ messages in thread
From: Petersson, Mats @ 2007-03-15 19:38 UTC (permalink / raw)
  To: George Surka, xen-devel

 

> -----Original Message-----
> From: xen-devel-bounces@lists.xensource.com 
> [mailto:xen-devel-bounces@lists.xensource.com] On Behalf Of 
> George Surka
> Sent: 15 March 2007 19:31
> To: xen-devel@lists.xensource.com
> Subject: [Xen-devel] HVM hypercalls, hvm_hypercall_table
> 
> Hi everyone,
>  
> I am running XenEnterprise 3.1.0 (Xen v.3.0.3.0) 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
drivers. 

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!]

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: HVM hypercalls, hvm_hypercall_table
  2007-03-15 19:38 ` Petersson, Mats
@ 2007-03-15 19:49   ` George Surka
  2007-03-16  8:13     ` Keir Fraser
  0 siblings, 1 reply; 4+ messages in thread
From: George Surka @ 2007-03-15 19:49 UTC (permalink / raw)
  To: Petersson, Mats, xen-devel

For instance we need grant table operations for our PV drivers. Those
are not currently supported as HVM-hypercalls.

George 


-----Original Message-----
From: Petersson, Mats [mailto:Mats.Petersson@amd.com] 
Sent: Thursday, March 15, 2007 3:39 PM
To: George Surka; xen-devel@lists.xensource.com
Subject: RE: [Xen-devel] HVM hypercalls, hvm_hypercall_table

 

> -----Original Message-----
> From: xen-devel-bounces@lists.xensource.com
> [mailto:xen-devel-bounces@lists.xensource.com] On Behalf Of George 
> Surka
> Sent: 15 March 2007 19:31
> To: xen-devel@lists.xensource.com
> Subject: [Xen-devel] HVM hypercalls, hvm_hypercall_table
> 
> Hi everyone,
>  
> I am running XenEnterprise 3.1.0 (Xen v.3.0.3.0) 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
drivers. 

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!]

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: HVM hypercalls, hvm_hypercall_table
  2007-03-15 19:49   ` George Surka
@ 2007-03-16  8:13     ` Keir Fraser
  0 siblings, 0 replies; 4+ messages in thread
From: Keir Fraser @ 2007-03-16  8:13 UTC (permalink / raw)
  To: George Surka, Petersson, Mats, xen-devel

What are you trying to do? It's not normal for domU's (even fully
paravirtualised ones) to need to do grant-table hypercalls. Granting access
to your own memory is done entirely via intercations via shared memory, with
no hypercalls at all.

 -- Keir


On 15/3/07 19:49, "George Surka" <gsurka@marathontechnologies.com> wrote:

> For instance we need grant table operations for our PV drivers. Those
> are not currently supported as HVM-hypercalls.
> 
> George 
> 
> 
> -----Original Message-----
> From: Petersson, Mats [mailto:Mats.Petersson@amd.com]
> Sent: Thursday, March 15, 2007 3:39 PM
> To: George Surka; xen-devel@lists.xensource.com
> Subject: RE: [Xen-devel] HVM hypercalls, hvm_hypercall_table
> 
>  
> 
>> -----Original Message-----
>> From: xen-devel-bounces@lists.xensource.com
>> [mailto:xen-devel-bounces@lists.xensource.com] On Behalf Of George
>> Surka
>> Sent: 15 March 2007 19:31
>> To: xen-devel@lists.xensource.com
>> Subject: [Xen-devel] HVM hypercalls, hvm_hypercall_table
>> 
>> Hi everyone,
>>  
>> I am running XenEnterprise 3.1.0 (Xen v.3.0.3.0) 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
> drivers. 
> 
> 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!]
> 
> --
> Mats
>>  
>> Why there is just those six hypercalls implemented as HVM-hypercalls?
>>  
>> Thanks.
>>  
>> George
>>  
>> 
> 
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2007-03-16  8:13 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-03-15 19:31 HVM hypercalls, hvm_hypercall_table George Surka
2007-03-15 19:38 ` Petersson, Mats
2007-03-15 19:49   ` George Surka
2007-03-16  8:13     ` Keir Fraser

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.