[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] questions regarding interdomain communication and xen-guest communication
>>> On 28.10.13 at 16:21, Aastha Mehta <aasthakm@xxxxxxxxx> wrote: > On 25 October 2013 14:18, Jan Beulich <jbeulich@xxxxxxxx> wrote: >> That callback will need to be registered in any case - the (general) >> event upcall. >> > Could you please clarify which general event upcall are you referring to > here? The one you would e.g. register with CALLBACKTYPE_event. > Let me clarify my question a bit more. My requirement is that I need > to perform some computations on an application data, but I cannot > allow the application to do so directly. I would like to provide the > computation as a service from, say dom0. Here are two approaches that > come to my mind - > Approach 1 > 1. Application makes a syscall into DomU kernel requesting for the > computation. > 2. DomU copies the application data into a kernel buffer and makes a > hypercall into Xen forwarding application's request. > 3. Xen upcalls into dom0 kernel for the service (a new vIRQ?). Definitely not. This would be a normal event channel. > 4. Dom0 performs the computation and sends the results back to Xen via > a hypercall. > 5. Xen returns the results to DomU kernel through another upcall (another > vIRQ). Again an event channel. > 6. DomU kernel forwards the result to the application and returns the > syscall. > > Approach 2 > Replace steps 2-5 in the above approach with interdomain event channel Ah, okay - so just forget about #1 then. > notification between dom0 and domU and sharing the data pages through > grant table mechanism. So domU will notify dom0 that it has sent a > request for the computation, after placing the data to be used in the > shared memory. dom0's handler will get the request and the shared > data, compute the result, place it in another shared memory region and > notify domU of the completion of the request. > > Do the two approaches even make sense? > I looked at the blkfront-blkback drivers, and how they use event > channels, grant tables and xenbus. If I understand correctly, the > event channels have to be associated with the xenbus, but it seems > that xenbus can only be used by drivers. I do not understand how the > event channels can be setup ad hoc between two domains. How do I know > what xenbus_device to connect to? There's examples of how to use the event channel device to use them from user space. But as pointed out in someone else's response - perhaps all you need to do is use an already existing library. > Another question I have is, if a domU makes a hypercall into Xen and > if the hypercall is long running, does it block the entire domU until > the hypercall returns? What if there are multiple vcpus? No, just the particular vCPU would be blocked. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |