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

RE: [Xen-devel] Communication between HVM and dom0 through the Hypervisor


  • To: "Daniele Sgandurra" <dansgan@xxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxx
  • From: "Petersson, Mats" <Mats.Petersson@xxxxxxx>
  • Date: Wed, 18 Apr 2007 17:35:35 +0200
  • Delivery-date: Wed, 18 Apr 2007 08:36:06 -0700
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>
  • Thread-index: AceBzWRjjR13a2zSSxKm38Kcg3e3CQAAI8LA
  • Thread-topic: [Xen-devel] Communication between HVM and dom0 through the Hypervisor

 

> -----Original Message-----
> From: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx 
> [mailto:xen-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of 
> Daniele Sgandurra
> Sent: 18 April 2007 16:22
> To: xen-devel@xxxxxxxxxxxxxxxxxxx
> Subject: [Xen-devel] Communication between HVM and dom0 
> through the Hypervisor
> 
> Is there currently a method for passing information
> between a HVM domain and domain 0 directly through the
> hypervisor?
> I understand there could be at least three ways to do
> so:
> 
> -VMCALL from HVM + params in registers.
> -using "PV-on-HVM", but I think the frontend drivers
> need to be ported in the mainline Linux kernel and
> this is currently being done, right?

What do you mean. There is the "unmodified_drivers" directory in Xen,
which contains, as far as I know, complete drivers for block and network
on HVM Linux. Of course, you'd need a differnet source-code if you want
Linux 2.4 drivers or Windows drivers, neither of which is supplied with
Xen's sources. 

> -using XenStore/XenBus (is that possible?)

I believe so, but I'm not entirely sure about how that works in a HVM
guest.
> 
> As an example, suppose I have a HVM running Linux (on
> Intel IVT-x), and I want to call a callback function
> in dom0 each time the HVM contacts the hypervisor,
> what would you suggest me to do? Imagine I want to
> notify dom0 each time a process issues a system call,
> by adding some code in the prologue of the syscall
> handler to notify the hypervisor.

You can use VM[M]CALL, although this is ALREADY being used for PV-on-HVM
drivers, so you'd have to filter your calls from the ones used by
PV-on-HVM drivers (using a high bit to indicate that those are your
functions rather than PV-calls would be the easiest method). 

Another possibility is to find a unused IO-port or memory address and
cause a IOIO-exit or Page-fault on a MMIO address that isn't otherwise
used. IO-ports such as 0xBCDE, 0xAAA0 are most likely not used, so you
could to a 8, 16 or 32-bit IO to one of those pretty easily. 

The NEXT problem is of course getting this information out of the
hypervisor into Dom0. 

--
Mats
> 
> Thank you very much :-)
> 
> 
>       ___________________________________ 
> L'email della prossima generazione? Puoi averla con la nuova 
> Yahoo! Mail: http://it.docs.yahoo.com/nowyoucan.html
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel
> 
> 
> 



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


 


Rackspace

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