[PVFS2-CVS]
commit by robl in pvfs2-1/src/kernel/linux-2.6: Makefile.in
dcache.c devpvfs2-req.c dir.c file.c inode.c namei.c pvfs2-bufmap.c
pvfs2-cache.c pvfs2-kernel.h pvfs2-mod.c pvfs2-utils.c super.c
symlink.c waitqueue.c
CVS commit program
cvs at parl.clemson.edu
Thu Jul 7 18:38:43 EDT 2005
Update of /projects/cvsroot/pvfs2-1/src/kernel/linux-2.6
In directory parlweb:/tmp/cvs-serv23015/src/kernel/linux-2.6
Modified Files:
Makefile.in dcache.c devpvfs2-req.c dir.c file.c inode.c
namei.c pvfs2-bufmap.c pvfs2-cache.c pvfs2-kernel.h
pvfs2-mod.c pvfs2-utils.c super.c symlink.c waitqueue.c
Log Message:
Phil's kernel debugging patch:
- adds version number to load and unload messages
- documents existing hash table size module parameter
- adds new module parameter (debug={1/0}) to turn debugging on or off at load
time without having to recompile
- adds new proc entry (proc/sys/pvfs2/debug) that allows toggling debug
messages on or off dynamically while module is loaded
- removes a broken log message
Index: Makefile.in
===================================================================
RCS file: /projects/cvsroot/pvfs2-1/src/kernel/linux-2.6/Makefile.in,v
diff -u -w -p -u -r1.15 -r1.16
--- Makefile.in 23 Mar 2005 21:58:23 -0000 1.15
+++ Makefile.in 7 Jul 2005 21:38:42 -0000 1.16
@@ -67,6 +67,7 @@ EXTRA_CFLAGS = \
-I$(absolute_src_dir)/src/common/quickhash
EXTRA_CFLAGS += @MMAP_RA_CACHE@
+EXTRA_CFLAGS += -DPVFS2_VERSION="\"@PVFS2_VERSION@\""
# uncomment the following line for kernel specific
# debugging output or features
Index: dcache.c
===================================================================
RCS file: /projects/cvsroot/pvfs2-1/src/kernel/linux-2.6/dcache.c,v
diff -u -w -p -u -r1.23 -r1.24
--- dcache.c 16 Jun 2005 18:40:17 -0000 1.23
+++ dcache.c 7 Jul 2005 21:38:42 -0000 1.24
@@ -11,6 +11,8 @@
*/
#include "pvfs2-kernel.h"
+
+extern int debug;
extern kmem_cache_t *pvfs2_inode_cache;
extern struct list_head pvfs2_request_list;
extern spinlock_t pvfs2_request_list_lock;
Index: devpvfs2-req.c
===================================================================
RCS file: /projects/cvsroot/pvfs2-1/src/kernel/linux-2.6/devpvfs2-req.c,v
diff -u -w -p -u -r1.45 -r1.46
--- devpvfs2-req.c 22 Nov 2004 18:14:05 -0000 1.45
+++ devpvfs2-req.c 7 Jul 2005 21:38:42 -0000 1.46
@@ -19,6 +19,7 @@ extern struct qhash_table *htable_ops_in
extern struct file_system_type pvfs2_fs_type;
extern struct semaphore devreq_semaphore;
extern struct semaphore request_semaphore;
+extern int debug;
/* defined in super.c */
extern struct list_head pvfs2_superblocks;
Index: dir.c
===================================================================
RCS file: /projects/cvsroot/pvfs2-1/src/kernel/linux-2.6/dir.c,v
diff -u -w -p -u -r1.32 -r1.33
--- dir.c 11 Jan 2005 17:45:03 -0000 1.32
+++ dir.c 7 Jul 2005 21:38:42 -0000 1.33
@@ -16,6 +16,7 @@
extern struct list_head pvfs2_request_list;
extern spinlock_t pvfs2_request_list_lock;
extern wait_queue_head_t pvfs2_request_list_waitq;
+extern int debug;
/* shared file/dir operations defined in file.c */
extern int pvfs2_file_open(
Index: file.c
===================================================================
RCS file: /projects/cvsroot/pvfs2-1/src/kernel/linux-2.6/file.c,v
diff -u -w -p -u -r1.90 -r1.91
--- file.c 16 Jun 2005 20:43:48 -0000 1.90
+++ file.c 7 Jul 2005 21:38:42 -0000 1.91
@@ -16,6 +16,7 @@
extern struct list_head pvfs2_request_list;
extern spinlock_t pvfs2_request_list_lock;
extern wait_queue_head_t pvfs2_request_list_waitq;
+extern int debug;
extern struct address_space_operations pvfs2_address_operations;
extern struct backing_dev_info pvfs2_backing_dev_info;
@@ -471,9 +472,6 @@ int pvfs2_fsync(
int ret = -EINVAL;
pvfs2_inode_t *pvfs2_inode = PVFS2_I(file->f_dentry->d_inode);
pvfs2_kernel_op_t *new_op = NULL;
-
- pvfs2_print("pvfs2_fsync called on %s (must block? %s\n",
- pvfs2_inode->refn.handle, pvfs2_inode->refn.fs_id);
new_op = op_alloc();
if (!new_op)
Index: inode.c
===================================================================
RCS file: /projects/cvsroot/pvfs2-1/src/kernel/linux-2.6/inode.c,v
diff -u -w -p -u -r1.54 -r1.55
--- inode.c 16 Jun 2005 20:44:14 -0000 1.54
+++ inode.c 7 Jul 2005 21:38:42 -0000 1.55
@@ -26,6 +26,7 @@ extern struct file_operations pvfs2_file
extern struct inode_operations pvfs2_symlink_inode_operations;
extern struct inode_operations pvfs2_dir_inode_operations;
extern struct file_operations pvfs2_dir_operations;
+extern int debug;
/** Read page-sized blocks from file. This code is only used in the mmap
Index: namei.c
===================================================================
RCS file: /projects/cvsroot/pvfs2-1/src/kernel/linux-2.6/namei.c,v
diff -u -w -p -u -r1.60 -r1.61
--- namei.c 13 Jan 2005 18:42:27 -0000 1.60
+++ namei.c 7 Jul 2005 21:38:42 -0000 1.61
@@ -15,6 +15,7 @@
extern struct list_head pvfs2_request_list;
extern spinlock_t pvfs2_request_list_lock;
extern wait_queue_head_t pvfs2_request_list_waitq;
+extern int debug;
extern struct dentry_operations pvfs2_dentry_operations;
Index: pvfs2-bufmap.c
===================================================================
RCS file: /projects/cvsroot/pvfs2-1/src/kernel/linux-2.6/pvfs2-bufmap.c,v
diff -u -w -p -u -r1.33 -r1.34
--- pvfs2-bufmap.c 3 Dec 2004 19:16:10 -0000 1.33
+++ pvfs2-bufmap.c 7 Jul 2005 21:38:42 -0000 1.34
@@ -10,6 +10,7 @@
#define BUFMAP_PAGE_COUNT (PVFS2_BUFMAP_TOTAL_SIZE/PAGE_SIZE)
#define PAGES_PER_DESC (PVFS2_BUFMAP_DEFAULT_DESC_SIZE/PAGE_SIZE)
+extern int debug;
static int bufmap_init = 0;
static struct page **bufmap_page_array = NULL;
Index: pvfs2-cache.c
===================================================================
RCS file: /projects/cvsroot/pvfs2-1/src/kernel/linux-2.6/pvfs2-cache.c,v
diff -u -w -p -u -r1.24 -r1.25
--- pvfs2-cache.c 8 Sep 2004 19:59:03 -0000 1.24
+++ pvfs2-cache.c 7 Jul 2005 21:38:42 -0000 1.25
@@ -18,6 +18,7 @@ extern kmem_cache_t *dev_req_cache;
/* a cache for pvfs2-inode objects (i.e. pvfs2 inode private data) */
extern kmem_cache_t *pvfs2_inode_cache;
+extern int debug;
extern int pvfs2_gen_credentials(
PVFS_credentials *credentials);
Index: pvfs2-kernel.h
===================================================================
RCS file: /projects/cvsroot/pvfs2-1/src/kernel/linux-2.6/pvfs2-kernel.h,v
diff -u -w -p -u -r1.88 -r1.89
--- pvfs2-kernel.h 29 Mar 2005 16:33:13 -0000 1.88
+++ pvfs2-kernel.h 7 Jul 2005 21:38:42 -0000 1.89
@@ -86,7 +86,9 @@ do {
panic(msg); \
} while(0)
#else
-#define pvfs2_print(...)
+#define pvfs2_print(format...) do{ \
+ if(debug) printk(format); \
+}while(0)
#define pvfs2_panic(msg) \
do { \
pvfs2_error("BUG! Please contact pvfs2-developers at beowulf-"\
Index: pvfs2-mod.c
===================================================================
RCS file: /projects/cvsroot/pvfs2-1/src/kernel/linux-2.6/pvfs2-mod.c,v
diff -u -w -p -u -r1.26 -r1.27
--- pvfs2-mod.c 13 Sep 2004 20:52:52 -0000 1.26
+++ pvfs2-mod.c 7 Jul 2005 21:38:43 -0000 1.27
@@ -6,24 +6,48 @@
#include "pvfs2-kernel.h"
-extern struct file_operations pvfs2_devreq_file_operations;
+#ifndef PVFS2_VERSION
+#define PVFS2_VERSION "Unknown"
+#endif
+extern struct file_operations pvfs2_devreq_file_operations;
extern void pvfs2_kill_sb(struct super_block *sb);
static int hash_func(void *key, int table_size);
static int hash_compare(void *key, struct qhash_head *link);
-
/*************************************
* global variables declared here
*************************************/
/* the size of the hash tables for ops in progress */
static int hash_table_size = 509;
+int debug = 0;
+
+#ifdef CONFIG_SYSCTL
+/* setup information for proc/sys/pvfs2 entries */
+#include <linux/sysctl.h>
+static struct ctl_table_header *fs_table_header = NULL;
+#define FS_PVFS2 1 /* pvfs2 file system */
+#define PVFS2_DEBUG 1 /* ctl debugging level */
+static int min_debug[] = {0}, max_debug[] = {1};
+static ctl_table pvfs2_table[] = {
+ {PVFS2_DEBUG, "debug", &debug, sizeof(int), 0644, NULL,
+ &proc_dointvec_minmax, &sysctl_intvec,
+ NULL, &min_debug, &max_debug},
+ {0}
+};
+static ctl_table fs_table[] = {
+ {FS_PVFS2, "pvfs2", NULL, 0, 0555, pvfs2_table},
+ {0}
+};
+#endif
MODULE_LICENSE("GPL");
MODULE_AUTHOR("PVFS2 Development Team");
MODULE_DESCRIPTION("The Linux Kernel VFS interface to PVFS2");
+MODULE_PARM_DESC(debug, "debugging level (0 for none, 1 for verbose)");
+MODULE_PARM_DESC(hash_table_size, "size of hash table for operations in progress");
#ifdef PVFS2_LINUX_KERNEL_2_4
/*
@@ -33,6 +57,7 @@ MODULE_DESCRIPTION("The Linux Kernel VFS
DECLARE_FSTYPE(pvfs2_fs_type, "pvfs2", pvfs2_get_sb, 0);
MODULE_PARM(hash_table_size, "i");
+MODULE_PARM(debug, "i");
#else /* !PVFS2_LINUX_KERNEL_2_4 */
@@ -52,6 +77,7 @@ struct file_system_type pvfs2_fs_type =
};
module_param(hash_table_size, int, 0);
+module_param(debug, bool, 0);
#endif /* PVFS2_LINUX_KERNEL_2_4 */
@@ -88,8 +114,15 @@ DECLARE_WAIT_QUEUE_HEAD(pvfs2_request_li
static int __init pvfs2_init(void)
{
+ int ret = -1;
pvfs2_print("pvfs2: pvfs2_init called\n");
+ if(debug)
+ {
+ debug=1; /* normalize any non-zero value to 1 */
+ pvfs2_error("pvfs2: verbose debug mode\n");
+ }
+
/* register pvfs2-req device */
pvfs2_dev_major = register_chrdev(0, PVFS2_REQDEVICE_NAME,
&pvfs2_devreq_file_operations);
@@ -118,7 +151,18 @@ static int __init pvfs2_init(void)
{
panic("Failed to initialize op hashtable");
}
- return register_filesystem(&pvfs2_fs_type);
+ ret = register_filesystem(&pvfs2_fs_type);
+
+#ifdef CONFIG_SYSCTL
+ if (!fs_table_header)
+ fs_table_header = register_sysctl_table(fs_table, 0);
+#endif
+
+ if(ret == 0)
+ {
+ printk("pvfs2: module version %s loaded\n", PVFS2_VERSION);
+ }
+ return(ret);
}
static void __exit pvfs2_exit(void)
@@ -129,6 +173,13 @@ static void __exit pvfs2_exit(void)
pvfs2_print("pvfs2: pvfs2_exit called\n");
+#ifdef CONFIG_SYSCTL
+ if ( fs_table_header ) {
+ unregister_sysctl_table(fs_table_header);
+ fs_table_header = NULL;
+ }
+#endif
+
/* clear out all pending upcall op requests */
spin_lock(&pvfs2_request_list_lock);
while (!list_empty(&pvfs2_request_list))
@@ -170,6 +221,8 @@ static void __exit pvfs2_exit(void)
PVFS2_REQDEVICE_NAME);
unregister_filesystem(&pvfs2_fs_type);
+
+ printk("pvfs2: module version %s unloaded\n", PVFS2_VERSION);
}
static int hash_func(void *key, int table_size)
Index: pvfs2-utils.c
===================================================================
RCS file: /projects/cvsroot/pvfs2-1/src/kernel/linux-2.6/pvfs2-utils.c,v
diff -u -w -p -u -r1.96 -r1.97
--- pvfs2-utils.c 8 Jun 2005 19:30:30 -0000 1.96
+++ pvfs2-utils.c 7 Jul 2005 21:38:43 -0000 1.97
@@ -21,6 +21,7 @@ extern struct inode_operations pvfs2_sym
extern struct inode_operations pvfs2_dir_inode_operations;
extern struct file_operations pvfs2_dir_operations;
extern struct dentry_operations pvfs2_dentry_operations;
+extern int debug;
int pvfs2_gen_credentials(
Index: super.c
===================================================================
RCS file: /projects/cvsroot/pvfs2-1/src/kernel/linux-2.6/super.c,v
diff -u -w -p -u -r1.59 -r1.60
--- super.c 14 Jun 2005 17:59:34 -0000 1.59
+++ super.c 7 Jul 2005 21:38:43 -0000 1.60
@@ -16,6 +16,7 @@ extern spinlock_t pvfs2_request_list_loc
extern wait_queue_head_t pvfs2_request_list_waitq;
extern void pvfs2_kill_sb(struct super_block *sb);
+extern int debug;
/* list for storing pvfs2 specific superblocks in use */
LIST_HEAD(pvfs2_superblocks);
Index: symlink.c
===================================================================
RCS file: /projects/cvsroot/pvfs2-1/src/kernel/linux-2.6/symlink.c,v
diff -u -w -p -u -r1.9 -r1.10
--- symlink.c 22 Nov 2004 18:14:05 -0000 1.9
+++ symlink.c 7 Jul 2005 21:38:43 -0000 1.10
@@ -10,6 +10,7 @@
extern struct list_head pvfs2_request_list;
extern spinlock_t pvfs2_request_list_lock;
extern struct dentry_operations pvfs2_dentry_operations;
+extern int debug;
static int pvfs2_readlink(
struct dentry *dentry, char __user *buffer, int buflen)
Index: waitqueue.c
===================================================================
RCS file: /projects/cvsroot/pvfs2-1/src/kernel/linux-2.6/waitqueue.c,v
diff -u -w -p -u -r1.15 -r1.16
--- waitqueue.c 11 Jan 2005 17:24:19 -0000 1.15
+++ waitqueue.c 7 Jul 2005 21:38:43 -0000 1.16
@@ -15,6 +15,7 @@
extern struct list_head pvfs2_request_list;
extern spinlock_t pvfs2_request_list_lock;
extern struct qhash_table *htable_ops_in_progress;
+extern int debug;
static inline void clean_up_interrupted_operation(
pvfs2_kernel_op_t * op)
More information about the PVFS2-CVS
mailing list