File Index
Files and directories
Sign in
FILE

hclgevf_trace.h

File preview with syntax highlighting.

linux-6.19.14/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_trace.h C
  1/* SPDX-License-Identifier: GPL-2.0+ */
  2/* Copyright (c) 2018-2019 Hisilicon Limited. */
  3
  4/* This must be outside ifdef _HCLGEVF_TRACE_H */
  5#undef TRACE_SYSTEM
  6#define TRACE_SYSTEM hns3
  7
  8#if !defined(_HCLGEVF_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ)
  9#define _HCLGEVF_TRACE_H_
 10
 11#include <linux/tracepoint.h>
 12
 13#define VF_GET_MBX_LEN	(sizeof(struct hclge_mbx_pf_to_vf_cmd) / sizeof(u32))
 14#define VF_SEND_MBX_LEN	(sizeof(struct hclge_mbx_vf_to_pf_cmd) / sizeof(u32))
 15
 16TRACE_EVENT(hclge_vf_mbx_get,
 17	TP_PROTO(
 18		struct hclgevf_dev *hdev,
 19		struct hclge_mbx_pf_to_vf_cmd *req),
 20	TP_ARGS(hdev, req),
 21
 22	TP_STRUCT__entry(
 23		__field(u8, vfid)
 24		__field(u16, code)
 25		__string(pciname, pci_name(hdev->pdev))
 26		__string(devname, hdev->nic.kinfo.netdev->name)
 27		__array(u32, mbx_data, VF_GET_MBX_LEN)
 28	),
 29
 30	TP_fast_assign(
 31		__entry->vfid = req->dest_vfid;
 32		__entry->code = le16_to_cpu(req->msg.code);
 33		__assign_str(pciname);
 34		__assign_str(devname);
 35		memcpy(__entry->mbx_data, req,
 36		       sizeof(struct hclge_mbx_pf_to_vf_cmd));
 37	),
 38
 39	TP_printk(
 40		"%s %s vfid:%u code:%u data:%s",
 41		__get_str(pciname), __get_str(devname), __entry->vfid,
 42		__entry->code,
 43		__print_array(__entry->mbx_data, VF_GET_MBX_LEN, sizeof(u32))
 44	)
 45);
 46
 47TRACE_EVENT(hclge_vf_mbx_send,
 48	TP_PROTO(
 49		struct hclgevf_dev *hdev,
 50		struct hclge_mbx_vf_to_pf_cmd *req),
 51	TP_ARGS(hdev, req),
 52
 53	TP_STRUCT__entry(
 54		__field(u8, vfid)
 55		__field(u8, code)
 56		__field(u8, subcode)
 57		__string(pciname, pci_name(hdev->pdev))
 58		__string(devname, hdev->nic.kinfo.netdev->name)
 59		__array(u32, mbx_data, VF_SEND_MBX_LEN)
 60	),
 61
 62	TP_fast_assign(
 63		__entry->vfid = req->mbx_src_vfid;
 64		__entry->code = req->msg.code;
 65		__entry->subcode = req->msg.subcode;
 66		__assign_str(pciname);
 67		__assign_str(devname);
 68		memcpy(__entry->mbx_data, req,
 69		       sizeof(struct hclge_mbx_vf_to_pf_cmd));
 70	),
 71
 72	TP_printk(
 73		"%s %s vfid:%u code:%u subcode:%u data:%s",
 74		__get_str(pciname), __get_str(devname), __entry->vfid,
 75		__entry->code, __entry->subcode,
 76		__print_array(__entry->mbx_data, VF_SEND_MBX_LEN, sizeof(u32))
 77	)
 78);
 79
 80DECLARE_EVENT_CLASS(hclge_vf_cmd_template,
 81		    TP_PROTO(struct hclge_comm_hw *hw,
 82			     struct hclge_desc *desc,
 83			     int index,
 84			     int num),
 85
 86		    TP_ARGS(hw, desc, index, num),
 87
 88		    TP_STRUCT__entry(__field(u16, opcode)
 89			__field(u16, flag)
 90			__field(u16, retval)
 91			__field(u16, rsv)
 92			__field(int, index)
 93			__field(int, num)
 94			__string(pciname, pci_name(hw->cmq.csq.pdev))
 95			__array(u32, data, HCLGE_DESC_DATA_LEN)),
 96
 97		    TP_fast_assign(int i;
 98			__entry->opcode = le16_to_cpu(desc->opcode);
 99			__entry->flag = le16_to_cpu(desc->flag);
100			__entry->retval = le16_to_cpu(desc->retval);
101			__entry->rsv = le16_to_cpu(desc->rsv);
102			__entry->index = index;
103			__entry->num = num;
104			__assign_str(pciname);
105			for (i = 0; i < HCLGE_DESC_DATA_LEN; i++)
106				__entry->data[i] = le32_to_cpu(desc->data[i]);),
107
108		    TP_printk("%s opcode:0x%04x %d-%d flag:0x%04x retval:0x%04x rsv:0x%04x data:%s",
109			      __get_str(pciname), __entry->opcode,
110			      __entry->index, __entry->num,
111			      __entry->flag, __entry->retval, __entry->rsv,
112			      __print_array(__entry->data,
113					    HCLGE_DESC_DATA_LEN, sizeof(u32)))
114);
115
116DEFINE_EVENT(hclge_vf_cmd_template, hclge_vf_cmd_send,
117	     TP_PROTO(struct hclge_comm_hw *hw,
118		      struct hclge_desc *desc,
119		      int index,
120		      int num),
121	     TP_ARGS(hw, desc, index, num));
122
123DEFINE_EVENT(hclge_vf_cmd_template, hclge_vf_cmd_get,
124	     TP_PROTO(struct hclge_comm_hw *hw,
125		      struct hclge_desc *desc,
126		      int index,
127		      int num),
128	     TP_ARGS(hw, desc, index, num));
129
130#endif /* _HCLGEVF_TRACE_H_ */
131
132/* This must be outside ifdef _HCLGEVF_TRACE_H */
133#undef TRACE_INCLUDE_PATH
134#define TRACE_INCLUDE_PATH .
135#undef TRACE_INCLUDE_FILE
136#define TRACE_INCLUDE_FILE hclgevf_trace
137#include <trace/define_trace.h>
~/ Read-only file preview.