Messages in this thread | | | Date | Fri, 19 Jan 2007 10:35:21 +0100 | From | Juergen Pfeiffer <> | Subject | Re: long disable of Softirqs in br_forward_delay_timer_expired() |
| |
Juergen Pfeiffer schrieb: > > I had problems in my implementation of Profibus-protocol, because my > FDL-State machine is implemented in tasklets and > sometimes there were situations, where Soft-Irqs were disabled for > 20-40mS (Coldfire 5485 / 96MHz). > After inserting some testpoints in kernels source, doing dump_stack(), > when the jiffie-time get longer then 20mS, > i detected the place of the long Soft-Irq disable in function > > static void br_forward_delay_timer_expired(..) > inside file "net/bridge/br_stp_timer.c" > > It does a > spin_lock_bh(..); > ... some functionality; > spin_unlock_bh(..);
Hi
I found the reason for the long disabling of Soft-Irqs:
In-between the spin_lock_bh() and spin_unlock_bh() was a printk() going to serial console with 19200baud. So it took easily 30mS for console-output.
No i start klogd an the log Messages go to a file in tmpfs in a short time.
Juergen Pfeiffer, Seskion GmbH Karlsruher Str. 11/1 70771 Leinfelden-Echterdingen Germany
j.pfeiffer@seskion.de
www.seskion.de ------------------------------------------------------------------------ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |