long disable of Softirqs in br_forward_delay_timer_expired()

From: Juergen Pfeiffer
Date: Thu Jan 18 2007 - 09:11:25 EST


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