Shu Wu
2009-Oct-22 07:34 UTC
[Xen-devel] At what places is an event handler called besides a hypercall?
Hi, folks. I''m puzzled when the event handler is called in xen. I''ve only found a pending check and an upcall at the end of each hypercall. And an event delivery will cause a schedule, but no calling to the handler. So it seems when a domain sends a event to the other, the handler of that domain won''t be called until it makes a hypercall or check it itself. That sounds not so reasonable. Could anyone tell me the truth? Thanks! Cheers, Wu Shu _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Keir Fraser
2009-Oct-22 08:56 UTC
Re: [Xen-devel] At what places is an event handler called besides a hypercall?
On 22/10/2009 08:34, "Shu Wu" <superwushu@gmail.com> wrote:> Hi, folks. I''m puzzled when the event handler is called in xen. I''ve only > found a pending check and an upcall at the end of each hypercall. And an event > delivery will cause a schedule, but no calling to the handler. So it seems > when a domain sends a event to the other, the handler of that domain won''t be > called until it makes a hypercall or check it itself. That sounds not so > reasonable. Could anyone tell me the truth? Thanks!Events are checked for on any return to guest context. If the event sender sees the receiver is running on another CPU, it sends an IPI, and on return to guest context from that IPI the receiving CPU will deliver the event to the receiving guest. -- Keir _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Shu Wu
2009-Oct-23 01:55 UTC
Re: [Xen-devel] At what places is an event handler called besides a hypercall?
Yeah, I see it! Especially in the exception handler there is a call to test_all_events, which checks the event and calls the handler. All these will happen frequently. Thanks a lot! 2009/10/22 Keir Fraser <keir.fraser@eu.citrix.com>> On 22/10/2009 08:34, "Shu Wu" <superwushu@gmail.com> wrote: > > > Hi, folks. I''m puzzled when the event handler is called in xen. I''ve only > > found a pending check and an upcall at the end of each hypercall. And an > event > > delivery will cause a schedule, but no calling to the handler. So it > seems > > when a domain sends a event to the other, the handler of that domain > won''t be > > called until it makes a hypercall or check it itself. That sounds not so > > reasonable. Could anyone tell me the truth? Thanks! > > Events are checked for on any return to guest context. If the event sender > sees the receiver is running on another CPU, it sends an IPI, and on return > to guest context from that IPI the receiving CPU will deliver the event to > the receiving guest. > > -- Keir > > >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel