[ovs-dev] [PATCH] vswitchd: Fix 100% CPU usage with bonds and --fake-proc-net.

Ben Pfaff blp at nicira.com
Thu Aug 26 16:56:41 UTC 2010

The current date in milliseconds since the epoch is ~1,282,841,552,000,
which is greater than LONG_MAX of 4,294,967,295 on 32-bit systems, so
no matter what was stored into bond_next_fake_iface_update, it would always
appear to be expired.  It really needs to be a 64-bit number.  (This was
just a typo really.)

Since XenServer 5.5 requires --fake-proc-net, this probably fixes an
important bug there.

Reported-by: Luiz Henrique Ozaki <luiz.ozaki at gmail.com>
 AUTHORS           |    1 +
 vswitchd/bridge.c |    2 +-
 2 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/AUTHORS b/AUTHORS
index 6037ffa..e08e6b1 100644
@@ -40,6 +40,7 @@ Jan Medved              jmedved at juniper.net
 Jeongkeun Lee           jklee at hp.com
 Joan Cirer              joan at ev0.net
 John Galgay             john at galgay.net
+Luiz Henrique Ozaki     luiz.ozaki at gmail.com
 Michael Mao             mmao at nicira.com
 Paulo Cravero           pcravero at as2594.net
 Peter Balland           peter at nicira.com
diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c
index b4167f6..8dd51f1 100644
--- a/vswitchd/bridge.c
+++ b/vswitchd/bridge.c
@@ -141,7 +141,7 @@ struct port {
     int updelay, downdelay;     /* Delay before iface goes up/down, in ms. */
     bool bond_compat_is_stale;  /* Need to call port_update_bond_compat()? */
     bool bond_fake_iface;       /* Fake a bond interface for legacy compat? */
-    long bond_next_fake_iface_update; /* Next update to fake bond stats. */
+    long long int bond_next_fake_iface_update; /* Time of next update. */
     int bond_rebalance_interval; /* Interval between rebalances, in ms. */
     long long int bond_next_rebalance; /* Next rebalancing time. */

More information about the dev mailing list