LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* long disable of Softirqs in br_forward_delay_timer_expired()
@ 2007-01-18 13:44 Juergen Pfeiffer
  2007-01-19  9:35 ` Juergen Pfeiffer
  0 siblings, 1 reply; 2+ messages in thread
From: Juergen Pfeiffer @ 2007-01-18 13:44 UTC (permalink / raw)
  To: linux-kernel

Hi

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(..);

Does anybody know, why the functionality inbetween lock/unlock takes so long
(2-4 jiffies @ HZ=100)


Thank You

Juergen Pfeiffer,
Seskion GmbH
Karlsruher Str. 11/1
70771 Leinfelden-Echterdingen
Germany

j.pfeiffer@seskion.de

www.seskion.de


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: long disable of Softirqs in br_forward_delay_timer_expired()
  2007-01-18 13:44 long disable of Softirqs in br_forward_delay_timer_expired() Juergen Pfeiffer
@ 2007-01-19  9:35 ` Juergen Pfeiffer
  0 siblings, 0 replies; 2+ messages in thread
From: Juergen Pfeiffer @ 2007-01-19  9:35 UTC (permalink / raw)
  To: linux-kernel

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
------------------------------------------------------------------------

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2007-01-19  9:35 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-01-18 13:44 long disable of Softirqs in br_forward_delay_timer_expired() Juergen Pfeiffer
2007-01-19  9:35 ` Juergen Pfeiffer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).