ovs-rcu: Log the name of the main thread as "main" instead of "".
authorBen Pfaff <blp@nicira.com>
Tue, 29 Apr 2014 21:44:39 +0000 (14:44 -0700)
committerBen Pfaff <blp@nicira.com>
Tue, 29 Apr 2014 22:18:33 +0000 (15:18 -0700)
The main thread has the empty string as its name, but that's not a good
log string.

Without this patch we can get log message like
    blocked 1000 ms waiting for  to quiesce
from ovsrcu_synchronize().

Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Alex Wang <alexw@nicira.com>
lib/ovs-rcu.c

index 8a12564..7aed6db 100644 (file)
@@ -71,11 +71,13 @@ ovsrcu_perthread_get(void)
 
     perthread = pthread_getspecific(perthread_key);
     if (!perthread) {
+        const char *name = get_subprogram_name();
+
         perthread = xmalloc(sizeof *perthread);
         ovs_mutex_init(&perthread->mutex);
         perthread->seqno = seq_read(global_seqno);
         perthread->cbset = NULL;
-        ovs_strlcpy(perthread->name, get_subprogram_name(),
+        ovs_strlcpy(perthread->name, name[0] ? name : "main",
                     sizeof perthread->name);
 
         ovs_mutex_lock(&ovsrcu_threads_mutex);