projects
/
openvswitch
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
tests: Handle different output formats for 'wc -l'.
[openvswitch]
/
vswitchd
/
ovs-vswitchd.c
diff --git
a/vswitchd/ovs-vswitchd.c
b/vswitchd/ovs-vswitchd.c
index 8ef3b10e72036bf7c377b4c1c4d20a72bcf45936..84e5ad113302ea3e2573d1a06dcd43f4174521ab 100644
(file)
--- a/
vswitchd/ovs-vswitchd.c
+++ b/
vswitchd/ovs-vswitchd.c
@@
-52,9
+52,14
@@
#include "vconn.h"
#include "vlog.h"
#include "lib/vswitch-idl.h"
#include "vconn.h"
#include "vlog.h"
#include "lib/vswitch-idl.h"
+#include "worker.h"
VLOG_DEFINE_THIS_MODULE(vswitchd);
VLOG_DEFINE_THIS_MODULE(vswitchd);
+/* --mlockall: If set, locks all process memory into physical RAM, preventing
+ * the kernel from paging any of its memory to disk. */
+static bool want_mlockall;
+
static unixctl_cb_func ovs_vswitchd_exit;
static char *parse_options(int argc, char *argv[], char **unixctl_path);
static unixctl_cb_func ovs_vswitchd_exit;
static char *parse_options(int argc, char *argv[], char **unixctl_path);
@@
-81,6
+86,18
@@
main(int argc, char *argv[])
daemonize_start();
daemonize_start();
+ if (want_mlockall) {
+#ifdef HAVE_MLOCKALL
+ if (mlockall(MCL_CURRENT | MCL_FUTURE)) {
+ VLOG_ERR("mlockall failed: %s", strerror(errno));
+ }
+#else
+ VLOG_ERR("mlockall not supported on this system");
+#endif
+ }
+
+ worker_start();
+
retval = unixctl_server_create(unixctl_path, &unixctl);
if (retval) {
exit(EXIT_FAILURE);
retval = unixctl_server_create(unixctl_path, &unixctl);
if (retval) {
exit(EXIT_FAILURE);
@@
-92,6
+109,7
@@
main(int argc, char *argv[])
exiting = false;
while (!exiting) {
exiting = false;
while (!exiting) {
+ worker_run();
if (signal_poll(sighup)) {
vlog_reopen_log_file();
}
if (signal_poll(sighup)) {
vlog_reopen_log_file();
}
@@
-110,6
+128,7
@@
main(int argc, char *argv[])
unixctl_server_run(unixctl);
netdev_run();
unixctl_server_run(unixctl);
netdev_run();
+ worker_wait();
signal_wait(sighup);
memory_wait();
bridge_wait();
signal_wait(sighup);
memory_wait();
bridge_wait();
@@
-175,13
+194,7
@@
parse_options(int argc, char *argv[], char **unixctl_pathp)
exit(EXIT_SUCCESS);
case OPT_MLOCKALL:
exit(EXIT_SUCCESS);
case OPT_MLOCKALL:
-#ifdef HAVE_MLOCKALL
- if (mlockall(MCL_CURRENT | MCL_FUTURE)) {
- VLOG_ERR("mlockall failed: %s", strerror(errno));
- }
-#else
- VLOG_ERR("mlockall not supported on this system");
-#endif
+ want_mlockall = true;
break;
case OPT_UNIXCTL:
break;
case OPT_UNIXCTL: