Loading drivers/net/ethernet/hisilicon/hns3/hns3pf/Makefile +1 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ # ccflags-y := -I $(srctree)/drivers/net/ethernet/hisilicon/hns3 ccflags-y += -I $(srctree)/$(src) obj-$(CONFIG_HNS3_HCLGE) += hclge.o hclge-objs = hclge_main.o hclge_cmd.o hclge_mdio.o hclge_tm.o hclge_mbx.o hclge_err.o hclge_debugfs.o Loading drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c +7 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,9 @@ #include "hclge_mbx.h" #include "hnae3.h" #define CREATE_TRACE_POINTS #include "hclge_trace.h" static u16 hclge_errno_to_resp(int errno) { return abs(errno); Loading Loading @@ -90,6 +93,8 @@ static int hclge_send_mbx_msg(struct hclge_vport *vport, u8 *msg, u16 msg_len, memcpy(&resp_pf_to_vf->msg.vf_mbx_msg_code, msg, msg_len); trace_hclge_pf_mbx_send(hdev, resp_pf_to_vf); status = hclge_cmd_send(&hdev->hw, &desc, 1); if (status) dev_err(&hdev->pdev->dev, Loading Loading @@ -674,6 +679,8 @@ void hclge_mbx_handler(struct hclge_dev *hdev) vport = &hdev->vport[req->mbx_src_vfid]; trace_hclge_pf_mbx_get(hdev, req); switch (req->msg.code) { case HCLGE_MBX_MAP_RING_TO_VECTOR: ret = hclge_map_unmap_ring_to_vf_vector(vport, true, Loading drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_trace.h 0 → 100644 +87 −0 Original line number Diff line number Diff line /* SPDX-License-Identifier: GPL-2.0+ */ /* Copyright (c) 2018-2020 Hisilicon Limited. */ /* This must be outside ifdef _HCLGE_TRACE_H */ #undef TRACE_SYSTEM #define TRACE_SYSTEM hns3 #if !defined(_HCLGE_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ) #define _HCLGE_TRACE_H_ #include <linux/tracepoint.h> #define PF_GET_MBX_LEN (sizeof(struct hclge_mbx_vf_to_pf_cmd) / sizeof(u32)) #define PF_SEND_MBX_LEN (sizeof(struct hclge_mbx_pf_to_vf_cmd) / sizeof(u32)) TRACE_EVENT(hclge_pf_mbx_get, TP_PROTO( struct hclge_dev *hdev, struct hclge_mbx_vf_to_pf_cmd *req), TP_ARGS(hdev, req), TP_STRUCT__entry( __field(u8, vfid) __field(u8, code) __field(u8, subcode) __string(pciname, pci_name(hdev->pdev)) __string(devname, &hdev->vport[0].nic.kinfo.netdev->name) __array(u32, mbx_data, PF_GET_MBX_LEN) ), TP_fast_assign( __entry->vfid = req->mbx_src_vfid; __entry->code = req->msg.code; __entry->subcode = req->msg.subcode; __assign_str(pciname, pci_name(hdev->pdev)); __assign_str(devname, &hdev->vport[0].nic.kinfo.netdev->name); memcpy(__entry->mbx_data, req, sizeof(struct hclge_mbx_vf_to_pf_cmd)); ), TP_printk( "%s %s vfid:%u code:%u subcode:%u data:%s", __get_str(pciname), __get_str(devname), __entry->vfid, __entry->code, __entry->subcode, __print_array(__entry->mbx_data, PF_GET_MBX_LEN, sizeof(u32)) ) ); TRACE_EVENT(hclge_pf_mbx_send, TP_PROTO( struct hclge_dev *hdev, struct hclge_mbx_pf_to_vf_cmd *req), TP_ARGS(hdev, req), TP_STRUCT__entry( __field(u8, vfid) __field(u16, code) __string(pciname, pci_name(hdev->pdev)) __string(devname, &hdev->vport[0].nic.kinfo.netdev->name) __array(u32, mbx_data, PF_SEND_MBX_LEN) ), TP_fast_assign( __entry->vfid = req->dest_vfid; __entry->code = req->msg.code; __assign_str(pciname, pci_name(hdev->pdev)); __assign_str(devname, &hdev->vport[0].nic.kinfo.netdev->name); memcpy(__entry->mbx_data, req, sizeof(struct hclge_mbx_pf_to_vf_cmd)); ), TP_printk( "%s %s vfid:%u code:%u data:%s", __get_str(pciname), __get_str(devname), __entry->vfid, __entry->code, __print_array(__entry->mbx_data, PF_SEND_MBX_LEN, sizeof(u32)) ) ); #endif /* _HCLGE_TRACE_H_ */ /* This must be outside ifdef _HCLGE_TRACE_H */ #undef TRACE_INCLUDE_PATH #define TRACE_INCLUDE_PATH . #undef TRACE_INCLUDE_FILE #define TRACE_INCLUDE_FILE hclge_trace #include <trace/define_trace.h> drivers/net/ethernet/hisilicon/hns3/hns3vf/Makefile +1 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ # ccflags-y := -I $(srctree)/drivers/net/ethernet/hisilicon/hns3 ccflags-y += -I $(srctree)/$(src) obj-$(CONFIG_HNS3_HCLGEVF) += hclgevf.o hclgevf-objs = hclgevf_main.o hclgevf_cmd.o hclgevf_mbx.o drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c +7 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,9 @@ #include "hclgevf_main.h" #include "hnae3.h" #define CREATE_TRACE_POINTS #include "hclgevf_trace.h" static int hclgevf_resp_to_errno(u16 resp_code) { return resp_code ? -resp_code : 0; Loading Loading @@ -106,6 +109,8 @@ int hclgevf_send_mbx_msg(struct hclgevf_dev *hdev, memcpy(&req->msg, send_msg, sizeof(struct hclge_vf_to_pf_msg)); trace_hclge_vf_mbx_send(hdev, req); /* synchronous send */ if (need_resp) { mutex_lock(&hdev->mbx_resp.mbx_mutex); Loading Loading @@ -179,6 +184,8 @@ void hclgevf_mbx_handler(struct hclgevf_dev *hdev) continue; } trace_hclge_vf_mbx_get(hdev, req); /* synchronous messages are time critical and need preferential * treatment. Therefore, we need to acknowledge all the sync * responses as quickly as possible so that waiting tasks do not Loading Loading
drivers/net/ethernet/hisilicon/hns3/hns3pf/Makefile +1 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ # ccflags-y := -I $(srctree)/drivers/net/ethernet/hisilicon/hns3 ccflags-y += -I $(srctree)/$(src) obj-$(CONFIG_HNS3_HCLGE) += hclge.o hclge-objs = hclge_main.o hclge_cmd.o hclge_mdio.o hclge_tm.o hclge_mbx.o hclge_err.o hclge_debugfs.o Loading
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c +7 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,9 @@ #include "hclge_mbx.h" #include "hnae3.h" #define CREATE_TRACE_POINTS #include "hclge_trace.h" static u16 hclge_errno_to_resp(int errno) { return abs(errno); Loading Loading @@ -90,6 +93,8 @@ static int hclge_send_mbx_msg(struct hclge_vport *vport, u8 *msg, u16 msg_len, memcpy(&resp_pf_to_vf->msg.vf_mbx_msg_code, msg, msg_len); trace_hclge_pf_mbx_send(hdev, resp_pf_to_vf); status = hclge_cmd_send(&hdev->hw, &desc, 1); if (status) dev_err(&hdev->pdev->dev, Loading Loading @@ -674,6 +679,8 @@ void hclge_mbx_handler(struct hclge_dev *hdev) vport = &hdev->vport[req->mbx_src_vfid]; trace_hclge_pf_mbx_get(hdev, req); switch (req->msg.code) { case HCLGE_MBX_MAP_RING_TO_VECTOR: ret = hclge_map_unmap_ring_to_vf_vector(vport, true, Loading
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_trace.h 0 → 100644 +87 −0 Original line number Diff line number Diff line /* SPDX-License-Identifier: GPL-2.0+ */ /* Copyright (c) 2018-2020 Hisilicon Limited. */ /* This must be outside ifdef _HCLGE_TRACE_H */ #undef TRACE_SYSTEM #define TRACE_SYSTEM hns3 #if !defined(_HCLGE_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ) #define _HCLGE_TRACE_H_ #include <linux/tracepoint.h> #define PF_GET_MBX_LEN (sizeof(struct hclge_mbx_vf_to_pf_cmd) / sizeof(u32)) #define PF_SEND_MBX_LEN (sizeof(struct hclge_mbx_pf_to_vf_cmd) / sizeof(u32)) TRACE_EVENT(hclge_pf_mbx_get, TP_PROTO( struct hclge_dev *hdev, struct hclge_mbx_vf_to_pf_cmd *req), TP_ARGS(hdev, req), TP_STRUCT__entry( __field(u8, vfid) __field(u8, code) __field(u8, subcode) __string(pciname, pci_name(hdev->pdev)) __string(devname, &hdev->vport[0].nic.kinfo.netdev->name) __array(u32, mbx_data, PF_GET_MBX_LEN) ), TP_fast_assign( __entry->vfid = req->mbx_src_vfid; __entry->code = req->msg.code; __entry->subcode = req->msg.subcode; __assign_str(pciname, pci_name(hdev->pdev)); __assign_str(devname, &hdev->vport[0].nic.kinfo.netdev->name); memcpy(__entry->mbx_data, req, sizeof(struct hclge_mbx_vf_to_pf_cmd)); ), TP_printk( "%s %s vfid:%u code:%u subcode:%u data:%s", __get_str(pciname), __get_str(devname), __entry->vfid, __entry->code, __entry->subcode, __print_array(__entry->mbx_data, PF_GET_MBX_LEN, sizeof(u32)) ) ); TRACE_EVENT(hclge_pf_mbx_send, TP_PROTO( struct hclge_dev *hdev, struct hclge_mbx_pf_to_vf_cmd *req), TP_ARGS(hdev, req), TP_STRUCT__entry( __field(u8, vfid) __field(u16, code) __string(pciname, pci_name(hdev->pdev)) __string(devname, &hdev->vport[0].nic.kinfo.netdev->name) __array(u32, mbx_data, PF_SEND_MBX_LEN) ), TP_fast_assign( __entry->vfid = req->dest_vfid; __entry->code = req->msg.code; __assign_str(pciname, pci_name(hdev->pdev)); __assign_str(devname, &hdev->vport[0].nic.kinfo.netdev->name); memcpy(__entry->mbx_data, req, sizeof(struct hclge_mbx_pf_to_vf_cmd)); ), TP_printk( "%s %s vfid:%u code:%u data:%s", __get_str(pciname), __get_str(devname), __entry->vfid, __entry->code, __print_array(__entry->mbx_data, PF_SEND_MBX_LEN, sizeof(u32)) ) ); #endif /* _HCLGE_TRACE_H_ */ /* This must be outside ifdef _HCLGE_TRACE_H */ #undef TRACE_INCLUDE_PATH #define TRACE_INCLUDE_PATH . #undef TRACE_INCLUDE_FILE #define TRACE_INCLUDE_FILE hclge_trace #include <trace/define_trace.h>
drivers/net/ethernet/hisilicon/hns3/hns3vf/Makefile +1 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ # ccflags-y := -I $(srctree)/drivers/net/ethernet/hisilicon/hns3 ccflags-y += -I $(srctree)/$(src) obj-$(CONFIG_HNS3_HCLGEVF) += hclgevf.o hclgevf-objs = hclgevf_main.o hclgevf_cmd.o hclgevf_mbx.o
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c +7 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,9 @@ #include "hclgevf_main.h" #include "hnae3.h" #define CREATE_TRACE_POINTS #include "hclgevf_trace.h" static int hclgevf_resp_to_errno(u16 resp_code) { return resp_code ? -resp_code : 0; Loading Loading @@ -106,6 +109,8 @@ int hclgevf_send_mbx_msg(struct hclgevf_dev *hdev, memcpy(&req->msg, send_msg, sizeof(struct hclge_vf_to_pf_msg)); trace_hclge_vf_mbx_send(hdev, req); /* synchronous send */ if (need_resp) { mutex_lock(&hdev->mbx_resp.mbx_mutex); Loading Loading @@ -179,6 +184,8 @@ void hclgevf_mbx_handler(struct hclgevf_dev *hdev) continue; } trace_hclge_vf_mbx_get(hdev, req); /* synchronous messages are time critical and need preferential * treatment. Therefore, we need to acknowledge all the sync * responses as quickly as possible so that waiting tasks do not Loading