From: Ben Pfaff Date: Fri, 12 Jul 2013 00:10:11 +0000 (-0700) Subject: vlog: Remove support for worker process. X-Git-Tag: sliver-openvswitch-2.0.90-1~36^2~43 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=0a04ad85a3f0c5d323a91763369c7c5b2f6ff66b;p=sliver-openvswitch.git vlog: Remove support for worker process. The worker process implementation isn't thread-safe and, once OVS itself is threaded, it doesn't make much sense to have a worker process anyway. Signed-off-by: Ben Pfaff Acked-by: Ed Maste --- diff --git a/lib/vlog.c b/lib/vlog.c index f87f48f82..a880e0796 100644 --- a/lib/vlog.c +++ b/lib/vlog.c @@ -37,7 +37,6 @@ #include "timeval.h" #include "unixctl.h" #include "util.h" -#include "worker.h" VLOG_DEFINE_THIS_MODULE(vlog); @@ -104,8 +103,6 @@ static void format_log_message(const struct vlog_module *, enum vlog_level, enum vlog_facility, unsigned int msg_num, const char *message, va_list, struct ds *) PRINTF_FORMAT(5, 0); -static void vlog_write_file(struct ds *); -static void vlog_update_async_log_fd(void); /* Searches the 'n_names' in 'names'. Returns the index of a match for * 'target', or 'n_names' if no name matches. */ @@ -310,9 +307,6 @@ vlog_set_log_file(const char *file_name) /* Open new log file and update min_levels[] to reflect whether we actually * have a log_file. */ log_fd = open(log_file_name, O_WRONLY | O_CREAT | O_APPEND, 0666); - if (log_fd >= 0) { - vlog_update_async_log_fd(); - } for (mp = vlog_modules; mp < &vlog_modules[n_vlog_modules]; mp++) { update_min_level(*mp); } @@ -809,7 +803,7 @@ vlog_valist(const struct vlog_module *module, enum vlog_level level, format_log_message(module, level, VLF_FILE, msg_num, message, args, &s); ds_put_char(&s, '\n'); - vlog_write_file(&s); + ignore(write(log_fd, s.string, s.length)); } ds_destroy(&s); @@ -958,59 +952,3 @@ vlog_usage(void) " (default: %s/%s.log)\n", ovs_logdir(), program_name); } - -static bool vlog_async_inited = false; - -static worker_request_func vlog_async_write_request_cb; - -static void -vlog_write_file(struct ds *s) -{ - if (worker_is_running()) { - static bool in_worker_request = false; - if (!in_worker_request) { - in_worker_request = true; - - worker_request(s->string, s->length, - &log_fd, vlog_async_inited ? 0 : 1, - vlog_async_write_request_cb, NULL, NULL); - vlog_async_inited = true; - - in_worker_request = false; - return; - } else { - /* We've been entered recursively. This can happen if - * worker_request(), or a function that it calls, tries to log - * something. We can't call worker_request() recursively, so fall - * back to writing the log file directly. */ - COVERAGE_INC(vlog_recursive); - } - } - ignore(write(log_fd, s->string, s->length)); -} - -static void -vlog_update_async_log_fd(void) -{ - if (worker_is_running()) { - worker_request(NULL, 0, &log_fd, 1, vlog_async_write_request_cb, - NULL, NULL); - vlog_async_inited = true; - } -} - -static void -vlog_async_write_request_cb(struct ofpbuf *request, - const int *fd, size_t n_fds) -{ - if (n_fds > 0) { - if (log_fd >= 0) { - close(log_fd); - } - log_fd = *fd; - } - - if (request->size > 0) { - ignore(write(log_fd, request->data, request->size)); - } -}