All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chuck Lever <chuck.lever@oracle.com>
To: linux-nfs@vger.kernel.org
Subject: [PATCH v1 19/22] SUNRPC: Replace rpcbind dprintk call sites with tracepoints
Date: Wed, 08 Jul 2020 16:10:40 -0400	[thread overview]
Message-ID: <20200708201040.22129.3056.stgit@manet.1015granger.net> (raw)
In-Reply-To: <20200708200121.22129.92375.stgit@manet.1015granger.net>

In many cases, tracepoints already report these errors. In others,
the dprintks were mainly useful when this code was less mature.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 include/trace/events/sunrpc.h |   86 +++++++++++++++++++++++++++++++++++++++++
 net/sunrpc/rpcb_clnt.c        |   24 ++---------
 2 files changed, 90 insertions(+), 20 deletions(-)

diff --git a/include/trace/events/sunrpc.h b/include/trace/events/sunrpc.h
index 946bb73afc95..9177520b55a8 100644
--- a/include/trace/events/sunrpc.h
+++ b/include/trace/events/sunrpc.h
@@ -1334,6 +1334,92 @@ TRACE_EVENT(rpcb_setport,
 	)
 );
 
+TRACE_EVENT(pmap_register,
+	TP_PROTO(
+		u32 program,
+		u32 version,
+		int protocol,
+		unsigned short port
+	),
+
+	TP_ARGS(program, version, protocol, port),
+
+	TP_STRUCT__entry(
+		__field(unsigned int, program)
+		__field(unsigned int, version)
+		__field(int, protocol)
+		__field(unsigned int, port)
+	),
+
+	TP_fast_assign(
+		__entry->program = program;
+		__entry->version = version;
+		__entry->protocol = protocol;
+		__entry->port = port;
+	),
+
+	TP_printk("program=%u version=%u protocol=%d port=%u",
+		__entry->program, __entry->version,
+		__entry->protocol, __entry->port
+	)
+);
+
+TRACE_EVENT(rpcb_register,
+	TP_PROTO(
+		u32 program,
+		u32 version,
+		const char *addr,
+		const char *netid
+	),
+
+	TP_ARGS(program, version, addr, netid),
+
+	TP_STRUCT__entry(
+		__field(unsigned int, program)
+		__field(unsigned int, version)
+		__string(addr, addr)
+		__string(netid, netid)
+	),
+
+	TP_fast_assign(
+		__entry->program = program;
+		__entry->version = version;
+		__assign_str(addr, addr);
+		__assign_str(netid, netid);
+	),
+
+	TP_printk("program=%u version=%u addr=%s netid=%s",
+		__entry->program, __entry->version,
+		__get_str(addr), __get_str(netid)
+	)
+);
+
+TRACE_EVENT(rpcb_unregister,
+	TP_PROTO(
+		u32 program,
+		u32 version,
+		const char *netid
+	),
+
+	TP_ARGS(program, version, netid),
+
+	TP_STRUCT__entry(
+		__field(unsigned int, program)
+		__field(unsigned int, version)
+		__string(netid, netid)
+	),
+
+	TP_fast_assign(
+		__entry->program = program;
+		__entry->version = version;
+		__assign_str(netid, netid);
+	),
+
+	TP_printk("program=%u version=%u netid=%s",
+		__entry->program, __entry->version, __get_str(netid)
+	)
+);
+
 DECLARE_EVENT_CLASS(svc_xdr_buf_class,
 	TP_PROTO(
 		const struct svc_rqst *rqst,
diff --git a/net/sunrpc/rpcb_clnt.c b/net/sunrpc/rpcb_clnt.c
index af2882c62a3b..38fe2ce8a5aa 100644
--- a/net/sunrpc/rpcb_clnt.c
+++ b/net/sunrpc/rpcb_clnt.c
@@ -35,10 +35,6 @@
 
 #include "netns.h"
 
-#if IS_ENABLED(CONFIG_SUNRPC_DEBUG)
-# define RPCDBG_FACILITY	RPCDBG_BIND
-#endif
-
 #define RPCBIND_SOCK_PATHNAME	"/var/run/rpcbind.sock"
 
 #define RPCBIND_PROGRAM		(100000u)
@@ -444,9 +440,7 @@ int rpcb_register(struct net *net, u32 prog, u32 vers, int prot, unsigned short
 	struct sunrpc_net *sn = net_generic(net, sunrpc_net_id);
 	bool is_set = false;
 
-	dprintk("RPC:       %sregistering (%u, %u, %d, %u) with local "
-			"rpcbind\n", (port ? "" : "un"),
-			prog, vers, prot, port);
+	trace_pmap_register(prog, vers, prot, port);
 
 	msg.rpc_proc = &rpcb_procedures2[RPCBPROC_UNSET];
 	if (port != 0) {
@@ -472,11 +466,6 @@ static int rpcb_register_inet4(struct sunrpc_net *sn,
 
 	map->r_addr = rpc_sockaddr2uaddr(sap, GFP_KERNEL);
 
-	dprintk("RPC:       %sregistering [%u, %u, %s, '%s'] with "
-		"local rpcbind\n", (port ? "" : "un"),
-			map->r_prog, map->r_vers,
-			map->r_addr, map->r_netid);
-
 	msg->rpc_proc = &rpcb_procedures4[RPCBPROC_UNSET];
 	if (port != 0) {
 		msg->rpc_proc = &rpcb_procedures4[RPCBPROC_SET];
@@ -503,11 +492,6 @@ static int rpcb_register_inet6(struct sunrpc_net *sn,
 
 	map->r_addr = rpc_sockaddr2uaddr(sap, GFP_KERNEL);
 
-	dprintk("RPC:       %sregistering [%u, %u, %s, '%s'] with "
-		"local rpcbind\n", (port ? "" : "un"),
-			map->r_prog, map->r_vers,
-			map->r_addr, map->r_netid);
-
 	msg->rpc_proc = &rpcb_procedures4[RPCBPROC_UNSET];
 	if (port != 0) {
 		msg->rpc_proc = &rpcb_procedures4[RPCBPROC_SET];
@@ -524,9 +508,7 @@ static int rpcb_unregister_all_protofamilies(struct sunrpc_net *sn,
 {
 	struct rpcbind_args *map = msg->rpc_argp;
 
-	dprintk("RPC:       unregistering [%u, %u, '%s'] with "
-		"local rpcbind\n",
-			map->r_prog, map->r_vers, map->r_netid);
+	trace_rpcb_unregister(map->r_prog, map->r_vers, map->r_netid);
 
 	map->r_addr = "";
 	msg->rpc_proc = &rpcb_procedures4[RPCBPROC_UNSET];
@@ -598,6 +580,8 @@ int rpcb_v4_register(struct net *net, const u32 program, const u32 version,
 	if (address == NULL)
 		return rpcb_unregister_all_protofamilies(sn, &msg);
 
+	trace_rpcb_register(map.r_prog, map.r_vers, map.r_addr, map.r_netid);
+
 	switch (address->sa_family) {
 	case AF_INET:
 		return rpcb_register_inet4(sn, address, &msg);


  parent reply	other threads:[~2020-07-08 20:10 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-08 20:08 [PATCH v1 00/22] SUNRPC: Replace dprintk calls with tracepoints Chuck Lever
2020-07-08 20:09 ` [PATCH v1 01/22] SUNRPC: Remove trace_xprt_complete_rqst() Chuck Lever
2020-07-08 20:09 ` [PATCH v1 02/22] SUNRPC: Hoist trace_xprtrdma_op_allocate into generic code Chuck Lever
2020-07-08 20:09 ` [PATCH v1 03/22] SUNRPC: Remove debugging instrumentation from xprt_release Chuck Lever
2020-07-08 20:09 ` [PATCH v1 04/22] SUNRPC: Update debugging instrumentation in xprt_do_reserve() Chuck Lever
2020-07-08 20:09 ` [PATCH v1 05/22] SUNRPC: Replace dprintk() call site in xprt_prepare_transmit Chuck Lever
2020-07-08 20:09 ` [PATCH v1 06/22] SUNRPC: Replace dprintk() call site in xs_nospace() Chuck Lever
2020-07-08 20:09 ` [PATCH v1 07/22] SUNRPC: Remove the dprint_status() macro Chuck Lever
2020-07-08 20:09 ` [PATCH v1 08/22] SUNRPC: Remove dprintk call site in call_start() Chuck Lever
2020-07-08 20:09 ` [PATCH v1 09/22] SUNRPC: Replace connect dprintk call sites with a tracepoint Chuck Lever
2020-07-08 20:09 ` [PATCH v1 10/22] SUNRPC: Mitigate cond_resched() in xprt_transmit() Chuck Lever
2020-07-08 20:09 ` [PATCH v1 11/22] SUNRPC: Add trace_rpc_timeout_status() Chuck Lever
2020-07-08 20:10 ` [PATCH v1 12/22] SUNRPC: Trace call_refresh events Chuck Lever
2020-07-08 20:10 ` [PATCH v1 13/22] SUNRPC: Remove dprintk call site in call_decode Chuck Lever
2020-07-08 20:10 ` [PATCH v1 14/22] SUNRPC: Clean up call_bind_status() observability Chuck Lever
2020-07-08 20:10 ` [PATCH v1 15/22] SUNRPC: Remove rpcb_getport_async dprintk call sites Chuck Lever
2020-07-08 20:10 ` [PATCH v1 16/22] SUNRPC: Hoist trace_xprtrdma_op_setport into generic code Chuck Lever
2020-07-08 20:10 ` [PATCH v1 17/22] SUNRPC: Remove dprintk call sites in rpcbind XDR functions Chuck Lever
2020-07-08 20:10 ` [PATCH v1 18/22] SUNRPC: Remove more dprintks in rpcb_clnt.c Chuck Lever
2020-07-08 20:10 ` Chuck Lever [this message]
2020-07-08 20:10 ` [PATCH v1 20/22] SUNRPC: Clean up RPC scheduler tracepoints Chuck Lever
2020-07-08 20:10 ` [PATCH v1 21/22] SUNRPC: Remove dprintk call sites in RPC queuing functions Chuck Lever
2020-07-08 20:10 ` [PATCH v1 22/22] SUNRPC: Remove remaining dprintks from sched.c Chuck Lever
2020-08-17 17:25 ` [PATCH v1 00/22] SUNRPC: Replace dprintk calls with tracepoints Chuck Lever

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200708201040.22129.3056.stgit@manet.1015granger.net \
    --to=chuck.lever@oracle.com \
    --cc=linux-nfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.