[Pvfs2-cvs] commit by bligon in pvfs2/include: pvfs2-debug.h

CVS commit program cvs at parl.clemson.edu
Fri Jan 29 14:54:18 EST 2010


Update of /projects/cvsroot/pvfs2/include
In directory parlweb1:/tmp/cvs-serv24658/include

Modified Files:
      Tag: Orange-Branch
	pvfs2-debug.h 
Log Message:
These changes give us the ability to modify the gossip-debug-mask for the client-core or the
kernel module dynamically via the proc system.  The following files were modified:
 	include/pvfs2-debug.h 
 	src/apps/kernel/linux/pvfs2-client-core.c 
 	src/common/misc/pvfs2-debug.c src/io/dev/pint-dev.c 
 	src/io/dev/pint-dev.h src/kernel/linux-2.6/dcache.c 
 	src/kernel/linux-2.6/devpvfs2-req.c 
 	src/kernel/linux-2.6/pvfs2-dev-proto.h 
 	src/kernel/linux-2.6/pvfs2-mod.c 
 	src/kernel/linux-2.6/pvfs2-proc.c 
 	src/kernel/linux-2.6/pvfs2-utils.c 
 	src/kernel/linux-2.6/upcall.h 


Index: pvfs2-debug.h
===================================================================
RCS file: /projects/cvsroot/pvfs2/include/pvfs2-debug.h,v
diff -p -u -r1.59.10.1 -r1.59.10.2
--- pvfs2-debug.h	30 Apr 2009 15:02:58 -0000	1.59.10.1
+++ pvfs2-debug.h	29 Jan 2010 19:54:16 -0000	1.59.10.2
@@ -112,13 +112,155 @@ const char *PVFS_debug_get_next_debug_ke
 #define GOSSIP_MAX_NR                 15
 #define GOSSIP_MAX_DEBUG              (((uint64_t)1 << GOSSIP_MAX_NR) - 1)
 
-/*
- * To allow these masks to be settable from pvfs2-client-core,
- * edit pvfs2-debug.c to add human readable event mask strings
- * in s_kmod_keyword_mask_map[] array.
- */
-uint64_t PVFS_kmod_eventlog_to_mask(
-    const char *event_logging);
+
+/*function prototypes*/
+uint64_t PVFS_kmod_eventlog_to_mask(const char *event_logging);
+uint64_t PVFS_debug_eventlog_to_mask(const char *event_logging);
+char * PVFS_debug_mask_to_eventlog(uint64_t mask);
+char * PVFS_kmod_mask_to_eventlog(uint64_t mask);
+
+/* a private internal type */
+typedef struct 
+{
+    const char *keyword;
+    uint64_t mask_val;
+} __keyword_mask_t;
+
+#define __DEBUG_ALL ((uint64_t) -1)
+
+/* map all config keywords to pvfs2 debug masks here */
+static __keyword_mask_t s_keyword_mask_map[] =
+{
+    /* Log trove debugging info.  Same as 'trove'.*/
+    { "storage", GOSSIP_TROVE_DEBUG },
+    /* Log trove debugging info.  Same as 'storage'. */
+    { "trove", GOSSIP_TROVE_DEBUG },
+    /* Log trove operations. */
+    { "trove_op", GOSSIP_TROVE_OP_DEBUG },
+    /* Log network debug info. */
+    { "network", GOSSIP_BMI_DEBUG_ALL },
+    /* Log server info, including new operations. */
+    { "server", GOSSIP_SERVER_DEBUG },
+    /* Log client sysint info.  This is only useful for the client. */
+    { "client", GOSSIP_CLIENT_DEBUG },
+    /* Debug the varstrip distribution */
+    { "varstrip", GOSSIP_VARSTRIP_DEBUG },
+    /* Log job info */
+    { "job", GOSSIP_JOB_DEBUG },
+    /* Debug PINT_process_request calls.  EXTREMELY verbose! */
+    { "request", GOSSIP_REQUEST_DEBUG },
+    /* Log request scheduler events */
+    { "reqsched", GOSSIP_REQ_SCHED_DEBUG },
+    /* Log the flow protocol events, including flowproto_multiqueue */
+    { "flowproto", GOSSIP_FLOW_PROTO_DEBUG },
+    /* Log flow calls */
+    { "flow", GOSSIP_FLOW_DEBUG },
+    /* Debug the client name cache.  Only useful on the client. */
+    { "ncache", GOSSIP_NCACHE_DEBUG },
+    /* Debug read-ahead cache events.  Only useful on the client. */
+    { "mmaprcache", GOSSIP_MMAP_RCACHE_DEBUG },
+    /* Debug the attribute cache.  Only useful on the client. */
+    { "acache", GOSSIP_ACACHE_DEBUG },
+    /* Log/Debug distribution calls */
+    { "distribution", GOSSIP_DIST_DEBUG },
+    /* Debug the server-side dbpf attribute cache */
+    { "dbpfattrcache", GOSSIP_DBPF_ATTRCACHE_DEBUG },
+    /* Debug the client lookup state machine. */
+    { "lookup", GOSSIP_LOOKUP_DEBUG },
+    /* Debug the client remove state macine. */
+    { "remove", GOSSIP_REMOVE_DEBUG },
+    /* Debug the server getattr state machine. */
+    { "getattr", GOSSIP_GETATTR_DEBUG },
+    /* Debug the server setattr state machine. */
+    { "setattr", GOSSIP_SETATTR_DEBUG },
+    /* vectored getattr server state machine */
+    { "listattr", GOSSIP_LISTATTR_DEBUG },
+    /* Debug the client and server get ext attributes SM. */
+    { "geteattr", GOSSIP_GETEATTR_DEBUG },
+    /* Debug the client and server set ext attributes SM. */
+    { "seteattr", GOSSIP_SETEATTR_DEBUG },
+    /* Debug the readdir operation (client and server) */
+    { "readdir", GOSSIP_READDIR_DEBUG },
+    /* Debug the mkdir operation (server only) */
+    { "mkdir", GOSSIP_MKDIR_DEBUG },
+    /* Debug the io operation (reads and writes) 
+     * for both the client and server */
+    { "io", GOSSIP_IO_DEBUG },
+    /* Debug the server's open file descriptor cache */
+    { "open_cache", GOSSIP_DBPF_OPEN_CACHE_DEBUG }, 
+    /* Debug permissions checking on the server */
+    { "permissions", GOSSIP_PERMISSIONS_DEBUG }, 
+    /* Debug the cancel operation */
+    { "cancel", GOSSIP_CANCEL_DEBUG },
+    /* Debug the msgpair state machine */
+    { "msgpair", GOSSIP_MSGPAIR_DEBUG },
+    /* Debug the client core app */
+    { "clientcore", GOSSIP_CLIENTCORE_DEBUG },
+    /* Debug the client timing state machines (job timeout, etc.) */
+    { "clientcore_timing", GOSSIP_CLIENTCORE_TIMING_DEBUG },
+    /* network encoding */
+    { "endecode", GOSSIP_ENDECODE_DEBUG },
+    /* Show server file (metadata) accesses (both modify and read-only). */ 
+    { "access", GOSSIP_ACCESS_DEBUG },
+    /* Show more detailed server file accesses */
+    { "access_detail", GOSSIP_ACCESS_DETAIL_DEBUG },
+    /* Debug the listeattr operation */
+    { "listeattr", GOSSIP_LISTEATTR_DEBUG },
+    /* Debug the state machine management code */
+    { "sm", GOSSIP_STATE_MACHINE_DEBUG },
+    /* Debug the metadata dbpf keyval functions */
+    { "keyval", GOSSIP_DBPF_KEYVAL_DEBUG },
+    /* Debug the metadata sync coalescing code */
+    { "coalesce", GOSSIP_DBPF_COALESCE_DEBUG },
+    /* Display the  hostnames instead of IP addrs in debug output */
+    { "access_hostnames", GOSSIP_ACCESS_HOSTNAMES },
+    /* Show the client device events */
+    { "user_dev", GOSSIP_USER_DEV_DEBUG },
+    /* Debug the fsck tool */
+    { "fsck", GOSSIP_FSCK_DEBUG },
+    /* Debug the bstream code */
+    { "bstream", GOSSIP_BSTREAM_DEBUG },
+    /* Debug trove in direct io mode */
+    {"directio", GOSSIP_DIRECTIO_DEBUG},
+    /* Everything except the periodic events.  Useful for debugging */
+    { "verbose",
+      (__DEBUG_ALL & ~(GOSSIP_PERFCOUNTER_DEBUG | GOSSIP_STATE_MACHINE_DEBUG |
+                       GOSSIP_ENDECODE_DEBUG | GOSSIP_USER_DEV_DEBUG))
+    },
+    /* No debug output */
+    { "none", GOSSIP_NO_DEBUG },
+    /* Everything */
+    { "all",  __DEBUG_ALL }
+};
+#undef __DEBUG_ALL
+
+/* map all kmod keywords to kmod debug masks here */
+static __keyword_mask_t s_kmod_keyword_mask_map[] =
+{
+    {"super" , GOSSIP_SUPER_DEBUG},
+    {"inode" , GOSSIP_INODE_DEBUG},
+    {"file"  , GOSSIP_FILE_DEBUG},
+    {"dir"   , GOSSIP_DIR_DEBUG},
+    {"utils" , GOSSIP_UTILS_DEBUG},
+    {"wait"  , GOSSIP_WAIT_DEBUG},
+    {"acl"   , GOSSIP_ACL_DEBUG},
+    {"dcache", GOSSIP_DCACHE_DEBUG},
+    {"dev"   , GOSSIP_DEV_DEBUG},
+    {"name"  , GOSSIP_NAME_DEBUG},
+    {"bufmap", GOSSIP_BUFMAP_DEBUG},
+    {"cache" , GOSSIP_CACHE_DEBUG},
+    {"proc"  , GOSSIP_PROC_DEBUG},
+    {"xattr" , GOSSIP_XATTR_DEBUG},
+    {"init"  , GOSSIP_INIT_DEBUG},
+    {"none"  , GOSSIP_NO_DEBUG},
+    {"all"   , GOSSIP_MAX_DEBUG}
+};
+
+static const int num_kmod_keyword_mask_map = (int)           \
+(sizeof(s_kmod_keyword_mask_map) / sizeof(__keyword_mask_t));
+
+static const int num_keyword_mask_map = (int)           \
+(sizeof(s_keyword_mask_map) / sizeof(__keyword_mask_t));
 
 #endif /* __PVFS2_DEBUG_H */
 



More information about the Pvfs2-cvs mailing list