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

Re: [Xen-devel] fooey. no interrupts.

On Tue, 10 Aug 2004, Keir Fraser wrote:

> For a particular event channel @e to fire you an async callback, you
> need:
>  1. The original value of bit @e in evtchn_pending[] must be zero.
>  2. The value of bit @e in evtchn_mask[] must be zero.

Is there a race condition here? Let's pretend this is the 10ms interrupt
        @e gets set in evtchn_pending
        @e in evtchn_mask is set (not zero) because it is still masked
                as Plan is still in the interrupt printing lots of info 
                for me. 

>From my reading of this, if your interrupt handler takes more than 10 ms, 
then you'll never get another timer interrupt @e, since the evtchn_pending 
is now 1. Is there any way in which a callback for timer ints will occur 
if @e in evtchn_pending was set and the mask is now zero? I can't see it.

>  3. The original value of bit (@e>>5) in evtchn_pending_sel must be zero.

OK, this I can see. 

>  4. The original value of vcpu_data[0].evtchn_upcall_pending must be zero.
>  5. The value of vcpu_data[0].evtchn_upcall_mask must be zero.

OK, this I don't totally see. From the code I posted before, it seems to 
me only the first three conditions matter. 



LANL CCS-1 email flavor:
***** Correspondence   []
***** DUSA LACSI-HW    [ ]
***** DUSA LACSI-OS    [x ]
***** DUSA LACSI-CS    [ ]

SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
Xen-devel mailing list



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