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 <[EMAIL PROTECTED]>

--- 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))
_______________________________________________
Bridge mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/bridge

Reply via email to