ovs-vswitchd occasionally needs to do some activities that may block in the kernel unavoidably. This patch series changes ovs-vswitchd to do these activities in a separate "worker process".
Ben Pfaff (12): socket-util: Remove 'passcred' parameter from make_unix_socket(). socket-util: New function xset_nonblocking(). socket-util: Add functions for sending fds over Unix domain sockets. util: Introduce "subprogram_name" to identify subprocesses and threads. daemon: Factor out code into new function fork_and_wait_for_startup(). daemon: Factor out code into new function daemonize_post_detach(). vlog: Add VLOG_ABORT() to log and call abort(). worker: New library for breaking a daemon into multiple processes. vlog: Use system calls instead of stdio to write log files. vlog: Use worker process to write to log file. shash: New functions smap_from_json(), smap_to_json(). system-stats: Run as part of worker process. NEWS | 4 +- include/sparse/sys/socket.h | 31 +++ lib/automake.mk | 4 +- lib/daemon.c | 69 +++++-- lib/daemon.h | 3 + lib/fatal-signal.c | 4 +- lib/process.c | 6 +- lib/shash.c | 39 ++++- lib/shash.h | 6 +- lib/signals.c | 6 +- lib/socket-util.c | 278 +++++++++++++++++++++++++-- lib/socket-util.h | 30 +++- lib/stream-unix.c | 4 +- lib/util.c | 23 ++- lib/util.h | 3 + lib/vlog.c | 128 +++++++++++-- lib/vlog.h | 16 +- lib/worker.c | 447 +++++++++++++++++++++++++++++++++++++++++++ lib/worker.h | 68 +++++++ tests/test-unix-socket.c | 6 +- utilities/ovs-appctl.8.in | 10 + vswitchd/bridge.c | 59 ++++-- vswitchd/ovs-vswitchd.c | 5 + vswitchd/system-stats.c | 165 +++++++++++++++- vswitchd/system-stats.h | 8 +- 25 files changed, 1326 insertions(+), 96 deletions(-) create mode 100644 lib/worker.c create mode 100644 lib/worker.h -- 1.7.2.5 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev