funeth_trace.h 2.5 KB

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