Messages in this thread | | | Date | Thu, 9 Dec 1999 19:10:19 +0100 (CET) | From | Andrea Arcangeli <> | Subject | Re: timer_bh behaviour incorrect for 2.2.13? |
| |
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/
| |