netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Reduce frequency of cleanup timer in bridge
@ 2007-05-19 22:46 Baruch Even
  2007-05-30 19:12 ` [PATCH 1/2] bridge: reduce frequency of forwarding " Stephen Hemminger
  0 siblings, 1 reply; 4+ messages in thread
From: Baruch Even @ 2007-05-19 22:46 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: netdev, power

The bridge cleanup timer is fired 10 times a second for timers that are
at least 15 seconds ahead in time and that are not critical to be
cleaned asap.

This patch calculates the next time to run the timer as the minimum of
all timers or a minimum based on the current state.

Signed-Off-By: Baruch Even <baruch@ev-en.org>

--- 2.6.22-rc2/net/bridge/br_fdb.c	2007-05-20 00:51:11.000000000 +0300
+++ 2.6-rc2/net/bridge/br_fdb.c	2007-05-20 00:50:31.000000000 +0300
@@ -121,6 +121,7 @@
 {
 	struct net_bridge *br = (struct net_bridge *)_data;
 	unsigned long delay = hold_time(br);
+	unsigned long next_timer = jiffies + br->forward_delay;
 	int i;
 
 	spin_lock_bh(&br->hash_lock);
@@ -129,14 +130,21 @@
 		struct hlist_node *h, *n;
 
 		hlist_for_each_entry_safe(f, h, n, &br->hash[i], hlist) {
+			unsigned long this_timer;
+			if (f->is_static)
+				continue;
+			this_timer = f->ageing_timer + delay;
+			if (time_before_eq(this_timer, jiffies))
-			if (!f->is_static &&
-			    time_before_eq(f->ageing_timer + delay, jiffies))
 				fdb_delete(f);
+			else if (this_timer < next_timer)
+				next_timer = this_timer;
 		}
 	}
 	spin_unlock_bh(&br->hash_lock);
 
+	/* Add HZ/4 to ensure we round the jiffies upwards to be after the next
+	 * timer, otherwise we might round down and will have no-op run. */
+	mod_timer(&br->gc_timer, round_jiffies(next_timer + HZ/4));
-	mod_timer(&br->gc_timer, jiffies + HZ/10);
 }
 
 /* Completely flush all dynamic entries in forwarding database.*/


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

end of thread, other threads:[~2007-05-31  8:21 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-19 22:46 [PATCH] Reduce frequency of cleanup timer in bridge Baruch Even
2007-05-30 19:12 ` [PATCH 1/2] bridge: reduce frequency of forwarding " Stephen Hemminger
2007-05-30 19:14   ` [PATCH 2/2] bridge: round off STP perodic timers Stephen Hemminger
2007-05-31  8:21     ` David Miller

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