Commit 1e63e2f9 authored by Junxian Huang's avatar Junxian Huang Committed by Leon Romanovsky
Browse files

RDMA/hns: Add trace for AEQE dumping



Add trace for AEQE dumping.

Output example:
$ cat /sys/kernel/debug/tracing/trace
  tracer: nop

  entries-in-buffer/entries-written: 2/2   #P:128

                                 _-----=> irqs-off/BH-disabled
                               / _----=> need-resched
                               | / _---=> hardirq/softirq
                               || / _--=> preempt-depth
                               ||| / _-=> migrate-disable
                               |||| /     delay
            TASK-PID     CPU#  |||||  TIMESTAMP  FUNCTION
               | |         |   |||||     |         |
	  <idle>-0       [120] d.h1.  7995.835587: hns_ae_info: event 19 aeqe:
{0x80006013,0x0,0x0,0x10d2c,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}

Signed-off-by: default avatarJunxian Huang <huangjunxian6@hisilicon.com>
Link: https://patch.msgid.link/20250421132750.1363348-4-huangjunxian6@hisilicon.com


Signed-off-by: default avatarLeon Romanovsky <leon@kernel.org>
parent 6c98c867
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -6260,6 +6260,7 @@ static irqreturn_t hns_roce_v2_aeq_int(struct hns_roce_dev *hr_dev,
		eq->sub_type = sub_type;
		++eq->cons_index;
		aeqe_found = IRQ_HANDLED;
		trace_hns_ae_info(event_type, aeqe, eq->eqe_size);

		atomic64_inc(&hr_dev->dfx_cnt[HNS_ROCE_DFX_AEQE_CNT]);

+19 −0
Original line number Diff line number Diff line
@@ -85,6 +85,25 @@ DEFINE_EVENT(wqe_template, hns_srq_wqe,
		      enum hns_roce_trace_type type),
	     TP_ARGS(qpn, idx, wqe, len, id, type));

TRACE_EVENT(hns_ae_info,
	    TP_PROTO(int event_type, void *aeqe, unsigned int len),
	    TP_ARGS(event_type, aeqe, len),

	    TP_STRUCT__entry(__field(int, event_type)
			     __array(__le32, aeqe,
				     HNS_ROCE_V3_EQE_SIZE / sizeof(__le32))
			     __field(u32, len)
	    ),

	    TP_fast_assign(__entry->event_type = event_type;
			   __entry->len = len / sizeof(__le32);
			   memcpy(__entry->aeqe, aeqe, len);
	    ),

	    TP_printk("event %2d aeqe: %s", __entry->event_type,
		      __print_array(__entry->aeqe, __entry->len, sizeof(__le32)))
);

#endif /* __HNS_ROCE_TRACE_H */

#undef TRACE_INCLUDE_FILE