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: Alexander Aring <aahringo@redhat.com> Signed-off-by: David Teigland <teigland@redhat.com>
This commit is contained in:
Родитель
f1d3b8f91d
Коммит
92732376fd
|
@ -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) &&
|
||||
|
|
|
@ -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 */
|
||||
|
|
Загрузка…
Ссылка в новой задаче