[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [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. I think Daniele has read confusing accounts of the PV-on-HVM drivers vs the mainline kernel merge. These are (semi) independent issues: for Linux 2.6 PV-on-HVM drivers can simply be built by the administrator and installed into their VM if they want them. The code that's being proposed for the Linux merge is to support full PV, not PV-on-HVM (as far as I know). > > -using XenStore/XenBus (is that possible?) > > I believe so, but I'm not entirely sure about how that works in a HVM > guest. Yes, but it requires the PV-on-HVM driver infrastructure. I'm not clear on the exact implementation details, but it involves the guest talking to a fake "Xen platform" PCI device, which enables it to then set up a Xenstore connection and share configuration data on it. > > 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. It it possible to arrange for a VMEXIT to occur on int 0x80 (which IIRC is the Linux system call... I guess VT-x would also be able to intercept sysenter)? That way the guest wouldn't have to be modified to notify Xen. Xen would then have to e.g. share a ring buffer with dom0 regarding events of this nature for each domain. You could hack something up so that the guest blocked on each syscall until dom0 acknowledged it... There's also the Xen gdb server - maybe (if it supports HVM guests?) you could use this to watch the syscall paths. HTH, cheers, Mark -- Dave: Just a question. What use is a unicyle with no seat? And no pedals! Mark: To answer a question with a question: What use is a skateboard? Dave: Skateboards have wheels. Mark: My wheel has a wheel! _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |