Commit 17827754 authored by Alexander Aring's avatar Alexander Aring Committed by David Teigland

fs: dlm: add dst nodeid for msg tracing

In DLM when we send a dlm message it is easy to add the lock resource
name, but additional lookup is required when to trace the receive
message side. The idea here is to move the lookup work to the user by
using a lookup to find the right send message with recv message. As note
DLM can't drop any message which is guaranteed by a special session
layer.

For doing the lookup a 3 tupel is required as an unique identification
which is dst nodeid, src nodeid and sequence number. This patch adds the
destination nodeid to the dlm message trace points. The source nodeid is
given by the h_nodeid field inside the header.
Signed-off-by: default avatarAlexander Aring <aahringo@redhat.com>
Signed-off-by: default avatarDavid Teigland <teigland@redhat.com>
parent 81889255
......@@ -479,10 +479,10 @@ static void dlm_receive_buffer_3_2_trace(uint32_t seq, union dlm_packet *p)
{
switch (p->header.h_cmd) {
case DLM_MSG:
trace_dlm_recv_message(seq, &p->message);
trace_dlm_recv_message(dlm_our_nodeid(), seq, &p->message);
break;
case DLM_RCOM:
trace_dlm_recv_rcom(seq, &p->rcom);
trace_dlm_recv_rcom(dlm_our_nodeid(), seq, &p->rcom);
break;
default:
break;
......@@ -1151,11 +1151,13 @@ static void dlm_midcomms_commit_msg_3_2_trace(const struct dlm_mhandle *mh,
{
switch (mh->inner_p->header.h_cmd) {
case DLM_MSG:
trace_dlm_send_message(mh->seq, &mh->inner_p->message,
trace_dlm_send_message(mh->node->nodeid, mh->seq,
&mh->inner_p->message,
name, namelen);
break;
case DLM_RCOM:
trace_dlm_send_rcom(mh->seq, &mh->inner_p->rcom);
trace_dlm_send_rcom(mh->node->nodeid, mh->seq,
&mh->inner_p->rcom);
break;
default:
/* nothing to trace */
......
......@@ -342,11 +342,12 @@ TRACE_EVENT(dlm_unlock_end,
DECLARE_EVENT_CLASS(dlm_rcom_template,
TP_PROTO(uint32_t h_seq, const struct dlm_rcom *rc),
TP_PROTO(uint32_t dst, uint32_t h_seq, const struct dlm_rcom *rc),
TP_ARGS(h_seq, rc),
TP_ARGS(dst, h_seq, rc),
TP_STRUCT__entry(
__field(uint32_t, dst)
__field(uint32_t, h_seq)
__field(uint32_t, h_version)
__field(uint32_t, h_lockspace)
......@@ -363,6 +364,7 @@ DECLARE_EVENT_CLASS(dlm_rcom_template,
),
TP_fast_assign(
__entry->dst = dst;
__entry->h_seq = h_seq;
__entry->h_version = le32_to_cpu(rc->rc_header.h_version);
__entry->h_lockspace = le32_to_cpu(rc->rc_header.u.h_lockspace);
......@@ -378,10 +380,10 @@ DECLARE_EVENT_CLASS(dlm_rcom_template,
__get_dynamic_array_len(rc_buf));
),
TP_printk("h_seq=%u h_version=%s h_lockspace=%u h_nodeid=%u "
TP_printk("dst=%u h_seq=%u h_version=%s h_lockspace=%u h_nodeid=%u "
"h_length=%u h_cmd=%s rc_type=%s rc_result=%d "
"rc_id=%llu rc_seq=%llu rc_seq_reply=%llu "
"rc_buf=0x%s", __entry->h_seq,
"rc_buf=0x%s", __entry->dst, __entry->h_seq,
show_message_version(__entry->h_version),
__entry->h_lockspace, __entry->h_nodeid, __entry->h_length,
show_header_cmd(__entry->h_cmd),
......@@ -394,21 +396,22 @@ DECLARE_EVENT_CLASS(dlm_rcom_template,
);
DEFINE_EVENT(dlm_rcom_template, dlm_send_rcom,
TP_PROTO(uint32_t h_seq, const struct dlm_rcom *rc),
TP_ARGS(h_seq, rc));
TP_PROTO(uint32_t dst, uint32_t h_seq, const struct dlm_rcom *rc),
TP_ARGS(dst, h_seq, rc));
DEFINE_EVENT(dlm_rcom_template, dlm_recv_rcom,
TP_PROTO(uint32_t h_seq, const struct dlm_rcom *rc),
TP_ARGS(h_seq, rc));
TP_PROTO(uint32_t dst, uint32_t h_seq, const struct dlm_rcom *rc),
TP_ARGS(dst, h_seq, rc));
TRACE_EVENT(dlm_send_message,
TP_PROTO(uint32_t h_seq, const struct dlm_message *ms,
TP_PROTO(uint32_t dst, uint32_t h_seq, const struct dlm_message *ms,
const void *name, int namelen),
TP_ARGS(h_seq, ms, name, namelen),
TP_ARGS(dst, h_seq, ms, name, namelen),
TP_STRUCT__entry(
__field(uint32_t, dst)
__field(uint32_t, h_seq)
__field(uint32_t, h_version)
__field(uint32_t, h_lockspace)
......@@ -439,6 +442,7 @@ TRACE_EVENT(dlm_send_message,
),
TP_fast_assign(
__entry->dst = dst;
__entry->h_seq = h_seq;
__entry->h_version = le32_to_cpu(ms->m_header.h_version);
__entry->h_lockspace = le32_to_cpu(ms->m_header.u.h_lockspace);
......@@ -469,13 +473,13 @@ TRACE_EVENT(dlm_send_message,
__get_dynamic_array_len(res_name));
),
TP_printk("h_seq=%u h_version=%s h_lockspace=%u h_nodeid=%u "
TP_printk("dst=%u h_seq=%u h_version=%s h_lockspace=%u h_nodeid=%u "
"h_length=%u h_cmd=%s m_type=%s m_nodeid=%u "
"m_pid=%u m_lkid=%u m_remid=%u m_parent_lkid=%u "
"m_parent_remid=%u m_exflags=%s m_sbflags=%s m_flags=%s "
"m_lvbseq=%u m_hash=%u m_status=%d m_grmode=%s "
"m_rqmode=%s m_bastmode=%s m_asts=%d m_result=%d "
"m_extra=0x%s res_name=0x%s",
"m_extra=0x%s res_name=0x%s", __entry->dst,
__entry->h_seq, show_message_version(__entry->h_version),
__entry->h_lockspace, __entry->h_nodeid, __entry->h_length,
show_header_cmd(__entry->h_cmd),
......@@ -499,11 +503,12 @@ TRACE_EVENT(dlm_send_message,
TRACE_EVENT(dlm_recv_message,
TP_PROTO(uint32_t h_seq, const struct dlm_message *ms),
TP_PROTO(uint32_t dst, uint32_t h_seq, const struct dlm_message *ms),
TP_ARGS(h_seq, ms),
TP_ARGS(dst, h_seq, ms),
TP_STRUCT__entry(
__field(uint32_t, dst)
__field(uint32_t, h_seq)
__field(uint32_t, h_version)
__field(uint32_t, h_lockspace)
......@@ -533,6 +538,7 @@ TRACE_EVENT(dlm_recv_message,
),
TP_fast_assign(
__entry->dst = dst;
__entry->h_seq = h_seq;
__entry->h_version = le32_to_cpu(ms->m_header.h_version);
__entry->h_lockspace = le32_to_cpu(ms->m_header.u.h_lockspace);
......@@ -561,13 +567,13 @@ TRACE_EVENT(dlm_recv_message,
__get_dynamic_array_len(m_extra));
),
TP_printk("h_seq=%u h_version=%s h_lockspace=%u h_nodeid=%u "
TP_printk("dst=%u h_seq=%u h_version=%s h_lockspace=%u h_nodeid=%u "
"h_length=%u h_cmd=%s m_type=%s m_nodeid=%u "
"m_pid=%u m_lkid=%u m_remid=%u m_parent_lkid=%u "
"m_parent_remid=%u m_exflags=%s m_sbflags=%s m_flags=%s "
"m_lvbseq=%u m_hash=%u m_status=%d m_grmode=%s "
"m_rqmode=%s m_bastmode=%s m_asts=%d m_result=%d "
"m_extra=0x%s",
"m_extra=0x%s", __entry->dst,
__entry->h_seq, show_message_version(__entry->h_version),
__entry->h_lockspace, __entry->h_nodeid, __entry->h_length,
show_header_cmd(__entry->h_cmd),
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment