[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