From e5ae7df8c7f44cb2d6f42daaab1d3c26c7a88ae3 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Thu, 26 Aug 2010 09:56:25 -0700 Subject: [PATCH] vswitchd: Fix 100% CPU usage with bonds and --fake-proc-net. 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 --- AUTHORS | 1 + vswitchd/bridge.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 6037ffa6..e08e6b15 100644 --- a/AUTHORS +++ b/AUTHORS @@ -40,6 +40,7 @@ Jan Medved jmedved@juniper.net Jeongkeun Lee jklee@hp.com Joan Cirer joan@ev0.net John Galgay john@galgay.net +Luiz Henrique Ozaki luiz.ozaki@gmail.com Michael Mao mmao@nicira.com Paulo Cravero pcravero@as2594.net Peter Balland peter@nicira.com diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c index 0c283dd2..952049e4 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. */ -- 2.30.2