> I'll try again with irq disabled:
>
> CPU0 CPU1
> ------------- -------------------
> __cli();
> hardirq_endlock()
> do_IRQ
> timer_interrupt()
> mark_bh(TIMER_BH)
> do_bottom_half
> global_bh_count still 1 (other CPU)
> so skip bh processing.
> iret (return to userspace)
> softirq_endlock (too late!)
what i ment was that i think that this is physically impossible. Since
local interrupts are disabled, even with the worst cache-miss and TLB-miss
scenario possible, it's impossible for the above big chunk of code to
execute just inbetween those two others.
-- mingo
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/