X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=ovsdb%2Fovsdb-server.c;h=8412cbb91655013769c9b46085a215529dc12ed3;hb=a890678229e7e72703ef3b27d8a98ccd9d7c4446;hp=28bf901eb0bf07ef4725ee2cd73c51dfb2744f4c;hpb=e0edde6fee279cdbbf3c179f5f50adaf0c7c7f1e;p=openvswitch diff --git a/ovsdb/ovsdb-server.c b/ovsdb/ovsdb-server.c index 28bf901e..8412cbb9 100644 --- a/ovsdb/ovsdb-server.c +++ b/ovsdb/ovsdb-server.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2009, 2010, 2011 Nicira, Inc. +/* Copyright (c) 2009, 2010, 2011, 2012 Nicira, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -32,6 +32,7 @@ #include "jsonrpc-server.h" #include "leak-checker.h" #include "list.h" +#include "memory.h" #include "ovsdb.h" #include "ovsdb-data.h" #include "ovsdb-types.h" @@ -39,6 +40,7 @@ #include "poll-loop.h" #include "process.h" #include "row.h" +#include "simap.h" #include "stream-ssl.h" #include "stream.h" #include "stress.h" @@ -103,6 +105,8 @@ main(int argc, char *argv[]) daemonize_start(); + VLOG_INFO("%s (Open vSwitch) %s", program_name, VERSION); + error = ovsdb_file_open(file_name, false, &db, &file); if (error) { ovs_fatal(0, "%s", ovsdb_error_to_string(error)); @@ -143,6 +147,17 @@ main(int argc, char *argv[]) exiting = false; while (!exiting) { + memory_run(); + if (memory_should_report()) { + struct simap usage; + + simap_init(&usage); + ovsdb_jsonrpc_server_get_memory_usage(jsonrpc, &usage); + ovsdb_get_memory_usage(db, &usage); + memory_report(&usage); + simap_destroy(&usage); + } + reconfigure_from_db(jsonrpc, db, &remotes); ovsdb_jsonrpc_server_run(jsonrpc); unixctl_server_run(unixctl); @@ -157,6 +172,7 @@ main(int argc, char *argv[]) update_remote_status(jsonrpc, &remotes, db); } + memory_wait(); ovsdb_jsonrpc_server_wait(jsonrpc); unixctl_server_wait(unixctl); ovsdb_trigger_wait(db, time_msec());