Re: timer_bh behaviour incorrect for 2.2.13?

Andrea Arcangeli (andrea@suse.de)
Thu, 9 Dec 1999 19:10:19 +0100 (CET)


On Thu, 9 Dec 1999, Benjamin C.R. LaHaise wrote:

> __cli();
> hardirq_endlock(cpu);
>+ softirq_endlock(cpu);
>+
>+ /*
>+ * Avoid the race by checking if any bottom halves
>+ * are active after releasing all locks. This is a
>+ * rare race, but should inexpensive to check. -bcrl
>+ */
>+ rmb();
>+ if (get_active_bhs() & left)
>+ goto again;
>+ return;

rmb() should be replaced with mb() (SMP race).

About the design it doesn't solve anything as you still wait 10msec for a
net_bh() if you get a secondary nested network irq in the middle of the bh
processing. You run net_bh at max one time per loop so you still can
return with NET_BH marked as with 2.2.14pre12.

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/