brintos

brintos / linux-shallow public Read only

0
0
Text · 15.0 KiB · 10290eb Raw
533 lines · c
1// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause2/*3 * Copyright(c) 2015 - 2020 Intel Corporation.4 */5#define CREATE_TRACE_POINTS6#include "trace.h"7#include "exp_rcv.h"8#include "ipoib.h"9 10static u8 __get_ib_hdr_len(struct ib_header *hdr)11{12	struct ib_other_headers *ohdr;13	u8 opcode;14 15	if (ib_get_lnh(hdr) == HFI1_LRH_BTH)16		ohdr = &hdr->u.oth;17	else18		ohdr = &hdr->u.l.oth;19	opcode = ib_bth_get_opcode(ohdr);20	return hdr_len_by_opcode[opcode] == 0 ?21	       0 : hdr_len_by_opcode[opcode] - (12 + 8);22}23 24static u8 __get_16b_hdr_len(struct hfi1_16b_header *hdr)25{26	struct ib_other_headers *ohdr = NULL;27	u8 opcode;28	u8 l4 = hfi1_16B_get_l4(hdr);29 30	if (l4 == OPA_16B_L4_FM) {31		opcode = IB_OPCODE_UD_SEND_ONLY;32		return (8 + 8); /* No BTH */33	}34 35	if (l4 == OPA_16B_L4_IB_LOCAL)36		ohdr = &hdr->u.oth;37	else38		ohdr = &hdr->u.l.oth;39 40	opcode = ib_bth_get_opcode(ohdr);41	return hdr_len_by_opcode[opcode] == 0 ?42	       0 : hdr_len_by_opcode[opcode] - (12 + 8 + 8);43}44 45u8 hfi1_trace_packet_hdr_len(struct hfi1_packet *packet)46{47	if (packet->etype != RHF_RCV_TYPE_BYPASS)48		return __get_ib_hdr_len(packet->hdr);49	else50		return __get_16b_hdr_len(packet->hdr);51}52 53u8 hfi1_trace_opa_hdr_len(struct hfi1_opa_header *opa_hdr)54{55	if (!opa_hdr->hdr_type)56		return __get_ib_hdr_len(&opa_hdr->ibh);57	else58		return __get_16b_hdr_len(&opa_hdr->opah);59}60 61const char *hfi1_trace_get_packet_l4_str(u8 l4)62{63	if (l4)64		return "16B";65	else66		return "9B";67}68 69const char *hfi1_trace_get_packet_l2_str(u8 l2)70{71	switch (l2) {72	case 0:73		return "0";74	case 1:75		return "1";76	case 2:77		return "16B";78	case 3:79		return "9B";80	}81	return "";82}83 84#define IMM_PRN  "imm:%d"85#define RETH_PRN "reth vaddr:0x%.16llx rkey:0x%.8x dlen:0x%.8x"86#define AETH_PRN "aeth syn:0x%.2x %s msn:0x%.8x"87#define DETH_PRN "deth qkey:0x%.8x sqpn:0x%.6x"88#define DETH_ENTROPY_PRN "deth qkey:0x%.8x sqpn:0x%.6x entropy:0x%.2x"89#define IETH_PRN "ieth rkey:0x%.8x"90#define ATOMICACKETH_PRN "origdata:%llx"91#define ATOMICETH_PRN "vaddr:0x%llx rkey:0x%.8x sdata:%llx cdata:%llx"92#define TID_RDMA_KDETH "kdeth0 0x%x kdeth1 0x%x"93#define TID_RDMA_KDETH_DATA "kdeth0 0x%x: kver %u sh %u intr %u tidctrl %u tid %x offset %x kdeth1 0x%x: jkey %x"94#define TID_READ_REQ_PRN "tid_flow_psn 0x%x tid_flow_qp 0x%x verbs_qp 0x%x"95#define TID_READ_RSP_PRN "verbs_qp 0x%x"96#define TID_WRITE_REQ_PRN "original_qp 0x%x"97#define TID_WRITE_RSP_PRN "tid_flow_psn 0x%x tid_flow_qp 0x%x verbs_qp 0x%x"98#define TID_WRITE_DATA_PRN "verbs_qp 0x%x"99#define TID_ACK_PRN "tid_flow_psn 0x%x verbs_psn 0x%x tid_flow_qp 0x%x verbs_qp 0x%x"100#define TID_RESYNC_PRN "verbs_qp 0x%x"101 102#define OP(transport, op) IB_OPCODE_## transport ## _ ## op103 104static const char *parse_syndrome(u8 syndrome)105{106	switch (syndrome >> 5) {107	case 0:108		return "ACK";109	case 1:110		return "RNRNAK";111	case 3:112		return "NAK";113	}114	return "";115}116 117void hfi1_trace_parse_9b_bth(struct ib_other_headers *ohdr,118			     u8 *ack, bool *becn, bool *fecn, u8 *mig,119			     u8 *se, u8 *pad, u8 *opcode, u8 *tver,120			     u16 *pkey, u32 *psn, u32 *qpn)121{122	*ack = ib_bth_get_ackreq(ohdr);123	*becn = ib_bth_get_becn(ohdr);124	*fecn = ib_bth_get_fecn(ohdr);125	*mig = ib_bth_get_migreq(ohdr);126	*se = ib_bth_get_se(ohdr);127	*pad = ib_bth_get_pad(ohdr);128	*opcode = ib_bth_get_opcode(ohdr);129	*tver = ib_bth_get_tver(ohdr);130	*pkey = ib_bth_get_pkey(ohdr);131	*psn = mask_psn(ib_bth_get_psn(ohdr));132	*qpn = ib_bth_get_qpn(ohdr);133}134 135void hfi1_trace_parse_16b_bth(struct ib_other_headers *ohdr,136			      u8 *ack, u8 *mig, u8 *opcode,137			      u8 *pad, u8 *se, u8 *tver,138			      u32 *psn, u32 *qpn)139{140	*ack = ib_bth_get_ackreq(ohdr);141	*mig = ib_bth_get_migreq(ohdr);142	*opcode = ib_bth_get_opcode(ohdr);143	*pad = ib_bth_get_pad(ohdr);144	*se = ib_bth_get_se(ohdr);145	*tver = ib_bth_get_tver(ohdr);146	*psn = mask_psn(ib_bth_get_psn(ohdr));147	*qpn = ib_bth_get_qpn(ohdr);148}149 150static u16 ib_get_len(const struct ib_header *hdr)151{152	return be16_to_cpu(hdr->lrh[2]);153}154 155void hfi1_trace_parse_9b_hdr(struct ib_header *hdr, bool sc5,156			     u8 *lnh, u8 *lver, u8 *sl, u8 *sc,157			     u16 *len, u32 *dlid, u32 *slid)158{159	*lnh = ib_get_lnh(hdr);160	*lver = ib_get_lver(hdr);161	*sl = ib_get_sl(hdr);162	*sc = ib_get_sc(hdr) | (sc5 << 4);163	*len = ib_get_len(hdr);164	*dlid = ib_get_dlid(hdr);165	*slid = ib_get_slid(hdr);166}167 168void hfi1_trace_parse_16b_hdr(struct hfi1_16b_header *hdr,169			      u8 *age, bool *becn, bool *fecn,170			      u8 *l4, u8 *rc, u8 *sc,171			      u16 *entropy, u16 *len, u16 *pkey,172			      u32 *dlid, u32 *slid)173{174	*age = hfi1_16B_get_age(hdr);175	*becn = hfi1_16B_get_becn(hdr);176	*fecn = hfi1_16B_get_fecn(hdr);177	*l4 = hfi1_16B_get_l4(hdr);178	*rc = hfi1_16B_get_rc(hdr);179	*sc = hfi1_16B_get_sc(hdr);180	*entropy = hfi1_16B_get_entropy(hdr);181	*len = hfi1_16B_get_len(hdr);182	*pkey = hfi1_16B_get_pkey(hdr);183	*dlid = hfi1_16B_get_dlid(hdr);184	*slid = hfi1_16B_get_slid(hdr);185}186 187#define LRH_PRN "len:%d sc:%d dlid:0x%.4x slid:0x%.4x "188#define LRH_9B_PRN "lnh:%d,%s lver:%d sl:%d"189#define LRH_16B_PRN "age:%d becn:%d fecn:%d l4:%d " \190		    "rc:%d sc:%d pkey:0x%.4x entropy:0x%.4x"191const char *hfi1_trace_fmt_lrh(struct trace_seq *p, bool bypass,192			       u8 age, bool becn, bool fecn, u8 l4,193			       u8 lnh, const char *lnh_name, u8 lver,194			       u8 rc, u8 sc, u8 sl, u16 entropy,195			       u16 len, u16 pkey, u32 dlid, u32 slid)196{197	const char *ret = trace_seq_buffer_ptr(p);198 199	trace_seq_printf(p, LRH_PRN, len, sc, dlid, slid);200 201	if (bypass)202		trace_seq_printf(p, LRH_16B_PRN,203				 age, becn, fecn, l4, rc, sc, pkey, entropy);204 205	else206		trace_seq_printf(p, LRH_9B_PRN,207				 lnh, lnh_name, lver, sl);208	trace_seq_putc(p, 0);209 210	return ret;211}212 213#define BTH_9B_PRN \214	"op:0x%.2x,%s se:%d m:%d pad:%d tver:%d pkey:0x%.4x " \215	"f:%d b:%d qpn:0x%.6x a:%d psn:0x%.8x"216#define BTH_16B_PRN \217	"op:0x%.2x,%s se:%d m:%d pad:%d tver:%d " \218	"qpn:0x%.6x a:%d psn:0x%.8x"219#define L4_FM_16B_PRN \220	"op:0x%.2x,%s dest_qpn:0x%.6x src_qpn:0x%.6x"221const char *hfi1_trace_fmt_rest(struct trace_seq *p, bool bypass, u8 l4,222				u8 ack, bool becn, bool fecn, u8 mig,223				u8 se, u8 pad, u8 opcode, const char *opname,224				u8 tver, u16 pkey, u32 psn, u32 qpn,225				u32 dest_qpn, u32 src_qpn)226{227	const char *ret = trace_seq_buffer_ptr(p);228 229	if (bypass)230		if (l4 == OPA_16B_L4_FM)231			trace_seq_printf(p, L4_FM_16B_PRN,232					 opcode, opname, dest_qpn, src_qpn);233		else234			trace_seq_printf(p, BTH_16B_PRN,235					 opcode, opname,236					 se, mig, pad, tver, qpn, ack, psn);237 238	else239		trace_seq_printf(p, BTH_9B_PRN,240				 opcode, opname,241				 se, mig, pad, tver, pkey, fecn, becn,242				 qpn, ack, psn);243	trace_seq_putc(p, 0);244 245	return ret;246}247 248const char *parse_everbs_hdrs(249	struct trace_seq *p,250	u8 opcode, u8 l4, u32 dest_qpn, u32 src_qpn,251	void *ehdrs)252{253	union ib_ehdrs *eh = ehdrs;254	const char *ret = trace_seq_buffer_ptr(p);255 256	if (l4 == OPA_16B_L4_FM) {257		trace_seq_printf(p, "mgmt pkt");258		goto out;259	}260 261	switch (opcode) {262	/* imm */263	case OP(RC, SEND_LAST_WITH_IMMEDIATE):264	case OP(UC, SEND_LAST_WITH_IMMEDIATE):265	case OP(RC, SEND_ONLY_WITH_IMMEDIATE):266	case OP(UC, SEND_ONLY_WITH_IMMEDIATE):267	case OP(RC, RDMA_WRITE_LAST_WITH_IMMEDIATE):268	case OP(UC, RDMA_WRITE_LAST_WITH_IMMEDIATE):269		trace_seq_printf(p, IMM_PRN,270				 be32_to_cpu(eh->imm_data));271		break;272	/* reth + imm */273	case OP(RC, RDMA_WRITE_ONLY_WITH_IMMEDIATE):274	case OP(UC, RDMA_WRITE_ONLY_WITH_IMMEDIATE):275		trace_seq_printf(p, RETH_PRN " " IMM_PRN,276				 get_ib_reth_vaddr(&eh->rc.reth),277				 be32_to_cpu(eh->rc.reth.rkey),278				 be32_to_cpu(eh->rc.reth.length),279				 be32_to_cpu(eh->rc.imm_data));280		break;281	/* reth */282	case OP(RC, RDMA_READ_REQUEST):283	case OP(RC, RDMA_WRITE_FIRST):284	case OP(UC, RDMA_WRITE_FIRST):285	case OP(RC, RDMA_WRITE_ONLY):286	case OP(UC, RDMA_WRITE_ONLY):287		trace_seq_printf(p, RETH_PRN,288				 get_ib_reth_vaddr(&eh->rc.reth),289				 be32_to_cpu(eh->rc.reth.rkey),290				 be32_to_cpu(eh->rc.reth.length));291		break;292	case OP(RC, RDMA_READ_RESPONSE_FIRST):293	case OP(RC, RDMA_READ_RESPONSE_LAST):294	case OP(RC, RDMA_READ_RESPONSE_ONLY):295	case OP(RC, ACKNOWLEDGE):296		trace_seq_printf(p, AETH_PRN, be32_to_cpu(eh->aeth) >> 24,297				 parse_syndrome(be32_to_cpu(eh->aeth) >> 24),298				 be32_to_cpu(eh->aeth) & IB_MSN_MASK);299		break;300	case OP(TID_RDMA, WRITE_REQ):301		trace_seq_printf(p, TID_RDMA_KDETH " " RETH_PRN " "302				 TID_WRITE_REQ_PRN,303				 le32_to_cpu(eh->tid_rdma.w_req.kdeth0),304				 le32_to_cpu(eh->tid_rdma.w_req.kdeth1),305				 ib_u64_get(&eh->tid_rdma.w_req.reth.vaddr),306				 be32_to_cpu(eh->tid_rdma.w_req.reth.rkey),307				 be32_to_cpu(eh->tid_rdma.w_req.reth.length),308				 be32_to_cpu(eh->tid_rdma.w_req.verbs_qp));309		break;310	case OP(TID_RDMA, WRITE_RESP):311		trace_seq_printf(p, TID_RDMA_KDETH " " AETH_PRN " "312				 TID_WRITE_RSP_PRN,313				 le32_to_cpu(eh->tid_rdma.w_rsp.kdeth0),314				 le32_to_cpu(eh->tid_rdma.w_rsp.kdeth1),315				 be32_to_cpu(eh->tid_rdma.w_rsp.aeth) >> 24,316				 parse_syndrome(/* aeth */317					 be32_to_cpu(eh->tid_rdma.w_rsp.aeth)318					 >> 24),319				 (be32_to_cpu(eh->tid_rdma.w_rsp.aeth) &320				  IB_MSN_MASK),321				 be32_to_cpu(eh->tid_rdma.w_rsp.tid_flow_psn),322				 be32_to_cpu(eh->tid_rdma.w_rsp.tid_flow_qp),323				 be32_to_cpu(eh->tid_rdma.w_rsp.verbs_qp));324		break;325	case OP(TID_RDMA, WRITE_DATA_LAST):326	case OP(TID_RDMA, WRITE_DATA):327		trace_seq_printf(p, TID_RDMA_KDETH_DATA " " TID_WRITE_DATA_PRN,328				 le32_to_cpu(eh->tid_rdma.w_data.kdeth0),329				 KDETH_GET(eh->tid_rdma.w_data.kdeth0, KVER),330				 KDETH_GET(eh->tid_rdma.w_data.kdeth0, SH),331				 KDETH_GET(eh->tid_rdma.w_data.kdeth0, INTR),332				 KDETH_GET(eh->tid_rdma.w_data.kdeth0, TIDCTRL),333				 KDETH_GET(eh->tid_rdma.w_data.kdeth0, TID),334				 KDETH_GET(eh->tid_rdma.w_data.kdeth0, OFFSET),335				 le32_to_cpu(eh->tid_rdma.w_data.kdeth1),336				 KDETH_GET(eh->tid_rdma.w_data.kdeth1, JKEY),337				 be32_to_cpu(eh->tid_rdma.w_data.verbs_qp));338		break;339	case OP(TID_RDMA, READ_REQ):340		trace_seq_printf(p, TID_RDMA_KDETH " " RETH_PRN " "341				 TID_READ_REQ_PRN,342				 le32_to_cpu(eh->tid_rdma.r_req.kdeth0),343				 le32_to_cpu(eh->tid_rdma.r_req.kdeth1),344				 ib_u64_get(&eh->tid_rdma.r_req.reth.vaddr),345				 be32_to_cpu(eh->tid_rdma.r_req.reth.rkey),346				 be32_to_cpu(eh->tid_rdma.r_req.reth.length),347				 be32_to_cpu(eh->tid_rdma.r_req.tid_flow_psn),348				 be32_to_cpu(eh->tid_rdma.r_req.tid_flow_qp),349				 be32_to_cpu(eh->tid_rdma.r_req.verbs_qp));350		break;351	case OP(TID_RDMA, READ_RESP):352		trace_seq_printf(p, TID_RDMA_KDETH_DATA " " AETH_PRN " "353				 TID_READ_RSP_PRN,354				 le32_to_cpu(eh->tid_rdma.r_rsp.kdeth0),355				 KDETH_GET(eh->tid_rdma.r_rsp.kdeth0, KVER),356				 KDETH_GET(eh->tid_rdma.r_rsp.kdeth0, SH),357				 KDETH_GET(eh->tid_rdma.r_rsp.kdeth0, INTR),358				 KDETH_GET(eh->tid_rdma.r_rsp.kdeth0, TIDCTRL),359				 KDETH_GET(eh->tid_rdma.r_rsp.kdeth0, TID),360				 KDETH_GET(eh->tid_rdma.r_rsp.kdeth0, OFFSET),361				 le32_to_cpu(eh->tid_rdma.r_rsp.kdeth1),362				 KDETH_GET(eh->tid_rdma.r_rsp.kdeth1, JKEY),363				 be32_to_cpu(eh->tid_rdma.r_rsp.aeth) >> 24,364				 parse_syndrome(/* aeth */365					 be32_to_cpu(eh->tid_rdma.r_rsp.aeth)366					 >> 24),367				 (be32_to_cpu(eh->tid_rdma.r_rsp.aeth) &368				  IB_MSN_MASK),369				 be32_to_cpu(eh->tid_rdma.r_rsp.verbs_qp));370		break;371	case OP(TID_RDMA, ACK):372		trace_seq_printf(p, TID_RDMA_KDETH " " AETH_PRN " "373				 TID_ACK_PRN,374				 le32_to_cpu(eh->tid_rdma.ack.kdeth0),375				 le32_to_cpu(eh->tid_rdma.ack.kdeth1),376				 be32_to_cpu(eh->tid_rdma.ack.aeth) >> 24,377				 parse_syndrome(/* aeth */378					 be32_to_cpu(eh->tid_rdma.ack.aeth)379					 >> 24),380				 (be32_to_cpu(eh->tid_rdma.ack.aeth) &381				  IB_MSN_MASK),382				 be32_to_cpu(eh->tid_rdma.ack.tid_flow_psn),383				 be32_to_cpu(eh->tid_rdma.ack.verbs_psn),384				 be32_to_cpu(eh->tid_rdma.ack.tid_flow_qp),385				 be32_to_cpu(eh->tid_rdma.ack.verbs_qp));386		break;387	case OP(TID_RDMA, RESYNC):388		trace_seq_printf(p, TID_RDMA_KDETH " " TID_RESYNC_PRN,389				 le32_to_cpu(eh->tid_rdma.resync.kdeth0),390				 le32_to_cpu(eh->tid_rdma.resync.kdeth1),391				 be32_to_cpu(eh->tid_rdma.resync.verbs_qp));392		break;393	/* aeth + atomicacketh */394	case OP(RC, ATOMIC_ACKNOWLEDGE):395		trace_seq_printf(p, AETH_PRN " " ATOMICACKETH_PRN,396				 be32_to_cpu(eh->at.aeth) >> 24,397				 parse_syndrome(be32_to_cpu(eh->at.aeth) >> 24),398				 be32_to_cpu(eh->at.aeth) & IB_MSN_MASK,399				 ib_u64_get(&eh->at.atomic_ack_eth));400		break;401	/* atomiceth */402	case OP(RC, COMPARE_SWAP):403	case OP(RC, FETCH_ADD):404		trace_seq_printf(p, ATOMICETH_PRN,405				 get_ib_ateth_vaddr(&eh->atomic_eth),406				 eh->atomic_eth.rkey,407				 get_ib_ateth_swap(&eh->atomic_eth),408				 get_ib_ateth_compare(&eh->atomic_eth));409		break;410	/* deth */411	case OP(UD, SEND_ONLY):412		trace_seq_printf(p, DETH_ENTROPY_PRN,413				 be32_to_cpu(eh->ud.deth[0]),414				 be32_to_cpu(eh->ud.deth[1]) & RVT_QPN_MASK,415				 be32_to_cpu(eh->ud.deth[1]) >>416					     HFI1_IPOIB_ENTROPY_SHIFT);417		break;418	case OP(UD, SEND_ONLY_WITH_IMMEDIATE):419		trace_seq_printf(p, DETH_PRN,420				 be32_to_cpu(eh->ud.deth[0]),421				 be32_to_cpu(eh->ud.deth[1]) & RVT_QPN_MASK);422		break;423	/* ieth */424	case OP(RC, SEND_LAST_WITH_INVALIDATE):425	case OP(RC, SEND_ONLY_WITH_INVALIDATE):426		trace_seq_printf(p, IETH_PRN,427				 be32_to_cpu(eh->ieth));428		break;429	}430out:431	trace_seq_putc(p, 0);432	return ret;433}434 435const char *parse_sdma_flags(436	struct trace_seq *p,437	u64 desc0, u64 desc1)438{439	const char *ret = trace_seq_buffer_ptr(p);440	char flags[5] = { 'x', 'x', 'x', 'x', 0 };441 442	flags[0] = (desc1 & SDMA_DESC1_INT_REQ_FLAG) ? 'I' : '-';443	flags[1] = (desc1 & SDMA_DESC1_HEAD_TO_HOST_FLAG) ?  'H' : '-';444	flags[2] = (desc0 & SDMA_DESC0_FIRST_DESC_FLAG) ? 'F' : '-';445	flags[3] = (desc0 & SDMA_DESC0_LAST_DESC_FLAG) ? 'L' : '-';446	trace_seq_printf(p, "%s", flags);447	if (desc0 & SDMA_DESC0_FIRST_DESC_FLAG)448		trace_seq_printf(p, " amode:%u aidx:%u alen:%u",449				 (u8)((desc1 >> SDMA_DESC1_HEADER_MODE_SHIFT) &450				      SDMA_DESC1_HEADER_MODE_MASK),451				 (u8)((desc1 >> SDMA_DESC1_HEADER_INDEX_SHIFT) &452				      SDMA_DESC1_HEADER_INDEX_MASK),453				 (u8)((desc1 >> SDMA_DESC1_HEADER_DWS_SHIFT) &454				      SDMA_DESC1_HEADER_DWS_MASK));455	return ret;456}457 458const char *print_u32_array(459	struct trace_seq *p,460	u32 *arr, int len)461{462	int i;463	const char *ret = trace_seq_buffer_ptr(p);464 465	for (i = 0; i < len ; i++)466		trace_seq_printf(p, "%s%#x", i == 0 ? "" : " ", arr[i]);467	trace_seq_putc(p, 0);468	return ret;469}470 471u8 hfi1_trace_get_tid_ctrl(u32 ent)472{473	return EXP_TID_GET(ent, CTRL);474}475 476u16 hfi1_trace_get_tid_len(u32 ent)477{478	return EXP_TID_GET(ent, LEN);479}480 481u16 hfi1_trace_get_tid_idx(u32 ent)482{483	return EXP_TID_GET(ent, IDX);484}485 486struct hfi1_ctxt_hist {487	atomic_t count;488	atomic_t data[255];489};490 491static struct hfi1_ctxt_hist hist = {492	.count = ATOMIC_INIT(0)493};494 495const char *hfi1_trace_print_rsm_hist(struct trace_seq *p, unsigned int ctxt)496{497	int i, len = ARRAY_SIZE(hist.data);498	const char *ret = trace_seq_buffer_ptr(p);499	unsigned long packet_count = atomic_fetch_inc(&hist.count);500 501	trace_seq_printf(p, "packet[%lu]", packet_count);502	for (i = 0; i < len; ++i) {503		unsigned long val;504		atomic_t *count = &hist.data[i];505 506		if (ctxt == i)507			val = atomic_fetch_inc(count);508		else509			val = atomic_read(count);510 511		if (val)512			trace_seq_printf(p, "(%d:%lu)", i, val);513	}514	trace_seq_putc(p, 0);515	return ret;516}517 518__hfi1_trace_fn(AFFINITY);519__hfi1_trace_fn(PKT);520__hfi1_trace_fn(PROC);521__hfi1_trace_fn(SDMA);522__hfi1_trace_fn(LINKVERB);523__hfi1_trace_fn(DEBUG);524__hfi1_trace_fn(SNOOP);525__hfi1_trace_fn(CNTR);526__hfi1_trace_fn(PIO);527__hfi1_trace_fn(DC8051);528__hfi1_trace_fn(FIRMWARE);529__hfi1_trace_fn(RCVCTRL);530__hfi1_trace_fn(TID);531__hfi1_trace_fn(MMU);532__hfi1_trace_fn(IOCTL);533