If ovsdb-server is not running and I try to start single ovs-vswitchd
instance without any init scripts, then I am still seeing 100% CPU
utilization and multiple ovs-vswitchd instances in "ps" output. Still
trying to understand what is going on...

aatteka@aatteka-MacBookPro:~/openvswitch$ ps -Af | grep ovs-vs
root      8187 26324  0 14:38 pts/3    00:00:00 sudo ovs-vswitchd
unix:/var/run/openvswitch/db.sock -vconsole:emer -vsyslog:err -vfile:info
--mlockall --no-chdir --log-file=/var/log/openvswitch/ovs-vswitchd.log
--pidfile=/var/run/openvswitch/ovs-vswitchd.pid --detach --monitor
root      8188  8187  0 14:38 pts/3    00:00:00 ovs-vswitchd
unix:/var/run/openvswitch/db.sock -vconsole:emer -vsyslog:err -vfile:info
--mlockall --no-chdir --log-file=/var/log/openvswitch/ovs-vswitchd.log
--pidfile=/var/run/openvswitch/ovs-vswitchd.pid --detach --monitor
root      8189  8188  0 14:38 ?        00:00:00 ovs-vswitchd
unix:/var/run/openvswitch/db.sock -vconsole:emer -vsyslog:err -vfile:info
--mlockall --no-chdir --log-file=/var/log/openvswitch/ovs-vswitchd.log
--pidfile=/var/run/openvswitch/ovs-vswitchd.pid --detach --monitor
root      8190  8189 87 14:38 ?        00:01:43 ovs-vswitchd
unix:/var/run/openvswitch/db.sock -vconsole:emer -vsyslog:err -vfile:info
--mlockall --no-chdir --log-file=/var/log/openvswitch/ovs-vswitchd.log
--pidfile=/var/run/openvswitch/ovs-vswitchd.pid --detach --monitor
root      8191  8190  0 14:38 ?        00:00:00 ovs-vswitchd: worker
process for pid
8190

aatteka   8219 26488  0 14:40 pts/4    00:00:00 grep --color=auto ovs-vs
aatteka@aatteka-MacBookPro:~/openvswitch$ top

top - 14:41:50 up  4:47,  6 users,  load average: 1.31, 1.18, 1.14
Tasks: 224 total,   2 running, 222 sleeping,   0 stopped,   0 zombie
%Cpu(s):  4.1 us,  2.1 sy,  0.0 ni, 93.1 id,  0.6 wa,  0.0 hi,  0.1 si,
0.0 st
KiB Mem:   8087432 total,  4069712 used,  4017720 free,   277992 buffers
KiB Swap:  8298492 total,        0 used,  8298492 free,  1593760 cached

  PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+
COMMAND

 8190 root      20   0 23288 6796 6180 R 104.1  0.1   3:03.01
ovs-vswitchd

...


On Thu, Apr 11, 2013 at 2:03 PM, Ben Pfaff <b...@nicira.com> wrote:

> If the database was empty, that is, it did not even contain an Open_vSwitch
> top-level configuration record, at ovs-vswitchd startup time, then
> OVS failed to detach and used 100% CPU.  This commit fixes the problem.
>
> This problem was introduced by commit 63ff04e82623e765 (bridge: Only
> complete daemonization after db commits initial config.).
>
> This problem did not manifest if the initscripts supplied with Open vSwitch
> were used, because those initscripts always initialize the database before
> starting ovs-vswitchd, so this problem affects only users with hand-rolled
> local OVS startup scripts.
>
> Bug #16090.
> Reported-by: Pravin Shelar <pshe...@nicira.com>
> Tested-by: Pravin Shelar <pshe...@nicira.com>
> Reported-by: Paul Ingram <p...@nicira.com>
> Reported-by: Amre Shakimov <ashaki...@vmware.com>
> Signed-off-by: Ben Pfaff <b...@nicira.com>
> ---
>  AUTHORS           |    1 +
>  vswitchd/bridge.c |   34 +++++++++++++++++-----------------
>  2 files changed, 18 insertions(+), 17 deletions(-)
>
> diff --git a/AUTHORS b/AUTHORS
> index 07dce20..e3568bd 100644
> --- a/AUTHORS
> +++ b/AUTHORS
> @@ -103,6 +103,7 @@ Alex Yip                a...@nicira.com
>  Alexey I. Froloff       ra...@altlinux.org
>  Amar Padmanabhan        a...@nicira.com
>  Amey Bhide              abh...@nicira.com
> +Amre Shakimov           ashaki...@vmware.com
>  André Ruß               andre.r...@hybris.com
>  Andreas Beckmann        deb...@abeckmann.de
>  Atzm Watanabe           a...@stratosphere.co.jp
> diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c
> index 1fcf547..09f98d5 100644
> --- a/vswitchd/bridge.c
> +++ b/vswitchd/bridge.c
> @@ -2269,25 +2269,25 @@ bridge_run(void)
>      }
>
>      if (reconfiguring) {
> -        if (cfg) {
> -            if (!reconf_txn) {
> -                reconf_txn = ovsdb_idl_txn_create(idl);
> -            }
> -            if (bridge_reconfigure_continue(cfg)) {
> +        if (!reconf_txn) {
> +            reconf_txn = ovsdb_idl_txn_create(idl);
> +        }
> +
> +        if (bridge_reconfigure_continue(cfg ? cfg : &null_cfg)) {
> +            reconfiguring = false;
> +
> +            if (cfg) {
>                  ovsrec_open_vswitch_set_cur_cfg(cfg, cfg->next_cfg);
> -                reconfiguring = false;
> -
> -                /* If we are completing our initial configuration for
> this run
> -                 * of ovs-vswitchd, then keep the transaction around to
> monitor
> -                 * it for completion. */
> -                if (!initial_config_done) {
> -                    initial_config_done = true;
> -                    daemonize_txn = reconf_txn;
> -                    reconf_txn = NULL;
> -                }
>              }
> -        } else {
> -            bridge_reconfigure_continue(&null_cfg);
> +
> +            /* If we are completing our initial configuration for this run
> +             * of ovs-vswitchd, then keep the transaction around to
> monitor
> +             * it for completion. */
> +            if (!initial_config_done) {
> +                initial_config_done = true;
> +                daemonize_txn = reconf_txn;
> +                reconf_txn = NULL;
> +            }
>          }
>      }
>
> --
> 1.7.2.5
>
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
>
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to