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

Re: [Xen-devel] trying to understand interrupts from xen->guest

> I'm definitely getting an interrupt from xen when I disable the mask. 
> Any idea why this would happen? I hvae set the callback address at this 
> point. 
> hmm maybe it is calling back to 0 ... that would explain my call frame 
> completely. 

Not sure what you mean here. Yes, you could get an interrupt on
event-channel 0 -- at start of day no event channels are masked, but
also none are bound to event sources. The only exception is evtchn 0,
which is statically bound to VIRQ_MISDIRECT. This is a 'dumping
ground' for any VIRQs that occur that you have not yet bound to an
event channel.

So, you are receiving periodic ticks on VIRQ_TIMER. These aren't
bouind to an event channel, so they get passed to VIRQ_MISDIRECT which
is bound to evtchn0. This causes the pend flag to get set for your
domain, and so you get an interrupt next time you disable the mask.

Of course, you don't get the interrupt immediately. :-) You get it
next time Xen is invoked and then returns to you. If you want to
process outstanding events sooner then you need to manually check the
pending flag and take appropriate action. This is what I do in Linux's
'enable_local_irq()' function, for example.

 -- Keir

This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - 
digital self defense, top technical experts, no vendor pitches, 
unmatched networking opportunities. Visit www.blackhat.com
Xen-devel mailing list



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