 388f0c7767
			
		
	
	
	388f0c7767
	
	
	
		
			
			Add a new directory heirarchy under the debugfs sunrpc/ directory:
    sunrpc/
        rpc_xprt/
            <xprt id>/
Within that directory, we can put files that give info about the
xprts. We do have the (minor) problem that there is no succinct,
unique identifier for rpc_xprts. So we generate them synthetically
with a static atomic_t counter.
For now, this directory just holds an "info" file, but we may add
other files to it in the future.
Signed-off-by: Jeff Layton <jlayton@primarydata.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
		
	
			
		
			
				
	
	
		
			107 lines
		
	
	
	
		
			2.1 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
	
		
			2.1 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * linux/include/linux/sunrpc/debug.h
 | |
|  *
 | |
|  * Debugging support for sunrpc module
 | |
|  *
 | |
|  * Copyright (C) 1996, Olaf Kirch <okir@monad.swb.de>
 | |
|  */
 | |
| #ifndef _LINUX_SUNRPC_DEBUG_H_
 | |
| #define _LINUX_SUNRPC_DEBUG_H_
 | |
| 
 | |
| #include <uapi/linux/sunrpc/debug.h>
 | |
| 
 | |
| /*
 | |
|  * Debugging macros etc
 | |
|  */
 | |
| #if IS_ENABLED(CONFIG_SUNRPC_DEBUG)
 | |
| extern unsigned int		rpc_debug;
 | |
| extern unsigned int		nfs_debug;
 | |
| extern unsigned int		nfsd_debug;
 | |
| extern unsigned int		nlm_debug;
 | |
| #endif
 | |
| 
 | |
| #define dprintk(args...)	dfprintk(FACILITY, ## args)
 | |
| #define dprintk_rcu(args...)	dfprintk_rcu(FACILITY, ## args)
 | |
| 
 | |
| #undef ifdebug
 | |
| #if IS_ENABLED(CONFIG_SUNRPC_DEBUG)
 | |
| # define ifdebug(fac)		if (unlikely(rpc_debug & RPCDBG_##fac))
 | |
| 
 | |
| # define dfprintk(fac, args...)	\
 | |
| 	do { \
 | |
| 		ifdebug(fac) \
 | |
| 			printk(KERN_DEFAULT args); \
 | |
| 	} while (0)
 | |
| 
 | |
| # define dfprintk_rcu(fac, args...)	\
 | |
| 	do { \
 | |
| 		ifdebug(fac) { \
 | |
| 			rcu_read_lock(); \
 | |
| 			printk(KERN_DEFAULT args); \
 | |
| 			rcu_read_unlock(); \
 | |
| 		} \
 | |
| 	} while (0)
 | |
| 
 | |
| # define RPC_IFDEBUG(x)		x
 | |
| #else
 | |
| # define ifdebug(fac)		if (0)
 | |
| # define dfprintk(fac, args...)	do {} while (0)
 | |
| # define dfprintk_rcu(fac, args...)	do {} while (0)
 | |
| # define RPC_IFDEBUG(x)
 | |
| #endif
 | |
| 
 | |
| /*
 | |
|  * Sysctl interface for RPC debugging
 | |
|  */
 | |
| 
 | |
| struct rpc_clnt;
 | |
| struct rpc_xprt;
 | |
| 
 | |
| #if IS_ENABLED(CONFIG_SUNRPC_DEBUG)
 | |
| void		rpc_register_sysctl(void);
 | |
| void		rpc_unregister_sysctl(void);
 | |
| int		sunrpc_debugfs_init(void);
 | |
| void		sunrpc_debugfs_exit(void);
 | |
| int		rpc_clnt_debugfs_register(struct rpc_clnt *);
 | |
| void		rpc_clnt_debugfs_unregister(struct rpc_clnt *);
 | |
| int		rpc_xprt_debugfs_register(struct rpc_xprt *);
 | |
| void		rpc_xprt_debugfs_unregister(struct rpc_xprt *);
 | |
| #else
 | |
| static inline int
 | |
| sunrpc_debugfs_init(void)
 | |
| {
 | |
| 	return 0;
 | |
| }
 | |
| 
 | |
| static inline void
 | |
| sunrpc_debugfs_exit(void)
 | |
| {
 | |
| 	return;
 | |
| }
 | |
| 
 | |
| static inline int
 | |
| rpc_clnt_debugfs_register(struct rpc_clnt *clnt)
 | |
| {
 | |
| 	return 0;
 | |
| }
 | |
| 
 | |
| static inline void
 | |
| rpc_clnt_debugfs_unregister(struct rpc_clnt *clnt)
 | |
| {
 | |
| 	return;
 | |
| }
 | |
| 
 | |
| static inline int
 | |
| rpc_xprt_debugfs_register(struct rpc_xprt *xprt)
 | |
| {
 | |
| 	return 0;
 | |
| }
 | |
| 
 | |
| static inline void
 | |
| rpc_xprt_debugfs_unregister(struct rpc_xprt *xprt)
 | |
| {
 | |
| 	return;
 | |
| }
 | |
| #endif
 | |
| 
 | |
| #endif /* _LINUX_SUNRPC_DEBUG_H_ */
 |