1*db37bc17SDimitris Michailidis /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */ 2*db37bc17SDimitris Michailidis 3*db37bc17SDimitris Michailidis #undef TRACE_SYSTEM 4*db37bc17SDimitris Michailidis #define TRACE_SYSTEM funeth 5*db37bc17SDimitris Michailidis 6*db37bc17SDimitris Michailidis #if !defined(_TRACE_FUNETH_H) || defined(TRACE_HEADER_MULTI_READ) 7*db37bc17SDimitris Michailidis #define _TRACE_FUNETH_H 8*db37bc17SDimitris Michailidis 9*db37bc17SDimitris Michailidis #include <linux/tracepoint.h> 10*db37bc17SDimitris Michailidis 11*db37bc17SDimitris Michailidis #include "funeth_txrx.h" 12*db37bc17SDimitris Michailidis 13*db37bc17SDimitris Michailidis TRACE_EVENT(funeth_tx, 14*db37bc17SDimitris Michailidis 15*db37bc17SDimitris Michailidis TP_PROTO(const struct funeth_txq *txq, 16*db37bc17SDimitris Michailidis u32 len, 17*db37bc17SDimitris Michailidis u32 sqe_idx, 18*db37bc17SDimitris Michailidis u32 ngle), 19*db37bc17SDimitris Michailidis 20*db37bc17SDimitris Michailidis TP_ARGS(txq, len, sqe_idx, ngle), 21*db37bc17SDimitris Michailidis 22*db37bc17SDimitris Michailidis TP_STRUCT__entry( 23*db37bc17SDimitris Michailidis __field(u32, qidx) 24*db37bc17SDimitris Michailidis __field(u32, len) 25*db37bc17SDimitris Michailidis __field(u32, sqe_idx) 26*db37bc17SDimitris Michailidis __field(u32, ngle) 27*db37bc17SDimitris Michailidis __string(devname, txq->netdev->name) 28*db37bc17SDimitris Michailidis ), 29*db37bc17SDimitris Michailidis 30*db37bc17SDimitris Michailidis TP_fast_assign( 31*db37bc17SDimitris Michailidis __entry->qidx = txq->qidx; 32*db37bc17SDimitris Michailidis __entry->len = len; 33*db37bc17SDimitris Michailidis __entry->sqe_idx = sqe_idx; 34*db37bc17SDimitris Michailidis __entry->ngle = ngle; 35*db37bc17SDimitris Michailidis __assign_str(devname, txq->netdev->name); 36*db37bc17SDimitris Michailidis ), 37*db37bc17SDimitris Michailidis 38*db37bc17SDimitris Michailidis TP_printk("%s: Txq %u, SQE idx %u, len %u, num GLEs %u", 39*db37bc17SDimitris Michailidis __get_str(devname), __entry->qidx, __entry->sqe_idx, 40*db37bc17SDimitris Michailidis __entry->len, __entry->ngle) 41*db37bc17SDimitris Michailidis ); 42*db37bc17SDimitris Michailidis 43*db37bc17SDimitris Michailidis TRACE_EVENT(funeth_tx_free, 44*db37bc17SDimitris Michailidis 45*db37bc17SDimitris Michailidis TP_PROTO(const struct funeth_txq *txq, 46*db37bc17SDimitris Michailidis u32 sqe_idx, 47*db37bc17SDimitris Michailidis u32 num_sqes, 48*db37bc17SDimitris Michailidis u32 hw_head), 49*db37bc17SDimitris Michailidis 50*db37bc17SDimitris Michailidis TP_ARGS(txq, sqe_idx, num_sqes, hw_head), 51*db37bc17SDimitris Michailidis 52*db37bc17SDimitris Michailidis TP_STRUCT__entry( 53*db37bc17SDimitris Michailidis __field(u32, qidx) 54*db37bc17SDimitris Michailidis __field(u32, sqe_idx) 55*db37bc17SDimitris Michailidis __field(u32, num_sqes) 56*db37bc17SDimitris Michailidis __field(u32, hw_head) 57*db37bc17SDimitris Michailidis __string(devname, txq->netdev->name) 58*db37bc17SDimitris Michailidis ), 59*db37bc17SDimitris Michailidis 60*db37bc17SDimitris Michailidis TP_fast_assign( 61*db37bc17SDimitris Michailidis __entry->qidx = txq->qidx; 62*db37bc17SDimitris Michailidis __entry->sqe_idx = sqe_idx; 63*db37bc17SDimitris Michailidis __entry->num_sqes = num_sqes; 64*db37bc17SDimitris Michailidis __entry->hw_head = hw_head; 65*db37bc17SDimitris Michailidis __assign_str(devname, txq->netdev->name); 66*db37bc17SDimitris Michailidis ), 67*db37bc17SDimitris Michailidis 68*db37bc17SDimitris Michailidis TP_printk("%s: Txq %u, SQE idx %u, SQEs %u, HW head %u", 69*db37bc17SDimitris Michailidis __get_str(devname), __entry->qidx, __entry->sqe_idx, 70*db37bc17SDimitris Michailidis __entry->num_sqes, __entry->hw_head) 71*db37bc17SDimitris Michailidis ); 72*db37bc17SDimitris Michailidis 73*db37bc17SDimitris Michailidis TRACE_EVENT(funeth_rx, 74*db37bc17SDimitris Michailidis 75*db37bc17SDimitris Michailidis TP_PROTO(const struct funeth_rxq *rxq, 76*db37bc17SDimitris Michailidis u32 num_rqes, 77*db37bc17SDimitris Michailidis u32 pkt_len, 78*db37bc17SDimitris Michailidis u32 hash, 79*db37bc17SDimitris Michailidis u32 cls_vec), 80*db37bc17SDimitris Michailidis 81*db37bc17SDimitris Michailidis TP_ARGS(rxq, num_rqes, pkt_len, hash, cls_vec), 82*db37bc17SDimitris Michailidis 83*db37bc17SDimitris Michailidis TP_STRUCT__entry( 84*db37bc17SDimitris Michailidis __field(u32, qidx) 85*db37bc17SDimitris Michailidis __field(u32, cq_head) 86*db37bc17SDimitris Michailidis __field(u32, num_rqes) 87*db37bc17SDimitris Michailidis __field(u32, len) 88*db37bc17SDimitris Michailidis __field(u32, hash) 89*db37bc17SDimitris Michailidis __field(u32, cls_vec) 90*db37bc17SDimitris Michailidis __string(devname, rxq->netdev->name) 91*db37bc17SDimitris Michailidis ), 92*db37bc17SDimitris Michailidis 93*db37bc17SDimitris Michailidis TP_fast_assign( 94*db37bc17SDimitris Michailidis __entry->qidx = rxq->qidx; 95*db37bc17SDimitris Michailidis __entry->cq_head = rxq->cq_head; 96*db37bc17SDimitris Michailidis __entry->num_rqes = num_rqes; 97*db37bc17SDimitris Michailidis __entry->len = pkt_len; 98*db37bc17SDimitris Michailidis __entry->hash = hash; 99*db37bc17SDimitris Michailidis __entry->cls_vec = cls_vec; 100*db37bc17SDimitris Michailidis __assign_str(devname, rxq->netdev->name); 101*db37bc17SDimitris Michailidis ), 102*db37bc17SDimitris Michailidis 103*db37bc17SDimitris Michailidis TP_printk("%s: Rxq %u, CQ head %u, RQEs %u, len %u, hash %u, CV %#x", 104*db37bc17SDimitris Michailidis __get_str(devname), __entry->qidx, __entry->cq_head, 105*db37bc17SDimitris Michailidis __entry->num_rqes, __entry->len, __entry->hash, 106*db37bc17SDimitris Michailidis __entry->cls_vec) 107*db37bc17SDimitris Michailidis ); 108*db37bc17SDimitris Michailidis 109*db37bc17SDimitris Michailidis #endif /* _TRACE_FUNETH_H */ 110*db37bc17SDimitris Michailidis 111*db37bc17SDimitris Michailidis /* Below must be outside protection. */ 112*db37bc17SDimitris Michailidis #undef TRACE_INCLUDE_PATH 113*db37bc17SDimitris Michailidis #define TRACE_INCLUDE_PATH . 114*db37bc17SDimitris Michailidis #undef TRACE_INCLUDE_FILE 115*db37bc17SDimitris Michailidis #define TRACE_INCLUDE_FILE funeth_trace 116*db37bc17SDimitris Michailidis 117*db37bc17SDimitris Michailidis #include <trace/define_trace.h> 118