__save_flags(flags);
atomic_dec(&global_bh_lock);
if (get_active_bhs() )
{
if (flags & (1 << 9))
{
do_bottom_half();
__restore_flags(flags);
}
else
irqdis_nobh();
}
}
----
similar patch to non SMP end_bh_atomic
----
similar patch to enable_bh
----
This allows me to see the irqdis_nobh in my ktrace, however, I never
do see it. I double checked my System.map and it is there.
The following ktrace shows the timer_bh is still not being run
when it should. Any ideas?
22161.62 5.79 timer_interrupt pid(220)
22167.41 0.82 do_timer pid(220)
22168.23 0.80 enable_8259A_irq pid(220)
22169.04 0.14 do_IRQ pid(220)
22169.17 0.16 do_bottom_half pid(220)
22169.33 1.81 do_IRQ pid(220)
22171.14 0.44 del_timer pid(220)
22171.58 0.18 __kfree_skb pid(220)
22171.76 0.26 sock_rfree pid(220)
22172.03 0.16 kfree_skbmem pid(220)
22172.19 0.44 kfree pid(220)
22172.64 1.01 kmem_cache_free pid(220)
22173.65 2243.54 do_IRQ pid(220)
24417.19 0.44 system_call pid(220)
24417.63 0.46 sys_sigsuspend pid(220)
24418.09 0.66 schedule pid(220)
24418.75 0.53 do_bottom_half pid(220)
24419.27 0.77 timer_bh pid(220)
Is there a #define that can be used to refer to the irq flag
as opposed to the magic number (1<<9) ?
Wm
-
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/