1 /* SPDX-License-Identifier: GPL-2.0+ */ 2 /* Copyright (c) 2018-2020 Hisilicon Limited. */ 3 4 /* This must be outside ifdef _HCLGE_TRACE_H */ 5 #undef TRACE_SYSTEM 6 #define TRACE_SYSTEM hns3 7 8 #if !defined(_HCLGE_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ) 9 #define _HCLGE_TRACE_H_ 10 11 #include <linux/tracepoint.h> 12 13 #define PF_GET_MBX_LEN (sizeof(struct hclge_mbx_vf_to_pf_cmd) / sizeof(u32)) 14 #define PF_SEND_MBX_LEN (sizeof(struct hclge_mbx_pf_to_vf_cmd) / sizeof(u32)) 15 16 TRACE_EVENT(hclge_pf_mbx_get, 17 TP_PROTO( 18 struct hclge_dev *hdev, 19 struct hclge_mbx_vf_to_pf_cmd *req), 20 TP_ARGS(hdev, req), 21 22 TP_STRUCT__entry( 23 __field(u8, vfid) 24 __field(u8, code) 25 __field(u8, subcode) 26 __string(pciname, pci_name(hdev->pdev)) 27 __string(devname, hdev->vport[0].nic.kinfo.netdev->name) 28 __array(u32, mbx_data, PF_GET_MBX_LEN) 29 ), 30 31 TP_fast_assign( 32 __entry->vfid = req->mbx_src_vfid; 33 __entry->code = req->msg.code; 34 __entry->subcode = req->msg.subcode; 35 __assign_str(pciname, pci_name(hdev->pdev)); 36 __assign_str(devname, hdev->vport[0].nic.kinfo.netdev->name); 37 memcpy(__entry->mbx_data, req, 38 sizeof(struct hclge_mbx_vf_to_pf_cmd)); 39 ), 40 41 TP_printk( 42 "%s %s vfid:%u code:%u subcode:%u data:%s", 43 __get_str(pciname), __get_str(devname), __entry->vfid, 44 __entry->code, __entry->subcode, 45 __print_array(__entry->mbx_data, PF_GET_MBX_LEN, sizeof(u32)) 46 ) 47 ); 48 49 TRACE_EVENT(hclge_pf_mbx_send, 50 TP_PROTO( 51 struct hclge_dev *hdev, 52 struct hclge_mbx_pf_to_vf_cmd *req), 53 TP_ARGS(hdev, req), 54 55 TP_STRUCT__entry( 56 __field(u8, vfid) 57 __field(u16, code) 58 __string(pciname, pci_name(hdev->pdev)) 59 __string(devname, hdev->vport[0].nic.kinfo.netdev->name) 60 __array(u32, mbx_data, PF_SEND_MBX_LEN) 61 ), 62 63 TP_fast_assign( 64 __entry->vfid = req->dest_vfid; 65 __entry->code = le16_to_cpu(req->msg.code); 66 __assign_str(pciname, pci_name(hdev->pdev)); 67 __assign_str(devname, hdev->vport[0].nic.kinfo.netdev->name); 68 memcpy(__entry->mbx_data, req, 69 sizeof(struct hclge_mbx_pf_to_vf_cmd)); 70 ), 71 72 TP_printk( 73 "%s %s vfid:%u code:%u data:%s", 74 __get_str(pciname), __get_str(devname), __entry->vfid, 75 __entry->code, 76 __print_array(__entry->mbx_data, PF_SEND_MBX_LEN, sizeof(u32)) 77 ) 78 ); 79 80 #endif /* _HCLGE_TRACE_H_ */ 81 82 /* This must be outside ifdef _HCLGE_TRACE_H */ 83 #undef TRACE_INCLUDE_PATH 84 #define TRACE_INCLUDE_PATH . 85 #undef TRACE_INCLUDE_FILE 86 #define TRACE_INCLUDE_FILE hclge_trace 87 #include <trace/define_trace.h> 88