diff options
author | Alex Wang <alexw@nicira.com> | 2014-09-30 13:46:22 -0700 |
---|---|---|
committer | Alex Wang <alexw@nicira.com> | 2014-09-30 17:34:04 -0700 |
commit | 6bef3c7ca859f208239ca61ec3b25c09a3571553 (patch) | |
tree | f69d6e98c99d1cfa249022ba9343ed36457eb7f9 /vswitchd | |
parent | d7fdacb78804599141d56c98a303e2ba6c12fd9b (diff) | |
download | openvswitch-6bef3c7ca859f208239ca61ec3b25c09a3571553.tar.gz |
bridge: Fix high cpu utilization.
When there are more than one ovs-vswitchd processes started,
only one process is enabled. The disabled processes should
just sleep. However, a bug in ovs makes the disabled processes
keep waking up on global connectivity sequence number which is
never sync'ed. Consequently, those processes use 100% cpu.
This commit fixes the bug by always sync up the connectivity
sequence number for disabled processes.
Reported-by: Ben Pfaff <blp@nicira.com>
Signed-off-by: Alex Wang <alexw@nicira.com>
Acked-by: Joe Stringer <joestringer@nicira.com>
Diffstat (limited to 'vswitchd')
-rw-r--r-- | vswitchd/bridge.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c index 99dd21f9a..c5c6096b0 100644 --- a/vswitchd/bridge.c +++ b/vswitchd/bridge.c @@ -2772,6 +2772,9 @@ bridge_run(void) * with the current situation of multiple ovs-vswitchd daemons, * disable system stats collection. */ system_stats_enable(false); + /* This prevents the process from constantly waking up on + * connectivity seq. */ + connectivity_seqno = seq_read(connectivity_seq_get()); return; } else if (!ovsdb_idl_has_lock(idl)) { return; |