From: Ben Pfaff Date: Thu, 26 Aug 2010 16:56:25 +0000 (-0700) Subject: vswitchd: Fix 100% CPU usage with bonds and --fake-proc-net. X-Git-Tag: v1.1.0pre1~25 X-Git-Url: http://git.onelab.eu/?p=sliver-openvswitch.git;a=commitdiff_plain;h=e5ae7df8c7f44cb2d6f42daaab1d3c26c7a88ae3 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 --- diff --git a/AUTHORS b/AUTHORS index 6037ffa62..e08e6b15b 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 0c283dd29..952049e41 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. */