Skip to contentSkip to conversation

dynamic debug v2 - nfs conversion

PATCH In review Jason Baron 3 participants 9 messages Jul 15, 2008 – Jul 16, 2008

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 2/7 dynamic debug v2 - nfs conversion

-convert sunrpc debug facility

---

 fs/lockd/clntlock.c                  |    1 +
 fs/lockd/clntproc.c                  |    1 +
 fs/lockd/host.c                      |    1 +
 fs/lockd/mon.c                       |    1 +
 fs/lockd/svc.c                       |    1 +
 fs/lockd/svc4proc.c                  |    1 +
 fs/lockd/svclock.c                   |    1 +
 fs/lockd/svcproc.c                   |    1 +
 fs/lockd/svcshare.c                  |    1 +
 fs/lockd/svcsubs.c                   |    1 +
 fs/lockd/xdr.c                       |    1 +
 fs/lockd/xdr4.c                      |    1 +
 fs/nfs/callback.c                    |    1 +
 fs/nfs/callback_proc.c               |    1 +
 fs/nfs/callback_xdr.c                |    1 +
 fs/nfs/client.c                      |    1 +
 fs/nfs/delegation.c                  |    1 +
 fs/nfs/dir.c                         |    1 +
 fs/nfs/direct.c                      |    1 +
 fs/nfs/file.c                        |    1 +
 fs/nfs/getroot.c                     |    1 +
 fs/nfs/idmap.c                       |    1 +
 fs/nfs/inode.c                       |    1 +
 fs/nfs/mount_clnt.c                  |    1 +
 fs/nfs/namespace.c                   |    1 +
 fs/nfs/nfs2xdr.c                     |    1 +
 fs/nfs/nfs3acl.c                     |    1 +
 fs/nfs/nfs3proc.c                    |    1 +
 fs/nfs/nfs3xdr.c                     |    1 +
 fs/nfs/nfs4namespace.c               |    1 +
 fs/nfs/nfs4proc.c                    |    1 +
 fs/nfs/nfs4renewd.c                  |    1 +
 fs/nfs/nfs4state.c                   |    1 +
 fs/nfs/nfs4xdr.c                     |    1 +
 fs/nfs/nfsroot.c                     |    1 +
 fs/nfs/pagelist.c                    |    1 +
 fs/nfs/proc.c                        |    1 +
 fs/nfs/read.c                        |    1 +
 fs/nfs/super.c                       |    1 +
 fs/nfs/symlink.c                     |    1 +
 fs/nfs/sysctl.c                      |    1 +
 fs/nfs/unlink.c                      |    1 +
 fs/nfs/write.c                       |    1 +
 fs/nfsd/auth.c                       |    1 +
 fs/nfsd/export.c                     |    1 +
 fs/nfsd/lockd.c                      |    1 +
 fs/nfsd/nfs2acl.c                    |    1 +
 fs/nfsd/nfs3acl.c                    |    1 +
 fs/nfsd/nfs3proc.c                   |    1 +
 fs/nfsd/nfs3xdr.c                    |    1 +
 fs/nfsd/nfs4acl.c                    |    1 +
 fs/nfsd/nfs4callback.c               |    1 +
 fs/nfsd/nfs4idmap.c                  |    1 +
 fs/nfsd/nfs4proc.c                   |    1 +
 fs/nfsd/nfs4recover.c                |    1 +
 fs/nfsd/nfs4state.c                  |    1 +
 fs/nfsd/nfs4xdr.c                    |    1 +
 fs/nfsd/nfscache.c                   |    1 +
 fs/nfsd/nfsctl.c                     |    1 +
 fs/nfsd/nfsfh.c                      |    1 +
 fs/nfsd/nfsproc.c                    |    1 +
 fs/nfsd/nfssvc.c                     |    1 +
 fs/nfsd/nfsxdr.c                     |    1 +
 fs/nfsd/stats.c                      |    1 +
 fs/nfsd/vfs.c                        |    1 +
 include/linux/dynamic_debug_lockd.h  |    6 ++++++
 include/linux/dynamic_debug_nfs.h    |    6 ++++++
 include/linux/dynamic_debug_nfsd.h   |    6 ++++++
 include/linux/dynamic_debug_sunrpc.h |    6 ++++++
 include/linux/lockd/debug.h          |    6 +++++-
 include/linux/nfs_fs.h               |    6 +++++-
 include/linux/nfsd/debug.h           |    6 +++++-
 include/linux/sunrpc/debug.h         |    8 +++++++-
 net/sunrpc/auth.c                    |    1 +
 net/sunrpc/auth_null.c               |    1 +
 net/sunrpc/auth_unix.c               |    1 +
 net/sunrpc/cache.c                   |    1 +
 net/sunrpc/clnt.c                    |    1 +
 net/sunrpc/rpc_pipe.c                |    1 +
 net/sunrpc/rpcb_clnt.c               |    1 +
 net/sunrpc/sched.c                   |    1 +
 net/sunrpc/socklib.c                 |    1 +
 net/sunrpc/stats.c                   |    1 +
 net/sunrpc/sunrpc_syms.c             |    1 +
 net/sunrpc/svc.c                     |    1 +
 net/sunrpc/svc_xprt.c                |    1 +
 net/sunrpc/svcauth.c                 |    1 +
 net/sunrpc/svcauth_unix.c            |    1 +
 net/sunrpc/svcsock.c                 |    1 +
 net/sunrpc/sysctl.c                  |    1 +
 net/sunrpc/timer.c                   |    1 +
 net/sunrpc/xdr.c                     |    1 +
 net/sunrpc/xprt.c                    |    1 +
 net/sunrpc/xprtsock.c                |    1 +
 94 files changed, 132 insertions(+), 4 deletions(-)
 create mode 100644 include/linux/dynamic_debug_lockd.h
 create mode 100644 include/linux/dynamic_debug_nfs.h
 create mode 100644 include/linux/dynamic_debug_nfsd.h
 create mode 100644 include/linux/dynamic_debug_sunrpc.h
fs/lockd/clntlock.c +1 -0
index 0b45fd3..d434ed9 100644
@@ -14,6 +14,7 @@
 #include <linux/sunrpc/svc.h>
 #include <linux/lockd/lockd.h>
 #include <linux/smp_lock.h>
+#include <linux/dynamic_debug_lockd.h>
 
 #define NLMDBG_FACILITY		NLMDBG_CLIENT
 
fs/lockd/clntproc.c +1 -0
index b6b74a6..44e5348 100644
@@ -13,6 +13,7 @@
 #include <linux/nfs_fs.h>
 #include <linux/utsname.h>
 #include <linux/freezer.h>
+#include <linux/dynamic_debug_lockd.h>
 #include <linux/sunrpc/clnt.h>
 #include <linux/sunrpc/svc.h>
 #include <linux/lockd/lockd.h>
fs/lockd/host.c +1 -0
index f1ef49f..3620a53 100644
@@ -11,6 +11,7 @@
 #include <linux/types.h>
 #include <linux/slab.h>
 #include <linux/in.h>
+#include <linux/dynamic_debug_lockd.h>
 #include <linux/sunrpc/clnt.h>
 #include <linux/sunrpc/svc.h>
 #include <linux/lockd/lockd.h>
fs/lockd/mon.c +1 -0
index 908b23f..68c1940 100644
@@ -9,6 +9,7 @@
 #include <linux/types.h>
 #include <linux/utsname.h>
 #include <linux/kernel.h>
+#include <linux/dynamic_debug_lockd.h>
 #include <linux/sunrpc/clnt.h>
 #include <linux/sunrpc/xprtsock.h>
 #include <linux/sunrpc/svc.h>
fs/lockd/svc.c +1 -0
index 1ed8bd4..e415419 100644
@@ -36,6 +36,7 @@
 #include <linux/lockd/lockd.h>
 #include <linux/lockd/sm_inter.h>
 #include <linux/nfs.h>
+#include <linux/dynamic_debug_lockd.h>
 
 #define NLMDBG_FACILITY		NLMDBG_SVC
 #define LOCKD_BUFSIZE		(1024 + NLMSVC_XDRSIZE)
fs/lockd/svc4proc.c +1 -0
index 385437e..78240ea 100644
@@ -11,6 +11,7 @@
 #include <linux/time.h>
 #include <linux/slab.h>
 #include <linux/in.h>
+#include <linux/dynamic_debug_lockd.h>
 #include <linux/sunrpc/svc.h>
 #include <linux/sunrpc/clnt.h>
 #include <linux/nfsd/nfsd.h>
fs/lockd/svclock.c +1 -0
index fe9bdb4..97b82f1 100644
@@ -25,6 +25,7 @@
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/smp_lock.h>
+#include <linux/dynamic_debug_lockd.h>
 #include <linux/sunrpc/clnt.h>
 #include <linux/sunrpc/svc.h>
 #include <linux/lockd/nlm.h>
fs/lockd/svcproc.c +1 -0
index 88379cc..abe17d0 100644
@@ -11,6 +11,7 @@
 #include <linux/time.h>
 #include <linux/slab.h>
 #include <linux/in.h>
+#include <linux/dynamic_debug_lockd.h>
 #include <linux/sunrpc/svc.h>
 #include <linux/sunrpc/clnt.h>
 #include <linux/nfsd/nfsd.h>
fs/lockd/svcshare.c +1 -0
index 068886d..0633db6 100644
@@ -10,6 +10,7 @@
 #include <linux/unistd.h>
 #include <linux/string.h>
 #include <linux/slab.h>
+#include <linux/dynamic_debug_lockd.h>
 
 #include <linux/sunrpc/clnt.h>
 #include <linux/sunrpc/svc.h>
fs/lockd/svcsubs.c +1 -0
index dbbefbc..7ae923d 100644
@@ -11,6 +11,7 @@
 #include <linux/time.h>
 #include <linux/in.h>
 #include <linux/mutex.h>
+#include <linux/dynamic_debug_lockd.h>
 #include <linux/sunrpc/svc.h>
 #include <linux/sunrpc/clnt.h>
 #include <linux/nfsd/nfsfh.h>
fs/lockd/xdr.c +1 -0
index 3e459e1..7275e0d 100644
@@ -10,6 +10,7 @@
 #include <linux/sched.h>
 #include <linux/utsname.h>
 #include <linux/nfs.h>
+#include <linux/dynamic_debug_lockd.h>
 
 #include <linux/sunrpc/xdr.h>
 #include <linux/sunrpc/clnt.h>
fs/lockd/xdr4.c +1 -0
index 43ff939..50f371b 100644
@@ -11,6 +11,7 @@
 #include <linux/sched.h>
 #include <linux/utsname.h>
 #include <linux/nfs.h>
+#include <linux/dynamic_debug_lockd.h>
 
 #include <linux/sunrpc/xdr.h>
 #include <linux/sunrpc/clnt.h>
fs/nfs/callback.c +1 -0
index 66648dd..33e77f6 100644
@@ -15,6 +15,7 @@
 #include <linux/nfs_fs.h>
 #include <linux/mutex.h>
 #include <linux/freezer.h>
+#include <linux/dynamic_debug_nfs.h>
 
 #include <net/inet_sock.h>
 
fs/nfs/callback_proc.c +1 -0
index 15f7785..37ce142 100644
@@ -7,6 +7,7 @@
  */
 #include <linux/nfs4.h>
 #include <linux/nfs_fs.h>
+#include <linux/dynamic_debug_nfs.h>
 #include "nfs4_fs.h"
 #include "callback.h"
 #include "delegation.h"
fs/nfs/callback_xdr.c +1 -0
index 13619d2..085c272 100644
@@ -9,6 +9,7 @@
 #include <linux/sunrpc/svc.h>
 #include <linux/nfs4.h>
 #include <linux/nfs_fs.h>
+#include <linux/dynamic_debug_nfs.h>
 #include "nfs4_fs.h"
 #include "callback.h"
 
fs/nfs/client.c +1 -0
index c5c0175..744bae1 100644
@@ -37,6 +37,7 @@
 #include <linux/in6.h>
 #include <net/ipv6.h>
 #include <linux/nfs_xdr.h>
+#include <linux/dynamic_debug_nfs.h>
 
 #include <asm/system.h>
 
fs/nfs/delegation.c +1 -0
index 00a5e44..d7c7aeb 100644
@@ -15,6 +15,7 @@
 #include <linux/nfs4.h>
 #include <linux/nfs_fs.h>
 #include <linux/nfs_xdr.h>
+#include <linux/dynamic_debug_nfs.h>
 
 #include "nfs4_fs.h"
 #include "delegation.h"
fs/nfs/dir.c +1 -0
index d9e30ac..75b57c1 100644
@@ -34,6 +34,7 @@
 #include <linux/namei.h>
 #include <linux/mount.h>
 #include <linux/sched.h>
+#include <linux/dynamic_debug_nfs.h>
 
 #include "nfs4_fs.h"
 #include "delegation.h"
fs/nfs/direct.c +1 -0
index 16844f9..6f4364c 100644
@@ -48,6 +48,7 @@
 #include <linux/nfs_fs.h>
 #include <linux/nfs_page.h>
 #include <linux/sunrpc/clnt.h>
+#include <linux/dynamic_debug_nfs.h>
 
 #include <asm/system.h>
 #include <asm/uaccess.h>
fs/nfs/file.c +1 -0
index 5d2e9d9..6e078a6 100644
@@ -28,6 +28,7 @@
 #include <linux/pagemap.h>
 #include <linux/smp_lock.h>
 #include <linux/aio.h>
+#include <linux/dynamic_debug_nfs.h>
 
 #include <asm/uaccess.h>
 #include <asm/system.h>
fs/nfs/getroot.c +1 -0
index fae9719..0076048 100644
@@ -32,6 +32,7 @@
 #include <linux/namei.h>
 #include <linux/mnt_namespace.h>
 #include <linux/security.h>
+#include <linux/dynamic_debug_nfs.h>
 
 #include <asm/system.h>
 #include <asm/uaccess.h>
fs/nfs/idmap.c +1 -0
index 86147b0..d4cc873 100644
@@ -50,6 +50,7 @@
 #include <linux/nfs_fs.h>
 
 #include <linux/nfs_idmap.h>
+#include <linux/dynamic_debug_nfs.h>
 #include "nfs4_fs.h"
 
 #define IDMAP_HASH_SZ          128
fs/nfs/inode.c +1 -0
index 6f88d7c..87d715b 100644
@@ -37,6 +37,7 @@
 #include <linux/vfs.h>
 #include <linux/inet.h>
 #include <linux/nfs_xdr.h>
+#include <linux/dynamic_debug_nfs.h>
 
 #include <asm/system.h>
 #include <asm/uaccess.h>
fs/nfs/mount_clnt.c +1 -0
index 49c7cd0..4523c33 100644
@@ -14,6 +14,7 @@
 #include <linux/sunrpc/clnt.h>
 #include <linux/sunrpc/sched.h>
 #include <linux/nfs_fs.h>
+#include <linux/dynamic_debug_nfs.h>
 
 #ifdef RPC_DEBUG
 # define NFSDBG_FACILITY	NFSDBG_MOUNT
fs/nfs/namespace.c +1 -0
index 607f6eb..edbe0e8 100644
@@ -14,6 +14,7 @@
 #include <linux/string.h>
 #include <linux/sunrpc/clnt.h>
 #include <linux/vfs.h>
+#include <linux/dynamic_debug_nfs.h>
 #include "internal.h"
 
 #define NFSDBG_FACILITY		NFSDBG_VFS
fs/nfs/nfs2xdr.c +1 -0
index 1f7ea67..5434f33 100644
@@ -23,6 +23,7 @@
 #include <linux/nfs.h>
 #include <linux/nfs2.h>
 #include <linux/nfs_fs.h>
+#include <linux/dynamic_debug_nfs.h>
 #include "internal.h"
 
 #define NFSDBG_FACILITY		NFSDBG_XDR
fs/nfs/nfs3acl.c +1 -0
index 9b73625..778c6ac 100644
@@ -4,6 +4,7 @@
 #include <linux/nfs_fs.h>
 #include <linux/posix_acl_xattr.h>
 #include <linux/nfsacl.h>
+#include <linux/dynamic_debug_nfs.h>
 
 #define NFSDBG_FACILITY	NFSDBG_PROC
 
fs/nfs/nfs3proc.c +1 -0
index 549dbce..1f973db 100644
@@ -17,6 +17,7 @@
 #include <linux/nfs_page.h>
 #include <linux/lockd/bind.h>
 #include <linux/nfs_mount.h>
+#include <linux/dynamic_debug_nfs.h>
 
 #include "iostat.h"
 #include "internal.h"
fs/nfs/nfs3xdr.c +1 -0
index 3917e2f..f5ad54f 100644
@@ -22,6 +22,7 @@
 #include <linux/nfs3.h>
 #include <linux/nfs_fs.h>
 #include <linux/nfsacl.h>
+#include <linux/dynamic_debug_nfs.h>
 #include "internal.h"
 
 #define NFSDBG_FACILITY		NFSDBG_XDR
fs/nfs/nfs4namespace.c +1 -0
index 5f9ba41..4862c2a 100644
@@ -15,6 +15,7 @@
 #include <linux/sunrpc/clnt.h>
 #include <linux/vfs.h>
 #include <linux/inet.h>
+#include <linux/dynamic_debug_nfs.h>
 #include "internal.h"
 #include "nfs4_fs.h"
 
fs/nfs/nfs4proc.c +1 -0
index 7ce0786..68d2080 100644
@@ -48,6 +48,7 @@
 #include <linux/smp_lock.h>
 #include <linux/namei.h>
 #include <linux/mount.h>
+#include <linux/dynamic_debug_nfs.h>
 
 #include "nfs4_fs.h"
 #include "delegation.h"
fs/nfs/nfs4renewd.c +1 -0
index 5e2e4af..7901a43 100644
@@ -51,6 +51,7 @@
 #include <linux/nfs.h>
 #include <linux/nfs4.h>
 #include <linux/nfs_fs.h>
+#include <linux/dynamic_debug_nfs.h>
 #include "nfs4_fs.h"
 #include "delegation.h"
 
fs/nfs/nfs4state.c +1 -0
index b962397..09ca89a 100644
@@ -48,6 +48,7 @@
 #include <linux/random.h>
 #include <linux/workqueue.h>
 #include <linux/bitops.h>
+#include <linux/dynamic_debug_nfs.h>
 
 #include "nfs4_fs.h"
 #include "callback.h"
fs/nfs/nfs4xdr.c +1 -0
index db1ed9c..265869c 100644
@@ -51,6 +51,7 @@
 #include <linux/nfs4.h>
 #include <linux/nfs_fs.h>
 #include <linux/nfs_idmap.h>
+#include <linux/dynamic_debug_nfs.h>
 #include "nfs4_fs.h"
 
 #define NFSDBG_FACILITY		NFSDBG_XDR
fs/nfs/nfsroot.c +1 -0
index 531379d..cf23835 100644
@@ -87,6 +87,7 @@
 #include <linux/root_dev.h>
 #include <net/ipconfig.h>
 #include <linux/parser.h>
+#include <linux/dynamic_debug_nfs.h>
 
 /* Define this to allow debugging output */
 #undef NFSROOT_DEBUG
fs/nfs/pagelist.c +1 -0
index 7f07920..ad754d8 100644
@@ -18,6 +18,7 @@
 #include <linux/nfs_page.h>
 #include <linux/nfs_fs.h>
 #include <linux/nfs_mount.h>
+#include <linux/dynamic_debug_nfs.h>
 
 #include "internal.h"
 
fs/nfs/proc.c +1 -0
index 5ccf7fa..711f860 100644
@@ -43,6 +43,7 @@
 #include <linux/nfs_fs.h>
 #include <linux/nfs_page.h>
 #include <linux/lockd/bind.h>
+#include <linux/dynamic_debug_nfs.h>
 #include "internal.h"
 
 #define NFSDBG_FACILITY		NFSDBG_PROC
fs/nfs/read.c +1 -0
index 5a70be5..ee05a8e 100644
@@ -19,6 +19,7 @@
 #include <linux/nfs_fs.h>
 #include <linux/nfs_page.h>
 #include <linux/smp_lock.h>
+#include <linux/dynamic_debug_nfs.h>
 
 #include <asm/system.h>
 
fs/nfs/super.c +1 -0
index f921902..ce3352e 100644
@@ -50,6 +50,7 @@
 #include <linux/nfs_xdr.h>
 #include <linux/magic.h>
 #include <linux/parser.h>
+#include <linux/dynamic_debug_nfs.h>
 
 #include <asm/system.h>
 #include <asm/uaccess.h>
fs/nfs/symlink.c +1 -0
index 83e865a..33334c5 100644
@@ -23,6 +23,7 @@
 #include <linux/slab.h>
 #include <linux/string.h>
 #include <linux/namei.h>
+#include <linux/dynamic_debug_nfs.h>
 
 /* Symlink caching in the page cache is even more simplistic
  * and straight-forward than readdir caching.
fs/nfs/sysctl.c +1 -0
index b62481d..1c952b2 100644
@@ -12,6 +12,7 @@
 #include <linux/nfs4.h>
 #include <linux/nfs_idmap.h>
 #include <linux/nfs_fs.h>
+#include <linux/dynamic_debug_nfs.h>
 
 #include "callback.h"
 
fs/nfs/unlink.c +1 -0
index 7574153..ae9df4d 100644
@@ -13,6 +13,7 @@
 #include <linux/nfs_fs.h>
 #include <linux/sched.h>
 #include <linux/wait.h>
+#include <linux/dynamic_debug_nfs.h>
 
 #include "internal.h"
 
fs/nfs/write.c +1 -0
index bed6341..8f7b563 100644
@@ -19,6 +19,7 @@
 #include <linux/nfs_mount.h>
 #include <linux/nfs_page.h>
 #include <linux/backing-dev.h>
+#include <linux/dynamic_debug_nfs.h>
 
 #include <asm/uaccess.h>
 
fs/nfsd/auth.c +1 -0
index d13403e..cb56871 100644
@@ -6,6 +6,7 @@
 
 #include <linux/types.h>
 #include <linux/sched.h>
+#include <linux/dynamic_debug_nfsd.h>
 #include <linux/sunrpc/svc.h>
 #include <linux/sunrpc/svcauth.h>
 #include <linux/nfsd/nfsd.h>
fs/nfsd/export.c +1 -0
index 8a6f7c9..14cdf06 100644
@@ -27,6 +27,7 @@
 #include <linux/hash.h>
 #include <linux/module.h>
 #include <linux/exportfs.h>
+#include <linux/dynamic_debug_nfsd.h>
 
 #include <linux/sunrpc/svc.h>
 #include <linux/nfsd/nfsd.h>
fs/nfsd/lockd.c +1 -0
index 9e4a568..bc559ff 100644
@@ -12,6 +12,7 @@
 #include <linux/fs.h>
 #include <linux/file.h>
 #include <linux/mount.h>
+#include <linux/dynamic_debug_nfsd.h>
 #include <linux/sunrpc/clnt.h>
 #include <linux/sunrpc/svc.h>
 #include <linux/nfsd/nfsd.h>
fs/nfsd/nfs2acl.c +1 -0
index 1c3b765..3888590 100644
@@ -14,6 +14,7 @@
 #include <linux/nfsd/xdr3.h>
 #include <linux/posix_acl.h>
 #include <linux/nfsacl.h>
+#include <linux/dynamic_debug_nfsd.h>
 
 #define NFSDDBG_FACILITY		NFSDDBG_PROC
 #define RETURN_STATUS(st)	{ resp->status = (st); return (st); }
fs/nfsd/nfs3acl.c +1 -0
index b647f2f..b133037 100644
@@ -13,6 +13,7 @@
 #include <linux/nfsd/xdr3.h>
 #include <linux/posix_acl.h>
 #include <linux/nfsacl.h>
+#include <linux/dynamic_debug_nfsd.h>
 
 #define RETURN_STATUS(st)	{ resp->status = (st); return (st); }
 
fs/nfsd/nfs3proc.c +1 -0
index c721a1e..d8bd974 100644
@@ -18,6 +18,7 @@
 #include <linux/unistd.h>
 #include <linux/slab.h>
 #include <linux/major.h>
+#include <linux/dynamic_debug_nfsd.h>
 
 #include <linux/sunrpc/svc.h>
 #include <linux/nfsd/nfsd.h>
fs/nfsd/nfs3xdr.c +1 -0
index 17d0dd9..33c4810 100644
@@ -17,6 +17,7 @@
 #include <linux/namei.h>
 #include <linux/mm.h>
 #include <linux/vfs.h>
+#include <linux/dynamic_debug_nfsd.h>
 #include <linux/sunrpc/xdr.h>
 #include <linux/sunrpc/svc.h>
 #include <linux/nfsd/nfsd.h>
fs/nfsd/nfs4acl.c +1 -0
index b6ed383..c2d84b2 100644
@@ -46,6 +46,7 @@
 #include <linux/posix_acl.h>
 #include <linux/nfs4.h>
 #include <linux/nfs4_acl.h>
+#include <linux/dynamic_debug_nfsd.h>
 
 
 /* mode bit translations: */
fs/nfsd/nfs4callback.c +1 -0
index aae2b29..f203384 100644
@@ -47,6 +47,7 @@
 #include <linux/nfsd/state.h>
 #include <linux/sunrpc/sched.h>
 #include <linux/nfs4.h>
+#include <linux/dynamic_debug_nfsd.h>
 
 #define NFSDDBG_FACILITY                NFSDDBG_PROC
 
fs/nfsd/nfs4idmap.c +1 -0
index 996bd88..ddcc44d 100644
@@ -36,6 +36,7 @@
 
 #include <linux/module.h>
 #include <linux/init.h>
+#include <linux/dynamic_debug_nfsd.h>
 
 #include <linux/mm.h>
 #include <linux/utsname.h>
fs/nfsd/nfs4proc.c +1 -0
index c309c88..cdadc49 100644
@@ -39,6 +39,7 @@
 #include <linux/major.h>
 #include <linux/slab.h>
 #include <linux/file.h>
+#include <linux/dynamic_debug_nfsd.h>
 
 #include <linux/sunrpc/svc.h>
 #include <linux/nfsd/nfsd.h>
fs/nfsd/nfs4recover.c +1 -0
index 145b3c8..3c9274e 100644
@@ -47,6 +47,7 @@
 #include <linux/crypto.h>
 #include <linux/sched.h>
 #include <linux/mount.h>
+#include <linux/dynamic_debug_nfsd.h>
 
 #define NFSDDBG_FACILITY                NFSDDBG_PROC
 
fs/nfsd/nfs4state.c +1 -0
index 81a75f3..20a6053 100644
@@ -54,6 +54,7 @@
 #include <linux/mutex.h>
 #include <linux/lockd/bind.h>
 #include <linux/module.h>
+#include <linux/dynamic_debug_nfsd.h>
 
 #define NFSDDBG_FACILITY                NFSDDBG_PROC
 
fs/nfsd/nfs4xdr.c +1 -0
index 0e6a179..87a3ea1 100644
@@ -47,6 +47,7 @@
 #include <linux/fs.h>
 #include <linux/namei.h>
 #include <linux/vfs.h>
+#include <linux/dynamic_debug_nfsd.h>
 #include <linux/sunrpc/xdr.h>
 #include <linux/sunrpc/svc.h>
 #include <linux/sunrpc/clnt.h>
fs/nfsd/nfscache.c +1 -0
index 5bfc2ac..7b02255 100644
@@ -16,6 +16,7 @@
 #include <linux/string.h>
 #include <linux/spinlock.h>
 #include <linux/list.h>
+#include <linux/dynamic_debug_nfsd.h>
 
 #include <linux/sunrpc/svc.h>
 #include <linux/nfsd/nfsd.h>
fs/nfsd/nfsctl.c +1 -0
index 8516137..2929c20 100644
@@ -25,6 +25,7 @@
 #include <linux/string.h>
 #include <linux/smp_lock.h>
 #include <linux/ctype.h>
+#include <linux/dynamic_debug_nfsd.h>
 
 #include <linux/nfs.h>
 #include <linux/nfsd_idmap.h>
fs/nfsd/nfsfh.c +1 -0
index 3e6b3f4..89cfb1e 100644
@@ -17,6 +17,7 @@
 #include <linux/dcache.h>
 #include <linux/exportfs.h>
 #include <linux/mount.h>
+#include <linux/dynamic_debug_nfsd.h>
 
 #include <linux/sunrpc/clnt.h>
 #include <linux/sunrpc/svc.h>
fs/nfsd/nfsproc.c +1 -0
index 6cfc96a..c10ed00 100644
@@ -18,6 +18,7 @@
 #include <linux/namei.h>
 #include <linux/unistd.h>
 #include <linux/slab.h>
+#include <linux/dynamic_debug_nfsd.h>
 
 #include <linux/sunrpc/clnt.h>
 #include <linux/sunrpc/svc.h>
fs/nfsd/nfssvc.c +1 -0
index 9647b0f..4277849 100644
@@ -21,6 +21,7 @@
 #include <linux/smp_lock.h>
 #include <linux/freezer.h>
 #include <linux/fs_struct.h>
+#include <linux/dynamic_debug_nfsd.h>
 
 #include <linux/sunrpc/types.h>
 #include <linux/sunrpc/stats.h>
fs/nfsd/nfsxdr.c +1 -0
index afd08e2..d29c6ea 100644
@@ -15,6 +15,7 @@
 #include <linux/nfsd/nfsd.h>
 #include <linux/nfsd/xdr.h>
 #include <linux/mm.h>
+#include <linux/dynamic_debug_nfsd.h>
 #include "auth.h"
 
 #define NFSDDBG_FACILITY		NFSDDBG_XDR
fs/nfsd/stats.c +1 -0
index 71944cd..75dbc07 100644
@@ -29,6 +29,7 @@
 #include <linux/seq_file.h>
 #include <linux/stat.h>
 #include <linux/module.h>
+#include <linux/dynamic_debug_nfsd.h>
 
 #include <linux/sunrpc/svc.h>
 #include <linux/sunrpc/stats.h>
fs/nfsd/vfs.c +1 -0
index 304bf5f..eae6524 100644
@@ -55,6 +55,7 @@
 #include <linux/security.h>
 #endif /* CONFIG_NFSD_V4 */
 #include <linux/jhash.h>
+#include <linux/dynamic_debug_nfsd.h>
 
 #include <asm/uaccess.h>
 
include/linux/dynamic_debug_lockd.h new file +6 -0
new file mode 100644
index 0000000..4a2603e
@@ -0,0 +1,6 @@
+#undef DYNAMIC_DEBUG_NUM_FLAGS
+#define DYNAMIC_DEBUG_NUM_FLAGS "10"
+#undef DYNAMIC_DEBUG_FLAG_NAMES
+#define DYNAMIC_DEBUG_FLAG_NAMES "NLMDBG_SVC,NLMDBG_CLIENT,NLMDBG_CLNTLOCK,NLMDBG_SVCLOCK,NLMDBG_MONITOR,NLMDBG_CLNTSUBS,NLMDBG_SVCSUBS,NLMDBG_HOSTCACHE,NLMDBG_XDR,NLMDBG_ALL"
+#undef DYNAMIC_DEBUG_TYPE
+#define DYNAMIC_DEBUG_TYPE "2"
include/linux/dynamic_debug_nfs.h new file +6 -0
new file mode 100644
index 0000000..ca611b8
@@ -0,0 +1,6 @@
+#undef DYNAMIC_DEBUG_NUM_FLAGS
+#define DYNAMIC_DEBUG_NUM_FLAGS "12"
+#undef DYNAMIC_DEBUG_FLAG_NAMES
+#define DYNAMIC_DEBUG_FLAG_NAMES "NFSDBG_VFS,NFSDBG_DIRCACHE,NFSDBG_LOOKUPCACHE,NFSDBG_PAGECACHE,NFSDBG_PROC,NFSDBG_XDR,NFSDBG_FILE,NFSDBG_ROOT,NFSDBG_CALLBACK,NFSDBG_CLIENT,NFSDBG_MOUNT,NFSDBG_ALL"
+#undef DYNAMIC_DEBUG_TYPE
+#define DYNAMIC_DEBUG_TYPE "2"
include/linux/dynamic_debug_nfsd.h new file +6 -0
new file mode 100644
index 0000000..6d2f987
@@ -0,0 +1,6 @@
+#undef DYNAMIC_DEBUG_NUM_FLAGS
+#define DYNAMIC_DEBUG_NUM_FLAGS "12"
+#undef DYNAMIC_DEBUG_FLAG_NAMES
+#define DYNAMIC_DEBUG_FLAG_NAMES "NFSDDBG_SOCK,NFSDDBG_FH,NFSDDBG_EXPORT,NFSDDBG_SVC,NFSDDBG_PROC,NFSDDBG_FILEOP,NFSDDBG_AUTH,NFSDDBG_REPCACHE,NFSDDBG_XDR,NFSDDBG_LOCKD,NFSDDBG_ALL,NFSDDBG_NOCHANGE"
+#undef DYNAMIC_DEBUG_TYPE
+#define DYNAMIC_DEBUG_TYPE "2"
include/linux/dynamic_debug_sunrpc.h new file +6 -0
new file mode 100644
index 0000000..28163e7
@@ -0,0 +1,6 @@
+#undef DYNAMIC_DEBUG_NUM_FLAGS
+#define DYNAMIC_DEBUG_NUM_FLAGS "13"
+#undef DYNAMIC_DEBUG_FLAG_NAMES
+#define DYNAMIC_DEBUG_FLAG_NAMES "RPCDBG_XPRT,RPCDBG_CALL,RPCDBG_DEBUG,RPCDBG_NFS,RPCDBG_AUTH,RPCDBG_BIND,RPCDBG_SCHED,RPCDBG_TRANS,RPCDBG_SVCXPRT,RPCDBG_SVCDSP,RPCDBG_MISC,RPCDBG_CACHE,RPCDBG_ALL"
+#undef DYNAMIC_DEBUG_TYPE
+#define DYNAMIC_DEBUG_TYPE "2"
include/linux/lockd/debug.h +5 -1
index 34b2b7f..d809874 100644
@@ -22,7 +22,11 @@
 #endif
 
 #undef ifdebug
-#if defined(RPC_DEBUG) && defined(LOCKD_DEBUG)
+# ifdef CONFIG_DYNAMIC_PRINTK_DEBUG
+#  define ifdebug(fac)          if (dynamic_dbg_enabled(TYPE_FLAG,   \
+							NLMDBG_##fac,\
+							nlm_debug))
+#elif defined(RPC_DEBUG) && defined(LOCKD_DEBUG)
 # define ifdebug(flag)		if (unlikely(nlm_debug & NLMDBG_##flag))
 #else
 # define ifdebug(flag)		if (0)
include/linux/nfs_fs.h +5 -1
index f4a0e4c..9beaded 100644
@@ -592,7 +592,11 @@ extern void * nfs_root_data(void);
 #endif
 
 # undef ifdebug
-# ifdef NFS_DEBUG
+# ifdef CONFIG_DYNAMIC_PRINTK_DEBUG
+#  define ifdebug(fac)          if (dynamic_dbg_enabled(TYPE_FLAG,   \
+							NFSDBG_##fac,\
+							nfs_debug))
+# elif defined(NFS_DEBUG)
 #  define ifdebug(fac)		if (unlikely(nfs_debug & NFSDBG_##fac))
 # else
 #  define ifdebug(fac)		if (0)
include/linux/nfsd/debug.h +5 -1
index ee4aa91..c053e22 100644
@@ -38,7 +38,11 @@
 
 #ifdef __KERNEL__
 # undef ifdebug
-# ifdef NFSD_DEBUG
+# ifdef CONFIG_DYNAMIC_PRINTK_DEBUG
+#  define ifdebug(fac)          if (dynamic_dbg_enabled(TYPE_FLAG,    \
+							NFSDDBG_##fac,\
+							nfsd_debug))
+# elif NFSD_DEBUG
 #  define ifdebug(flag)		if (nfsd_debug & NFSDDBG_##flag)
 # else
 #  define ifdebug(flag)		if (0)
include/linux/sunrpc/debug.h +7 -1
index 10709cb..b5e4e1c 100644
@@ -52,7 +52,13 @@ extern unsigned int		nlm_debug;
 #define dprintk(args...)	dfprintk(FACILITY, ## args)
 
 #undef ifdebug
-#ifdef RPC_DEBUG			
+#ifdef CONFIG_DYNAMIC_PRINTK_DEBUG
+#  define ifdebug(fac)          if (dynamic_dbg_enabled(TYPE_FLAG,   \
+							RPCDBG_##fac,\
+							rpc_debug))
+# define dfprintk(fac, args...) do { ifdebug(fac) printk(args); } while(0)
+# define RPC_IFDEBUG(x)         x
+#elif defined(RPC_DEBUG)
 # define ifdebug(fac)		if (unlikely(rpc_debug & RPCDBG_##fac))
 # define dfprintk(fac, args...)	do { ifdebug(fac) printk(args); } while(0)
 # define RPC_IFDEBUG(x)		x
net/sunrpc/auth.c +1 -0
index eca941c..63baeae 100644
@@ -11,6 +11,7 @@
 #include <linux/module.h>
 #include <linux/slab.h>
 #include <linux/errno.h>
+#include <linux/dynamic_debug_sunrpc.h>
 #include <linux/sunrpc/clnt.h>
 #include <linux/spinlock.h>
 
net/sunrpc/auth_null.c +1 -0
index 537d0e8..e8d4978 100644
@@ -9,6 +9,7 @@
 #include <linux/types.h>
 #include <linux/module.h>
 #include <linux/utsname.h>
+#include <linux/dynamic_debug_sunrpc.h>
 #include <linux/sunrpc/clnt.h>
 
 #ifdef RPC_DEBUG
net/sunrpc/auth_unix.c +1 -0
index 5ed91e5..465e256 100644
@@ -9,6 +9,7 @@
 #include <linux/types.h>
 #include <linux/sched.h>
 #include <linux/module.h>
+#include <linux/dynamic_debug_sunrpc.h>
 #include <linux/sunrpc/clnt.h>
 #include <linux/sunrpc/auth.h>
 
net/sunrpc/cache.c +1 -0
index b5f2786..17a9756 100644
@@ -27,6 +27,7 @@
 #include <linux/net.h>
 #include <linux/workqueue.h>
 #include <linux/mutex.h>
+#include <linux/dynamic_debug_sunrpc.h>
 #include <asm/ioctls.h>
 #include <linux/sunrpc/types.h>
 #include <linux/sunrpc/cache.h>
net/sunrpc/clnt.c +1 -0
index 7b96ff3..f61b72a 100644
@@ -31,6 +31,7 @@
 #include <linux/utsname.h>
 #include <linux/workqueue.h>
 #include <linux/in6.h>
+#include <linux/dynamic_debug_sunrpc.h>
 
 #include <linux/sunrpc/clnt.h>
 #include <linux/sunrpc/rpc_pipe_fs.h>
net/sunrpc/rpc_pipe.c +1 -0
index 5a9b0e7..c29a4b3 100644
@@ -22,6 +22,7 @@
 #include <linux/poll.h>
 #include <linux/wait.h>
 #include <linux/seq_file.h>
+#include <linux/dynamic_debug_sunrpc.h>
 
 #include <linux/sunrpc/clnt.h>
 #include <linux/workqueue.h>
net/sunrpc/rpcb_clnt.c +1 -0
index 56aa018..22dadd4 100644
@@ -20,6 +20,7 @@
 #include <linux/in6.h>
 #include <linux/kernel.h>
 #include <linux/errno.h>
+#include <linux/dynamic_debug_sunrpc.h>
 
 #include <linux/sunrpc/clnt.h>
 #include <linux/sunrpc/sched.h>
net/sunrpc/sched.c +1 -0
index 4c66912..96ec288 100644
@@ -19,6 +19,7 @@
 #include <linux/smp_lock.h>
 #include <linux/spinlock.h>
 #include <linux/mutex.h>
+#include <linux/dynamic_debug_sunrpc.h>
 
 #include <linux/sunrpc/clnt.h>
 
net/sunrpc/socklib.c +1 -0
index a661a3a..b04aa96 100644
@@ -12,6 +12,7 @@
 #include <linux/types.h>
 #include <linux/pagemap.h>
 #include <linux/udp.h>
+#include <linux/dynamic_debug_sunrpc.h>
 #include <linux/sunrpc/xdr.h>
 
 
net/sunrpc/stats.c +1 -0
index c6061a4..947b391 100644
@@ -18,6 +18,7 @@
 #include <linux/kernel.h>
 #include <linux/proc_fs.h>
 #include <linux/seq_file.h>
+#include <linux/dynamic_debug_sunrpc.h>
 #include <linux/sunrpc/clnt.h>
 #include <linux/sunrpc/svcsock.h>
 #include <linux/sunrpc/metrics.h>
net/sunrpc/sunrpc_syms.c +1 -0
index 843629f..57d0491 100644
@@ -12,6 +12,7 @@
 #include <linux/uio.h>
 #include <linux/unistd.h>
 #include <linux/init.h>
+#include <linux/dynamic_debug_sunrpc.h>
 
 #include <linux/sunrpc/sched.h>
 #include <linux/sunrpc/clnt.h>
net/sunrpc/svc.c +1 -0
index 090af78..535c08f 100644
@@ -19,6 +19,7 @@
 #include <linux/interrupt.h>
 #include <linux/module.h>
 #include <linux/sched.h>
+#include <linux/dynamic_debug_sunrpc.h>
 
 #include <linux/sunrpc/types.h>
 #include <linux/sunrpc/xdr.h>
net/sunrpc/svc_xprt.c +1 -0
index 332eb47..09207b4 100644
@@ -18,6 +18,7 @@
 #include <linux/skbuff.h>
 #include <linux/file.h>
 #include <linux/freezer.h>
+#include <linux/dynamic_debug_sunrpc.h>
 #include <net/sock.h>
 #include <net/checksum.h>
 #include <net/ip.h>
net/sunrpc/svcauth.c +1 -0
index 8a73cbb..bf65088 100644
@@ -17,6 +17,7 @@
 #include <linux/sunrpc/svcauth.h>
 #include <linux/err.h>
 #include <linux/hash.h>
+#include <linux/dynamic_debug_sunrpc.h>
 
 #define RPCDBG_FACILITY	RPCDBG_AUTH
 
net/sunrpc/svcauth_unix.c +1 -0
index 3c64051..d5bdcaa 100644
@@ -10,6 +10,7 @@
 #include <linux/seq_file.h>
 #include <linux/hash.h>
 #include <linux/string.h>
+#include <linux/dynamic_debug_sunrpc.h>
 #include <net/sock.h>
 
 #define RPCDBG_FACILITY	RPCDBG_AUTH
net/sunrpc/svcsock.c +1 -0
index c475977..0a13859 100644
@@ -34,6 +34,7 @@
 #include <linux/skbuff.h>
 #include <linux/file.h>
 #include <linux/freezer.h>
+#include <linux/dynamic_debug_sunrpc.h>
 #include <net/sock.h>
 #include <net/checksum.h>
 #include <net/ip.h>
net/sunrpc/sysctl.c +1 -0
index 0f8c439..ad26946 100644
@@ -13,6 +13,7 @@
 #include <linux/fs.h>
 #include <linux/sysctl.h>
 #include <linux/module.h>
+#include <linux/dynamic_debug_sunrpc.h>
 
 #include <asm/uaccess.h>
 #include <linux/sunrpc/types.h>
net/sunrpc/timer.c +1 -0
index 31becbf..08c03a3 100644
@@ -18,6 +18,7 @@
 #include <linux/types.h>
 #include <linux/unistd.h>
 #include <linux/module.h>
+#include <linux/dynamic_debug_sunrpc.h>
 
 #include <linux/sunrpc/clnt.h>
 
net/sunrpc/xdr.c +1 -0
index 79a55d5..c41412d 100644
@@ -12,6 +12,7 @@
 #include <linux/kernel.h>
 #include <linux/pagemap.h>
 #include <linux/errno.h>
+#include <linux/dynamic_debug_sunrpc.h>
 #include <linux/sunrpc/xdr.h>
 #include <linux/sunrpc/msg_prot.h>
 
net/sunrpc/xprt.c +1 -0
index d5553b8..1a2039e 100644
@@ -42,6 +42,7 @@
 #include <linux/interrupt.h>
 #include <linux/workqueue.h>
 #include <linux/net.h>
+#include <linux/dynamic_debug_sunrpc.h>
 
 #include <linux/sunrpc/clnt.h>
 #include <linux/sunrpc/metrics.h>
net/sunrpc/xprtsock.c +1 -0
index 613daf8..fc17df0 100644
@@ -34,6 +34,7 @@
 #include <linux/sunrpc/sched.h>
 #include <linux/sunrpc/xprtsock.h>
 #include <linux/file.h>
+#include <linux/dynamic_debug_sunrpc.h>
 
 #include <net/sock.h>
 #include <net/checksum.h>
#2 lore raw
Quoted 8 lines · On Tue, 15 Jul 2008 18:30:03 -0400 Trond Myklebust…
Quoted 4 lines · Jason Baron

-convert sunrpc debug facility

Where the hell did this come from, what's its purpose, and WTF haven't you Cced [email protected] so that the rest of us can review it?

It's on linux-kernel. If you don't have a linux-kernel subscription then you should fix that. Set up a procmail rule and do a search-by-subject when needed.

In this case, yes, it would have been nice if Jason had cc'ed lots of different lists and individuals on the core patch and then selectively cc'ed lists and individuals on the per-subsystem followup patches. But I doubt if even 2% of patch submitters manage to do all that correctly.

#3 lore raw
Quoted 9 lines · Andrew Morton
Quoted 6 lines · On Tue, 15 Jul 2008 18:30:03 -0400 Trond Myklebust…
Quoted 4 lines · Jason Baron

-convert sunrpc debug facility

Quoted 6 lines
Quoted 2 lines

Where the hell did this come from, what's its purpose, and WTF haven't you Cced [email protected] so that the rest of us can review it?

It's on linux-kernel. If you don't have a linux-kernel subscription then you should fix that. Set up a procmail rule and do a search-by-subject when needed.

I get my daily share of 1000-odd mails from linux-kernel, thanks, but 99% of that goes into the trashcan. I only keep a mail if I see that it's relevant. In this case, 1 email out of 7 turns out to be relevant (after I inadvertently deleted the apparently crucial first 2 emails), and there is no changelog entry to tell me what's being done or why.

By Ccing the correct list, we at least get a heads-up that this thread might be important. I can't archive all of lkml on my laptop, but I can and do archive all of linux-nfs...

Quoted 4 lines

In this case, yes, it would have been nice if Jason had cc'ed lots of different lists and individuals on the core patch and then selectively cc'ed lists and individuals on the per-subsystem followup patches. But I doubt if even 2% of patch submitters manage to do all that correctly.

The point is that he is changing a semi-official interface for tracing the NFS kernel activity from userspace. I'd like to know why and how it is being modified before I can ack it.

In addition there are several other developers who have a daily interest in using this interface when helping our users, and who might have comments.

Trond

#4 lore raw
Quoted 13 lines · On Tue, 15 Jul 2008 18:56:07 -0400 Trond Myklebust…
Quoted 12 lines · Andrew Morton
Quoted 8 lines · On Tue, 15 Jul 2008 18:30:03 -0400 Trond Myklebust…
Quoted 4 lines · Jason Baron

-convert sunrpc debug facility

Where the hell did this come from, what's its purpose, and WTF haven't you Cced [email protected] so that the rest of us can review it?

Quoted 7 lines
Quoted 3 lines

It's on linux-kernel. If you don't have a linux-kernel subscription then you should fix that. Set up a procmail rule and do a search-by-subject when needed.

I get my daily share of 1000-odd mails from linux-kernel, thanks, but 99% of that goes into the trashcan. I only keep a mail if I see that it's relevant.

Well stop doing that then. Use procmail to assemble a local linux-kernel archive and retain the last month or three's worth of traffic. This is trivial to set up and is pretty much essential practice for a kernel subsystem maintainer such as yourself.

Quoted 7 lines

In this case, 1 email out of 7 turns out to be relevant (after I inadvertently deleted the apparently crucial first 2 emails), and there is no changelog entry to tell me what's being done or why.

By Ccing the correct list, we at least get a heads-up that this thread might be important. I can't archive all of lkml on my laptop, but I can and do archive all of linux-nfs...

lkml is a mere 100MB/month. Sorry, but you and others who are operating at your level should really just do this.

Yes, it would be _better_ had Jason done the cc's perfectly, but as I said before, that is most uncommon.

The main downside from what he did is that while it is reasonable to assume that all top-level maintainers have a local lkml archive, it is not reasonable to assume that _all_ interested-in-nfs individuals have one as well.

But at least he copied _something_ to the right list. That puts him ahead of half the pack.

Quoted 5 lines
Quoted 4 lines

In this case, yes, it would have been nice if Jason had cc'ed lots of different lists and individuals on the core patch and then selectively cc'ed lists and individuals on the per-subsystem followup patches. But I doubt if even 2% of patch submitters manage to do all that correctly.

Quoted 7 lines

The point is that he is changing a semi-official interface for tracing the NFS kernel activity from userspace. I'd like to know why and how it is being modified before I can ack it.

In addition there are several other developers who have a daily interest in using this interface when helping our users, and who might have comments.

Sure.

What Jason is brewing up here is pretty major and ambitious revamp of our current horridly-ad-hoc kernel debugging practices. Look at this piece of horror:

akpm:/usr/src/25> grep '^dprintk' Tags | wc -l
206

(I mean: wtf?)

So yeah, it will be traumatic and intrusive and a bit risky and will require input and perhaps assistance from many developers. But if we can pull this off, the long-term benefits will be appreciable.

#5 lore raw
In reply to Trond Myklebust
Quoted 7 lines · Trond Myklebust

The point is that he is changing a semi-official interface for tracing the NFS kernel activity from userspace. I'd like to know why and how it is being modified before I can ack it.

In addition there are several other developers who have a daily interest in using this interface when helping our users, and who might have comments.

OK. Having looked up the missing patch on gmane, I'd like to know whether or not there is a followup plan to fix up utilities like 'rpcdebug'? Apparently this patch doesn't remove the existing sunrpc sysctl interface, but does circumvent it. The result is that while rpcdebug will happily continue to run, it just won't work any more...

Trond

#6 lore raw
Quoted 10 lines · On Tue, 15 Jul 2008 19:15:45 -0400 Trond Myklebust…
Quoted 7 lines · Trond Myklebust

The point is that he is changing a semi-official interface for tracing the NFS kernel activity from userspace. I'd like to know why and how it is being modified before I can ack it.

In addition there are several other developers who have a daily interest in using this interface when helping our users, and who might have comments.

Quoted 6 lines

OK. Having looked up the missing patch on gmane, I'd like to know whether or not there is a followup plan to fix up utilities like 'rpcdebug'? Apparently this patch doesn't remove the existing sunrpc sysctl interface, but does circumvent it. The result is that while rpcdebug will happily continue to run, it just won't work any more...

I'm suspecting that Jason chose the wrong starter subsystem here ;) Probably we should have started with the many hundreds of simpler cases.

OTOH, it's important that Jason understand NFS's requirements here. Treat it as a testcase for his design. Will his infrastructure be usable by NFS? If not, does his infrastructure need generalising and strengthening so that it _does_ suit?

#7 lore raw
Quoted 20 lines · Andrew Morton
Quoted 10 lines · On Tue, 15 Jul 2008 19:15:45 -0400 Trond Myklebust…
Quoted 7 lines · Trond Myklebust

The point is that he is changing a semi-official interface for tracing the NFS kernel activity from userspace. I'd like to know why and how it is being modified before I can ack it.

In addition there are several other developers who have a daily interest in using this interface when helping our users, and who might have comments.

Quoted 6 lines

OK. Having looked up the missing patch on gmane, I'd like to know whether or not there is a followup plan to fix up utilities like 'rpcdebug'? Apparently this patch doesn't remove the existing sunrpc sysctl interface, but does circumvent it. The result is that while rpcdebug will happily continue to run, it just won't work any more...

Quoted 8 lines

I'm suspecting that Jason chose the wrong starter subsystem here ;) Probably we should have started with the many hundreds of simpler cases.

OTOH, it's important that Jason understand NFS's requirements here. Treat it as a testcase for his design. Will his infrastructure be usable by NFS? If not, does his infrastructure need generalising and strengthening so that it _does_ suit?

Since rpcdebug + the sysctl interface are well established interfaces that are probably scripted all over the place by administrators who are using it to as a debugging tool, I'd say that any interface breakages need a managed transition period.

IOW: I'd say that any changes are going to need a transition period where a compatibility mode can be compiled in and where both interfaces work. It doesn't have to be too sophisticated, perhaps just something along the lines of

+# define ifdebug(fac) if (dynamic_dbg_enabled(TYPE_FLAG, \
+ RPCDBG_##fac,\
+ rpc_debug) || \
+ unlikely(rpc_debug & RPCDBG_##fac))
+# define dfprintk(fac, args...) do { ifdebug(fac) printk(args); } while(0)

So that scripts can choose either interface, and still continue to operate. Please also note the 'special' command

echo "n" >/proc/sys/sunrpc/rpc_debug

(where "n" is an integer) which always triggers a listing of the currently executing rpc calls (see net/sunrpc/sysctl.c:proc_dodebug()) in addition to enabling/disabling debugging.

#8 lore raw
Quoted 46 lines · Trond Myklebust
Quoted 20 lines · Andrew Morton
Quoted 10 lines · On Tue, 15 Jul 2008 19:15:45 -0400 Trond Myklebust…
Quoted 7 lines · Trond Myklebust

The point is that he is changing a semi-official interface for tracing the NFS kernel activity from userspace. I'd like to know why and how it is being modified before I can ack it.

In addition there are several other developers who have a daily interest in using this interface when helping our users, and who might have comments.

Quoted 6 lines

OK. Having looked up the missing patch on gmane, I'd like to know whether or not there is a followup plan to fix up utilities like 'rpcdebug'? Apparently this patch doesn't remove the existing sunrpc sysctl interface, but does circumvent it. The result is that while rpcdebug will happily continue to run, it just won't work any more...

Quoted 8 lines

I'm suspecting that Jason chose the wrong starter subsystem here ;) Probably we should have started with the many hundreds of simpler cases.

OTOH, it's important that Jason understand NFS's requirements here. Treat it as a testcase for his design. Will his infrastructure be usable by NFS? If not, does his infrastructure need generalising and strengthening so that it _does_ suit?

Since rpcdebug + the sysctl interface are well established interfaces that are probably scripted all over the place by administrators who are using it to as a debugging tool, I'd say that any interface breakages need a managed transition period.

IOW: I'd say that any changes are going to need a transition period where a compatibility mode can be compiled in and where both interfaces work. It doesn't have to be too sophisticated, perhaps just something along the lines of

(quoted diff) +5 -0
+#  define ifdebug(fac)          if (dynamic_dbg_enabled(TYPE_FLAG,   \
+                                                       RPCDBG_##fac,\
+                                                       rpc_debug) || \
+					unlikely(rpc_debug & RPCDBG_##fac))
+# define dfprintk(fac, args...) do { ifdebug(fac) printk(args); } while(0)
Quoted 10 lines

So that scripts can choose either interface, and still continue to operate. Please also note the 'special' command

echo "n" >/proc/sys/sunrpc/rpc_debug

(where "n" is an integer) which always triggers a listing of the currently executing rpc calls (see net/sunrpc/sysctl.c:proc_dodebug()) in addition to enabling/disabling debugging.

hi,

yes, i was aware of the breakage this patch introduced in the /proc/sys/sunrpc/* area...however, at his stage I was more interested in feedback on the approach in the 'core' part of this patch. that is, the usage of the hash table and bitmask to do module lookups. I didn't even feel this was ready to be run by subsystem maintainers yet...but maybe it is...I will try and 'cc the correct ppl going forward.

I like the above code suggestion for usage during a transition period. Perhaps, all reads/writes to the /proc/sys/sunrpc/* files also emit a deprecation warning during the transition period.

I think the listing of the currently executing rpc calls, is so specific that it continues to live on in /proc/sys/sunrpc/rpc_debug.

thanks,

-Jason