Hi, I am trying to send events from DomU to the Dom0. I have established an event channel. I used to xc_evtchn_notify() to send an event. But I am not sure how to check if the event has been sent. Through source browsing I found an event handler for xensource. Is there no generic handler for event channels? -- Srujan D. Kotikela _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On 09/28/2010 09:46 PM, Srujan D. Kotikela wrote:> Hi, > > I am trying to send events from DomU to the Dom0. I have established > an event channel. I used to xc_evtchn_notify() to send an event. But I > am not sure how to check if the event has been sent. Through source > browsing I found an event handler for xensource. Is there no generic > handler for event channels?/dev/xen/evtchn allows a usermode program to wait for specific event channels. J _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
I called the xc_evtchn_notify(). But I see no message/notification in /dev/xen/evtchn (in either DomU or Dom0). I did a little research and found there might be problem with my xen-evtchn module. However it is statically compiled into my kernel and i can see the following contents in /proc/xen ls /proc/xen/ balloon capabilities privcmd xenbus xsd_kva xsd_port For now I just want to send and event and acknowledge it (later application will be built on top of this). -- Srujan D. Kotikela On Wed, Sep 29, 2010 at 11:08 AM, Jeremy Fitzhardinge <jeremy@goop.org>wrote:> On 09/28/2010 09:46 PM, Srujan D. Kotikela wrote: > > Hi, > > > > I am trying to send events from DomU to the Dom0. I have established > > an event channel. I used to xc_evtchn_notify() to send an event. But I > > am not sure how to check if the event has been sent. Through source > > browsing I found an event handler for xensource. Is there no generic > > handler for event channels? > > /dev/xen/evtchn allows a usermode program to wait for specific event > channels. > > J >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On 09/29/2010 09:27 AM, Srujan D. Kotikela wrote:> I called the xc_evtchn_notify(). But I see no message/notification in > /dev/xen/evtchn (in either DomU or Dom0). I did a little research and > found there might be problem with my xen-evtchn module. However it is > statically compiled into my kernel and i can see the following > contents in /proc/xen > > ls /proc/xen/ > balloon capabilities privcmd xenbus xsd_kva xsd_port/proc/xen is not the same as /dev/xen J _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Sorry, But from what I read I may not get notifications on /dev/xen/evtchn if my xen-evtchn module is not functioning. However if it is statically compiled it wont be found as a module. I can confirm it''s working by checking if there are directories in my /proc/xen correct me if I am wrong. I am calling notify() and I am getting a return value 0 but no notification mesages in /dev/xen/evtchn -- Srujan D. Kotikela On Wed, Sep 29, 2010 at 11:29 AM, Jeremy Fitzhardinge <jeremy@goop.org>wrote:> On 09/29/2010 09:27 AM, Srujan D. Kotikela wrote: > > I called the xc_evtchn_notify(). But I see no message/notification in > > /dev/xen/evtchn (in either DomU or Dom0). I did a little research and > > found there might be problem with my xen-evtchn module. However it is > > statically compiled into my kernel and i can see the following > > contents in /proc/xen > > > > ls /proc/xen/ > > balloon capabilities privcmd xenbus xsd_kva xsd_port > > /proc/xen is not the same as /dev/xen > > J >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On 09/29/2010 09:34 AM, Srujan D. Kotikela wrote:> Sorry, > > But from what I read I may not get notifications on /dev/xen/evtchn if > my xen-evtchn module is not functioning. However if it is statically > compiled it wont be found as a module. I can confirm it''s working by > checking if there are directories in my /proc/xen > > correct me if I am wrong./proc/xen is irrelevant to xen-evtchn; you would not expect to see any changes in /proc/xen as a result of xen-evtchn being present or absent.> > I am calling notify() and I am getting a return value 0 but no > notification mesages in /dev/xen/evtchnYou should look carefully at the existing examples of how to use that device to see where you''re going wrong. J _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Hi Jeremy, I was going through the code in mini-os. The hypervisor_callback, which handles all the events, is defined in the x86_64.S file. In xen sources I see xen/arch/x86/x86_64/entry.S with no such callback function.>From what I read in the Xen Definitive guide, There is a single handler forall events (hypervisor_callback) which in turn should call individual handlers, which are registered before hand, for each event. I have few questions regarding this: 1. Is there a default event handler for Dom0 kernel (like hypervisor_callback in mini-os). If so, what is the function to register event handlers for specific port/channel (I tried searching the code and couldn''t find any)? 2. If no default handler exists how are the handlers for xen_console and xen_store events or any other events setup? 3. Is the ./xen/arch/x86/x86_64/entry.S analogous to ./extras/mini-os/arch/x86/x86_64.S? I mean If I have to write event handler, should I edit entry.S? -- Srujan D. Kotikela On Wed, Sep 29, 2010 at 12:16 PM, Jeremy Fitzhardinge <jeremy@goop.org>wrote:> On 09/29/2010 09:34 AM, Srujan D. Kotikela wrote: > > Sorry, > > > > But from what I read I may not get notifications on /dev/xen/evtchn if > > my xen-evtchn module is not functioning. However if it is statically > > compiled it wont be found as a module. I can confirm it''s working by > > checking if there are directories in my /proc/xen > > > > correct me if I am wrong. > > /proc/xen is irrelevant to xen-evtchn; you would not expect to see any > changes in /proc/xen as a result of xen-evtchn being present or absent. > > > > > I am calling notify() and I am getting a return value 0 but no > > notification mesages in /dev/xen/evtchn > > You should look carefully at the existing examples of how to use that > device to see where you''re going wrong. > > J >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Hi jeremy, I have looked into the events.c The function *bind_evtchn_to_irqhandler(*(int evtchn, irq_handler_t handler, unsigned long irqflags, *const char *devname, void *dev_id) *looks the most appropriate for me. However, I wouldn''t have any device name or Id. So I am not sure how I can use it to set up the handler. I am looking to setup a very light weight communication mechanism from DomU to Dom0. The application in DomU will raise a hypercall. The hypercall handler will send an event to Dom0. This communication setup is just to notify an *event* to Dom0 excluding the DomU kernel. I am facing 2 roadblocks for this setup. - How to install an event handler for the event channel (between Dom0 and hypervisor). - How can I send an event to Dom0. The only function I found was *xc_evtchn_notify() *But AFAIK this function or the *event_channel_op send* are to be done by from a domain (through port). So how can I trigger/send an event from hypervisor to Dom0. Finally, does establishing an event channel (using xc_evtchn_open) guarantee an event channel between Dom0 and hypervisor? Or is there any specific function for the same. Thanks and regards, Srujan D. Kotikela On Tue, Oct 12, 2010 at 12:57 PM, Jeremy Fitzhardinge <jeremy@goop.org>wrote:> On 10/08/2010 09:10 AM, Srujan D. Kotikela wrote: > > From what I read in the Xen Definitive guide, There is a single > > handler for all events (hypervisor_callback) which in turn should call > > individual handlers, which are registered before hand, for each event. > > I have few questions regarding this: > > > > 1. Is there a default event handler for Dom0 kernel (like > > hypervisor_callback in mini-os). If so, what is the function to > > register event handlers for specific port/channel (I tried searching > > the code and couldn''t find any)? > > Yes, xen_do_hypervisor_callback in kernel/entry_64.S. Events are mapped > to the Linux IRQ subsystem, so registering for an event channel requires > mapping it to an irq, then registering an irq as normal. The code to > implement it is in drivers/xen/events.c. > > > > > > 2. If no default handler exists how are the handlers for xen_console > > and xen_store events or any other events setup? > > The events are bound to irqs, and the irq handler deals with the > events. You can see the registrations in /proc/interrupts. > > > > > 3. Is the ./xen/arch/x86/x86_64/entry.S analogous to > > ./extras/mini-os/arch/x86/x86_64.S? I mean If I have to write event > > handler, should I edit entry.S? > > That looks like a path into the source for Xen (the hypervisor) itself. > Xen doesn''t need an event upcall entrypoint because it is initiating all > the upcalls. > > J > > > > > -- > > Srujan D. Kotikela > > > > > > On Wed, Sep 29, 2010 at 12:16 PM, Jeremy Fitzhardinge <jeremy@goop.org > > <mailto:jeremy@goop.org>> wrote: > > > > On 09/29/2010 09:34 AM, Srujan D. Kotikela wrote: > > > Sorry, > > > > > > But from what I read I may not get notifications on > > /dev/xen/evtchn if > > > my xen-evtchn module is not functioning. However if it is > statically > > > compiled it wont be found as a module. I can confirm it''s working > by > > > checking if there are directories in my /proc/xen > > > > > > correct me if I am wrong. > > > > /proc/xen is irrelevant to xen-evtchn; you would not expect to see > any > > changes in /proc/xen as a result of xen-evtchn being present or > > absent. > > > > > > > > I am calling notify() and I am getting a return value 0 but no > > > notification mesages in /dev/xen/evtchn > > > > You should look carefully at the existing examples of how to use that > > device to see where you''re going wrong. > > > > J > > > > > >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel