Re: timer_bh behaviour incorrect for 2.2.13?

Andrea Arcangeli (andrea@suse.de)
Thu, 9 Dec 1999 16:53:15 +0100 (CET)


On Thu, 9 Dec 1999, William Montgomery wrote:

>I dont see how a timer IRQ could occur while run_bottom_halves is
>executing.

The timer interrupt happens in the middle of the bottom half, and when the
bh complete it doesn't check if there's something new marked. But the
timer interrupt could happen also in the other CPU a picosecond before
we'll release the global_bh_count lock. So to fix all races a spinlock is
necessary. For UP a pair of __sti(); __cli() inside the while( active = )
would be enough (and I did it yesterday night). But that's not enough for
SMP.

Andrea

-
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/