Commit 92732376 authored by Alexander Aring's avatar Alexander Aring Committed by David Teigland
Browse files

fs: dlm: trace socket handling



This patch adds tracepoints for dlm socket receive and send
functionality. We can use it to track how much data was send or received
to or from a specific nodeid.

Signed-off-by: default avatarAlexander Aring <aahringo@redhat.com>
Signed-off-by: default avatarDavid Teigland <teigland@redhat.com>
parent f1d3b8f9
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -53,6 +53,8 @@
#include <net/sctp/sctp.h>
#include <net/ipv6.h>

#include <trace/events/dlm.h>

#include "dlm_internal.h"
#include "lowcomms.h"
#include "midcomms.h"
@@ -925,6 +927,7 @@ static int receive_from_sock(struct connection *con)
		msg.msg_flags = MSG_DONTWAIT | MSG_NOSIGNAL;
		ret = kernel_recvmsg(con->sock, &msg, &iov, 1, iov.iov_len,
				     msg.msg_flags);
		trace_dlm_recv(con->nodeid, ret);
		if (ret == -EAGAIN)
			break;
		else if (ret <= 0)
@@ -1411,6 +1414,7 @@ static void send_to_sock(struct connection *con)

		ret = kernel_sendpage(con->sock, e->page, offset, len,
				      msg_flags);
		trace_dlm_send(con->nodeid, ret);
		if (ret == -EAGAIN || ret == 0) {
			if (ret == -EAGAIN &&
			    test_bit(SOCKWQ_ASYNC_NOSPACE, &con->sock->flags) &&
+40 −0
Original line number Diff line number Diff line
@@ -214,6 +214,46 @@ TRACE_EVENT(dlm_unlock_end,

);

TRACE_EVENT(dlm_send,

	TP_PROTO(int nodeid, int ret),

	TP_ARGS(nodeid, ret),

	TP_STRUCT__entry(
		__field(int, nodeid)
		__field(int, ret)
	),

	TP_fast_assign(
		__entry->nodeid = nodeid;
		__entry->ret = ret;
	),

	TP_printk("nodeid=%d ret=%d", __entry->nodeid, __entry->ret)

);

TRACE_EVENT(dlm_recv,

	TP_PROTO(int nodeid, int ret),

	TP_ARGS(nodeid, ret),

	TP_STRUCT__entry(
		__field(int, nodeid)
		__field(int, ret)
	),

	TP_fast_assign(
		__entry->nodeid = nodeid;
		__entry->ret = ret;
	),

	TP_printk("nodeid=%d ret=%d", __entry->nodeid, __entry->ret)

);

#endif /* if !defined(_TRACE_DLM_H) || defined(TRACE_HEADER_MULTI_READ) */

/* This part must be outside protection */