dynamic debug v2 - nfs conversion
Subsystems (3)
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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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>
Quoted 4 lines · Jason Baron
-convert sunrpc debug facility
Signed-off-by Jason Baron <[email protected]>
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 8 lines · On Tue, 15 Jul 2008 18:30:03 -0400 Trond Myklebust…
Quoted 4 lines · Jason Baron
-convert sunrpc debug facility
Signed-off-by Jason Baron <[email protected]>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.
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
Signed-off-by Jason Baron <[email protected]>
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
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
Signed-off-by Jason Baron <[email protected]>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.
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
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?
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.
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