]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
pthreaded servers: set thread names
authorGarrett Wollman <wollman@csail.mit.edu>
Mon, 18 Jul 2011 01:57:20 +0000 (21:57 -0400)
committerDerrick Brashear <shadow@dementia.org>
Fri, 29 Jul 2011 21:16:25 +0000 (14:16 -0700)
In the startup function for each thread, set a thread name.  This
can safely be done unconditionally as LWP builds turn the call into
a no-op.  In general, the thread name parallels the name passed to
LWP_CreateProcess, but for Rx server threads, it additionally includes
the thread ID so that these threads can easily be distinguished.  (I'm
not sure yet whether doing so will prove to be useful or counterproductive.)

Change-Id: I30e012eebef4c7856084fa8b8eb1d88d9fcdf2c4
Reviewed-on: http://gerrit.openafs.org/5041
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
17 files changed:
src/budb/dbs_dump.c
src/butc/dbentries.c
src/butc/dump.c
src/butc/lwps.c
src/butc/recoverDb.c
src/butc/tcudbprocs.c
src/tptserver/Makefile.in
src/tubik/Makefile.in
src/tviced/Makefile.in
src/tvlserver/Makefile.in
src/tvolser/Makefile.in
src/ubik/beacon.c
src/ubik/recovery.c
src/viced/viced.c
src/vol/fssync-server.c
src/vol/ihandle.c
src/volser/volmain.c

index f1dc0b3d7f11093aaa88f452d2c5ee189e3489b7..26921a9bce784dd64e8e28f3d11d1d40e02d70d7 100644 (file)
@@ -21,6 +21,7 @@
 #include <rx/rxkad.h>
 #include <afs/cellconfig.h>
 #include <afs/audit.h>
+#include <afs/afsutil.h>
 
 #include "budb.h"
 #include "budb_errs.h"
@@ -56,6 +57,7 @@ setupDbDump(void *param)
     int writeFid = (intptr_t)param;
     afs_int32 code = 0;
 
+    afs_pthread_setname_self("Database Dumper");
     code = InitRPC(&dumpSyncPtr->ut, LOCKREAD, 1);
     if (code)
        goto error_exit;
@@ -315,6 +317,7 @@ dumpWatcher(void *unused)
 {
     afs_int32 code;
 
+    afs_pthread_setname_self("Database Dump Watchdog");
     while (1) {                        /*w */
 
        /* printf("dumpWatcher\n"); */
index be9b34327ff600fae2d36e0179e0faa12883502d..5efc3ace7e4d234f565e940f12225238469d1e7c 100644 (file)
@@ -327,6 +327,7 @@ dbWatcher(void *unused)
     afs_int32 code = 0;
     int i, c, addedDump;
 
+    afs_pthread_setname_self("dbWatcher");
     dlqInit(&entries_to_flush);
     dlqInit(&savedEntries);
 
index 532324f89aba3153e908a49500c9fd08807fe621..2d95e09f618076039d0e4be5eff5d18fb886ef34 100644 (file)
@@ -1128,6 +1128,7 @@ Dumper(void *param)
     extern struct deviceSyncNode *deviceLatch;
     extern struct tapeConfig globalTapeConfig;
 
+    afs_pthread_setname_self("dumper");
     taskId = nodePtr->taskID;  /* Get task Id */
     setStatus(taskId, DRIVE_WAIT);
     EnterDeviceQueue(deviceLatch);
@@ -2029,6 +2030,7 @@ DeleteDump(void *param)
     extern struct udbHandleS udbHandle;
     extern struct deviceSyncNode *deviceLatch;
 
+    afs_pthread_setname_self("deletedump");
     setStatus(taskId, DRIVE_WAIT);
     EnterDeviceQueue(deviceLatch);
     clearStatus(taskId, DRIVE_WAIT);
index 47bc3fad21fe5d54b7fa3c3b420d1979f1e33870..1d80c9b1af401a078d8ffd693c2be3c9ba637e88 100644 (file)
@@ -1638,6 +1638,7 @@ Restorer(void *param) {
     time_t startTime, endTime;
     afs_int32 goodrestore = 0;
 
+    afs_pthread_setname_self("restorer");
     taskId = newNode->taskID;
     setStatus(taskId, DRIVE_WAIT);
     EnterDeviceQueue(deviceLatch);
@@ -2104,6 +2105,7 @@ Labeller(void *param)
     afs_uint32 taskId;
     afs_int32 code = 0;
 
+    afs_pthread_setname_self("labeller");
     taskId = labelIfPtr->taskId;
     setStatus(taskId, DRIVE_WAIT);
     EnterDeviceQueue(deviceLatch);
index 40813164b5fb0b963018ce9c40b01c325c05d9a7..8b60945bf7fb03e21a196b490ad8d8bce86ffb5d 100644 (file)
@@ -16,6 +16,7 @@
 #include <rx/rx.h>
 #include <lwp.h>
 #include <lock.h>
+#include <afs/afsutil.h>
 #include <afs/tcdata.h>
 #include <afs/bubasics.h>
 #include <afs/budb.h>
@@ -705,6 +706,7 @@ ScanDumps(void *param)
     afs_uint32 taskId;
     afs_int32 code = 0;
 
+    afs_pthread_setname_self("scandump");
     taskId = ptr->taskId;
     setStatus(taskId, DRIVE_WAIT);
     EnterDeviceQueue(deviceLatch);
index 450f4d53be514d0dadee346d182ef28cc89eec0e..296652c78f877555d9af53136a50bc4bdd1a5a16 100644 (file)
@@ -640,6 +640,7 @@ saveDbToTape(void *param)
     extern struct deviceSyncNode *deviceLatch;
     extern struct tapeConfig globalTapeConfig;
 
+    afs_pthread_setname_self("Db save");
     expires = (saveDbIfPtr->archiveTime ? NEVERDATE : 0);
     taskId = saveDbIfPtr->taskId;
 
@@ -1022,6 +1023,7 @@ restoreDbFromTape(void *param)
     extern struct tapeConfig globalTapeConfig;
     extern struct deviceSyncNode *deviceLatch;
 
+    afs_pthread_setname_self("Db restore");
     setStatus(taskId, DRIVE_WAIT);
     EnterDeviceQueue(deviceLatch);     /* lock tape device */
     clearStatus(taskId, DRIVE_WAIT);
@@ -1119,6 +1121,7 @@ KeepAlive(void *unused)
 
     extern struct udbHandleS udbHandle;
 
+    afs_pthread_setname_self("Keep-alive");
     while (1) {
 #ifdef AFS_PTHREAD_ENV
        sleep(5);
index 3ac5035e77e9eae34d40e52557e3ed96fb709211..8fe341f9414225f055cfc6595167cbdb2477b3a0 100644 (file)
@@ -19,7 +19,8 @@ PTSERVER=$(srcdir)/../ptserver
 RXOBJS= rx_pthread.o rxkad_errs.o
 
 UTILOBJS=assert.o uuid.o serverLog.o fileutil.o netutils.o dirpath.o \
-     volparse.o flipbase64.o softsig.o hostparse.o pthread_glock.o
+     volparse.o flipbase64.o softsig.o hostparse.o pthread_glock.o \
+     pthread_threadname.o
 
 INCLS=${TOP_INCDIR}/ubik.h \
        ${TOP_INCDIR}/lock.h  \
@@ -94,6 +95,9 @@ hostparse.o: ${UTIL}/hostparse.c
 pthread_glock.o: ${UTIL}/pthread_glock.c
        $(AFS_CCRULE) $(UTIL)/pthread_glock.c
 
+pthread_threadname.o: ${UTIL}/pthread_threadname.c
+       $(AFS_CCRULE) $(UTIL)/pthread_threadname.c
+
 ptserver.o: ${PTSERVER}/ptserver.c ${INCLS}
        $(AFS_CCRULE) $(PTSERVER)/ptserver.c
 
index b4ca2cf78daeedee8e2432fcf8191f157187e342..91ed1506ed58bba3c5a0cdc511bf8d51dfc3ede0 100644 (file)
@@ -27,7 +27,8 @@ INCLS=${TOP_INCDIR}/lwp.h ${TOP_INCDIR}/lock.h \
 RXOBJS = rx_pthread.o
 
 UTILOBJS=assert.o uuid.o serverLog.o fileutil.o netutils.o dirpath.o \
-       volparse.o flipbase64.o softsig.o hostparse.o pthread_glock.o
+       volparse.o flipbase64.o softsig.o hostparse.o pthread_glock.o \
+       pthread_threadname.o
 
 LIBS=${RXOBJS} ${UTILOBJS} ${TOP_LIBDIR}/libafsauthent.a ${TOP_LIBDIR}/libafsrpc.a \
      ${TOP_LIBDIR}/libafscom_err.a ${TOP_LIBDIR}/libcmd.a \
@@ -87,6 +88,9 @@ hostparse.o: ${UTIL}/hostparse.c
 pthread_glock.o: ${UTIL}/pthread_glock.c
        $(AFS_CCRULE) $(UTIL)/pthread_glock.c
 
+pthread_threadname.o: ${UTIL}/pthread_threadname.c
+       $(AFS_CCRULE) $(UTIL)/pthread_threadname.c
+
 #
 # insert comments here
 #
index fcd2057950379a0c76eb8bbf944283db0cfa395b..87552206434369b7dd5c92f0294dbbb8c3d55002 100644 (file)
@@ -33,7 +33,7 @@ LWPOBJS=lock.o threadname.o
 
 LIBACLOBJS=aclprocs.o netprocs.o
 
-UTILOBJS=assert.o uuid.o serverLog.o fileutil.o netutils.o dirpath.o volparse.o flipbase64.o softsig.o
+UTILOBJS=assert.o uuid.o serverLog.o fileutil.o netutils.o dirpath.o volparse.o flipbase64.o softsig.o pthread_threadname.o
 
 DIROBJS=buffer.o dir.o salvage.o
 
@@ -103,6 +103,9 @@ dirpath.o: ${UTIL}/dirpath.c
 softsig.o: ${UTIL}/softsig.c
        $(AFS_CCRULE) $(UTIL)/softsig.c
 
+pthread_threadname.o: ${UTIL}/pthread_threadname.c
+       $(AFS_CCRULE) $(UTIL)/pthread_threadname.c
+
 lock.o: ${LWP}/lock.c
        $(AFS_CCRULE) $(LWP)/lock.c
 
index 3ba9acb794c01ec5d0aff873a6f813c60a005d67..9975d39d84d0cbe742c81fdd4e9ccddaf8821858 100644 (file)
@@ -20,7 +20,7 @@ RXOBJS= rx_pthread.o rxkad_errs.o
 
 UTILOBJS=assert.o uuid.o serverLog.o fileutil.o netutils.o dirpath.o \
      volparse.o flipbase64.o softsig.o hostparse.o pthread_glock.o \
-     get_krbrlm.o
+     pthread_threadname.o get_krbrlm.o
 
 INCLS=${TOP_INCDIR}/ubik.h \
              ${TOP_INCDIR}/lwp.h \
@@ -91,6 +91,9 @@ hostparse.o: ${UTIL}/hostparse.c
 pthread_glock.o: ${UTIL}/pthread_glock.c
        $(AFS_CCRULE) $(UTIL)/pthread_glock.c
 
+pthread_threadname.o: ${UTIL}/pthread_threadname.c
+       $(AFS_CCRULE) $(UTIL)/pthread_threadname.c
+
 get_krbrlm.o: ${UTIL}/get_krbrlm.c
        $(AFS_CCRULE) $(UTIL)/get_krbrlm.c
 
index 3506f06cded02dbbb1153c89de80b9bf9c13f856..5bdfee6d64ec5ada8c75e7a89610d8ff25b3614a 100644 (file)
@@ -33,7 +33,7 @@ LWPOBJS=lock.o threadname.o
 
 LIBACLOBJS=aclprocs.o netprocs.o
 
-UTILOBJS=assert.o uuid.o serverLog.o fileutil.o netutils.o dirpath.o volparse.o flipbase64.o softsig.o
+UTILOBJS=assert.o uuid.o serverLog.o fileutil.o netutils.o dirpath.o volparse.o flipbase64.o softsig.o pthread_threadname.o
 
 DIROBJS=buffer.o dir.o salvage.o
 
@@ -127,6 +127,9 @@ dirpath.o: ${UTIL}/dirpath.c
 softsig.o: ${UTIL}/softsig.c
        $(AFS_CCRULE) $(UTIL)/softsig.c
 
+pthread_threadname.o: ${UTIL}/pthread_threadname.c
+       $(AFS_CCRULE) $(UTIL)/pthread_threadname.c
+
 lock.o: ${LWP}/lock.c
        $(AFS_CCRULE) $(LWP)/lock.c
 
index eb2d5264decd8ab8f2ef2f4128e603e4544eb5c8..d12274d389c610cad352ef1b5b5c7ae831962a14 100644 (file)
@@ -402,6 +402,8 @@ ubeacon_Interact(void *dummy)
     struct ubik_version tversion;
     afs_int32 startTime;
 
+    afs_pthread_setname_self("beacon");
+
     /* loop forever getting votes */
     lastWakeupTime = 0;                /* keep track of time we last started a vote collection */
     while (1) {
index 6c3a8cb88ad5de28ac9d27af87680968f1e48d0d..c858728d8fb3e2c09e646d569bd6bd2f6d108e3f 100644 (file)
@@ -458,6 +458,8 @@ urecovery_Interact(void *dummy)
     int fd = -1;
     afs_int32 pass;
 
+    afs_pthread_setname_self("recovery");
+
     /* otherwise, begin interaction */
     urecovery_state = 0;
     lastProbeTime = 0;
index eef02ca6253809afa8fd9c3a5f9a4f78bf5915bc..6cc25aba1bc8c1f0dab6740359eb0d6d539d4f56 100644 (file)
@@ -752,6 +752,7 @@ CheckSignal(void *unused)
 static void *
 ShutdownWatchdogLWP(void *unused)
 {
+    afs_pthread_setname_self("ShutdownWatchdog");
     sleep(panic_timeout);
     ViceLogThenPanic(0, ("ShutdownWatchdogLWP: Failed to shutdown and panic "
                          "within %d seconds; forcing panic\n",
index 25f60c3a25219a82d8888defe904fe31bc2ccd9e..f6e9c2f26f036c4b69c7d0a1964cc0fb704861e6 100644 (file)
@@ -257,6 +257,7 @@ FSYNC_sync(void * args)
     /* set our 'thread-id' so that the host hold table works */
     tid = rx_SetThreadNum();
     Log("Set thread id %d for FSYNC_sync\n", tid);
+    afs_pthread_setname_self("FSYNC_sync");
 #endif /* AFS_PTHREAD_ENV */
 
     VOL_LOCK;
index 892853ca98999d9fe6bb6a0d8994c7b352f5f4de..0809aef8d66893cbd5bfcfa4ac439aeff7e38977 100644 (file)
@@ -25,6 +25,7 @@
 #include <rx/xdr.h>
 #include <afs/afsint.h>
 #include <afs/afssyscalls.h>
+#include <afs/afsutil.h>
 
 #include "nfs.h"
 #include "ihandle.h"
@@ -988,6 +989,7 @@ ih_sync_all(void) {
 
 void *
 ih_sync_thread(void *dummy) {
+    afs_pthread_setname_self("ih_syncer");
     while(1) {
 
 #ifdef AFS_PTHREAD_ENV
index daf5920dd855ebb22da3a2e7317a6fb1e8cbba65..800f330624a609f3e99adb4efd83d4c8e9810503 100644 (file)
@@ -122,6 +122,7 @@ BKGLoop(void *unused)
     struct timeval tv;
     int loop = 0;
 
+    afs_pthread_setname_self("vol bkg");
     while (1) {
        tv.tv_sec = GCWAKEUP;
        tv.tv_usec = 0;