• Ingo Molnar's avatar
    [PATCH] softirqs: fix latency of softirq processing · 40e39ce0
    Ingo Molnar authored
    The attached patch fixes a local_bh_enable() buglet: we first enabled
    softirqs then did we do local_softirq_pending() - often this is preemptible
    code.  So this task could be preempted and there's no guarantee that
    softirq processing will occur (except the periodic timer tick).
    
    The race window is small but existent.  This could result in packet
    processing latencies or timer expiration latencies - hard to detect and
    annoying bugs.
    
    The fix is to invoke softirqs with softirqs enabled but preemption still
    disabled.  Patch is against 2.6.9-rc2-mm1.
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    Cc: <davem@davemloft.net>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    40e39ce0
softirq.c 10.6 KB