Re: long disable of Softirqs in br_forward_delay_timer_expired()
From: Juergen Pfeiffer
Date: Fri Jan 19 2007 - 04:35:49 EST
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@xxxxxxxxxx
www.seskion.de
------------------------------------------------------------------------
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/