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

[Xen-devel] do_softirq + interrupts



On PPC I'm having a race with do_softirq, so I'm trying to figure out how x86 
calls it. As far as I can tell, it looks like this:

        apic_timer_interrupt <interrupts disabled>
        smp_apic_timer_interrupt [raise TIMER_SOFTIRQ)]
        ret_from_intr
        test_all_events [sees TIMER_SOFTIRQ]
        <interrupts enabled>
        do_softirq()
                ***
                pending = softirq_pending(cpu);
                ASSERT(pending != 0);
                ...
        <interrupts disabled>
        iret

What confuses me is that any other interrupt could come in at point *** above, 
right? That interrupt will follow a very similar path, calling do_softirq 
again, and handle TIMER_SOFTIRQ. Then when the first do_softirq resumes, the 
ASSERT will trip.

What am I missing?

-- 
Hollis Blanchard
IBM Linux Technology Center

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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