drivers/infiniband/hw/hfi1/trace_ibhdrs.h

Source file repositories/reference/linux-study-clean/drivers/infiniband/hw/hfi1/trace_ibhdrs.h

File Facts

System
Linux kernel
Corpus path
drivers/infiniband/hw/hfi1/trace_ibhdrs.h
Extension
.h
Size
13659 bytes
Lines
456
Domain
Driver Families
Bucket
drivers/infiniband
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

if (__entry->etype == RHF_RCV_TYPE_BYPASS) {
				hfi1_trace_parse_16b_hdr(packet->hdr,
							 &__entry->age,
							 &__entry->becn,
							 &__entry->fecn,
							 &__entry->l4,
							 &__entry->rc,
							 &__entry->sc,
							 &__entry->entropy,
							 &__entry->len,
							 &__entry->pkey,
							 &__entry->dlid,
							 &__entry->slid);

				if (__entry->l4 == OPA_16B_L4_FM) {
					__entry->opcode = IB_OPCODE_UD_SEND_ONLY;
					__entry->dest_qpn = hfi1_16B_get_dest_qpn(packet->mgmt);
					__entry->src_qpn = hfi1_16B_get_src_qpn(packet->mgmt);
				}  else {
					hfi1_trace_parse_16b_bth(packet->ohdr,
								 &__entry->ack,
								 &__entry->mig,
								 &__entry->opcode,
								 &__entry->pad,
								 &__entry->se,
								 &__entry->tver,
								 &__entry->psn,
								 &__entry->qpn);
				}
			} else {
				__entry->l4 = OPA_16B_L4_9B;
				hfi1_trace_parse_9b_hdr(packet->hdr, sc5,
							&__entry->lnh,
							&__entry->lver,
							&__entry->sl,
							&__entry->sc,
							&__entry->len,
							&__entry->dlid,
							&__entry->slid);

				  hfi1_trace_parse_9b_bth(packet->ohdr,
							  &__entry->ack,
							  &__entry->becn,
							  &__entry->fecn,
							  &__entry->mig,
							  &__entry->se,
							  &__entry->pad,
							  &__entry->opcode,
							  &__entry->tver,
							  &__entry->pkey,
							  &__entry->psn,
							  &__entry->qpn);
			}
			/* extended headers */
			if (__entry->l4 != OPA_16B_L4_FM)
				memcpy(__get_dynamic_array(ehdrs),
				       &packet->ohdr->u,
				       __get_dynamic_array_len(ehdrs));
			 ),
		    TP_printk("[%s] (%s) %s %s hlen:%d %s",
			      __get_str(dev),
			      __entry->etype != RHF_RCV_TYPE_BYPASS ?
					show_packettype(__entry->etype) :
					hfi1_trace_get_packet_l2_str(
						__entry->l2),
			      hfi1_trace_fmt_lrh(p,
						 __entry->etype ==
							RHF_RCV_TYPE_BYPASS,
						 __entry->age,
						 __entry->becn,
						 __entry->fecn,
						 __entry->l4,
						 __entry->lnh,
						 show_lnh(__entry->lnh),
						 __entry->lver,
						 __entry->rc,
						 __entry->sc,
						 __entry->sl,
						 __entry->entropy,
						 __entry->len,
						 __entry->pkey,
						 __entry->dlid,
						 __entry->slid),
			      hfi1_trace_fmt_rest(p,
						  __entry->etype ==
							RHF_RCV_TYPE_BYPASS,
						  __entry->l4,
						  __entry->ack,
						  __entry->becn,
						  __entry->fecn,

Annotation

Implementation Notes