[Bridge] [PATCH 2.6.23.1] Kill STP hello timer if STP is not enabled
Michał Mirosław
mirq-linux at rere.qmqm.pl
Mon Oct 15 14:48:12 PDT 2007
Quick CPU eater kill. This might be not the best fix possible.
Without this patch, hello_timer is firing 250 times/sec and eating about
8% CPU time on my an otherwise idle system (dynticks enabled). 2.6.21.5 was
even worse - 20% (HZ=1000). (br->hello_time was supposedly 0 when STP was
disabled).
Signed-off-by: Michał Mirosław <mirq-linux at rere.qmqm.pl>
--- qmqm/net/bridge/br_stp_if.c.orig 2007-10-15 10:30:24.000000000 +0200
+++ qmqm/net/bridge/br_stp_if.c 2007-10-15 10:34:07.000000000 +0200
@@ -47,10 +47,12 @@
struct net_bridge_port *p;
spin_lock_bh(&br->lock);
- mod_timer(&br->hello_timer, jiffies + br->hello_time);
+ if (br->stp_enabled == BR_KERNEL_STP)
+ mod_timer(&br->hello_timer, jiffies + br->hello_time);
mod_timer(&br->gc_timer, jiffies + HZ/10);
- br_config_bpdu_generation(br);
+ if (br->stp_enabled == BR_KERNEL_STP)
+ br_config_bpdu_generation(br);
list_for_each_entry(p, &br->port_list, list) {
if ((p->dev->flags & IFF_UP) && netif_carrier_ok(p->dev))
More information about the Bridge
mailing list