Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

SUNRPC: Replace dprintk() call site in xs_nospace()

"no socket space" is an exceptional and infrequent condition
that troubleshooters want to know about.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>

authored by

Chuck Lever and committed by
Anna Schumaker
015747d2 9ce07ae5

+29 -4
+28
include/trace/events/sunrpc.h
··· 898 898 DEFINE_RPC_SOCKET_EVENT(rpc_socket_close); 899 899 DEFINE_RPC_SOCKET_EVENT(rpc_socket_shutdown); 900 900 901 + TRACE_EVENT(rpc_socket_nospace, 902 + TP_PROTO( 903 + const struct rpc_rqst *rqst, 904 + const struct sock_xprt *transport 905 + ), 906 + 907 + TP_ARGS(rqst, transport), 908 + 909 + TP_STRUCT__entry( 910 + __field(unsigned int, task_id) 911 + __field(unsigned int, client_id) 912 + __field(unsigned int, total) 913 + __field(unsigned int, remaining) 914 + ), 915 + 916 + TP_fast_assign( 917 + __entry->task_id = rqst->rq_task->tk_pid; 918 + __entry->client_id = rqst->rq_task->tk_client->cl_clid; 919 + __entry->total = rqst->rq_slen; 920 + __entry->remaining = rqst->rq_slen - transport->xmit.offset; 921 + ), 922 + 923 + TP_printk("task:%u@%u total=%u remaining=%u", 924 + __entry->task_id, __entry->client_id, 925 + __entry->total, __entry->remaining 926 + ) 927 + ); 928 + 901 929 TRACE_DEFINE_ENUM(XPRT_LOCKED); 902 930 TRACE_DEFINE_ENUM(XPRT_CONNECTED); 903 931 TRACE_DEFINE_ENUM(XPRT_CONNECTING);
+1 -4
net/sunrpc/xprtsock.c
··· 762 762 struct sock *sk = transport->inet; 763 763 int ret = -EAGAIN; 764 764 765 - dprintk("RPC: %5u xmit incomplete (%u left of %u)\n", 766 - req->rq_task->tk_pid, 767 - req->rq_slen - transport->xmit.offset, 768 - req->rq_slen); 765 + trace_rpc_socket_nospace(req, transport); 769 766 770 767 /* Protect against races with write_space */ 771 768 spin_lock(&xprt->transport_lock);