Skip to content

Commit 27d27a0

Browse files
Subbaraya SundeepPaolo Abeni
authored andcommitted
octeontx2: Add pcifunc also to mailbox tracepoints
This patch adds pcifunc which represents PF and VF device to the tracepoints otx2_msg_alloc, otx2_msg_send, otx2_msg_process so that it is easier to correlate which device allocated the message, which device forwarded it and which device processed that message. Also add message id in otx2_msg_send tracepoint to check which message is sent at any point of time from a device. Signed-off-by: Subbaraya Sundeep <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Paolo Abeni <[email protected]>
1 parent ba7b636 commit 27d27a0

File tree

7 files changed

+37
-18
lines changed

7 files changed

+37
-18
lines changed

drivers/net/ethernet/marvell/octeontx2/af/mbox.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,7 @@ static void otx2_mbox_msg_send_data(struct otx2_mbox *mbox, int devid, u64 data)
218218
struct otx2_mbox_dev *mdev = &mbox->dev[devid];
219219
struct mbox_hdr *tx_hdr, *rx_hdr;
220220
void *hw_mbase = mdev->hwbase;
221+
struct mbox_msghdr *msg;
221222
u64 intr_val;
222223

223224
tx_hdr = hw_mbase + mbox->tx_start;
@@ -250,7 +251,10 @@ static void otx2_mbox_msg_send_data(struct otx2_mbox *mbox, int devid, u64 data)
250251
tx_hdr->num_msgs = mdev->num_msgs;
251252
rx_hdr->num_msgs = 0;
252253

253-
trace_otx2_msg_send(mbox->pdev, tx_hdr->num_msgs, tx_hdr->msg_size);
254+
msg = (struct mbox_msghdr *)(hw_mbase + mbox->tx_start + msgs_offset);
255+
256+
trace_otx2_msg_send(mbox->pdev, tx_hdr->num_msgs, tx_hdr->msg_size,
257+
msg->id, msg->pcifunc);
254258

255259
spin_unlock(&mdev->mbox_lock);
256260

drivers/net/ethernet/marvell/octeontx2/af/rvu.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2173,7 +2173,7 @@ static int rvu_process_mbox_msg(struct otx2_mbox *mbox, int devid,
21732173
if (rsp && err) \
21742174
rsp->hdr.rc = err; \
21752175
\
2176-
trace_otx2_msg_process(mbox->pdev, _id, err); \
2176+
trace_otx2_msg_process(mbox->pdev, _id, err, req->pcifunc); \
21772177
return rsp ? err : -ENOMEM; \
21782178
}
21792179
MBOX_MESSAGES

drivers/net/ethernet/marvell/octeontx2/af/rvu_cgx.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ static struct _req_type __maybe_unused \
3434
return NULL; \
3535
req->hdr.sig = OTX2_MBOX_REQ_SIG; \
3636
req->hdr.id = _id; \
37-
trace_otx2_msg_alloc(rvu->pdev, _id, sizeof(*req)); \
37+
trace_otx2_msg_alloc(rvu->pdev, _id, sizeof(*req), 0); \
3838
return req; \
3939
}
4040

drivers/net/ethernet/marvell/octeontx2/af/rvu_trace.h

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,33 +18,42 @@
1818
#include "mbox.h"
1919

2020
TRACE_EVENT(otx2_msg_alloc,
21-
TP_PROTO(const struct pci_dev *pdev, u16 id, u64 size),
22-
TP_ARGS(pdev, id, size),
21+
TP_PROTO(const struct pci_dev *pdev, u16 id, u64 size, u16 pcifunc),
22+
TP_ARGS(pdev, id, size, pcifunc),
2323
TP_STRUCT__entry(__string(dev, pci_name(pdev))
2424
__field(u16, id)
2525
__field(u64, size)
26+
__field(u16, pcifunc)
2627
),
2728
TP_fast_assign(__assign_str(dev);
2829
__entry->id = id;
2930
__entry->size = size;
31+
__entry->pcifunc = pcifunc;
3032
),
31-
TP_printk("[%s] msg:(%s) size:%lld\n", __get_str(dev),
32-
otx2_mbox_id2name(__entry->id), __entry->size)
33+
TP_printk("[%s] msg:(%s) size:%lld pcifunc:0x%x\n", __get_str(dev),
34+
otx2_mbox_id2name(__entry->id), __entry->size,
35+
__entry->pcifunc)
3336
);
3437

3538
TRACE_EVENT(otx2_msg_send,
36-
TP_PROTO(const struct pci_dev *pdev, u16 num_msgs, u64 msg_size),
37-
TP_ARGS(pdev, num_msgs, msg_size),
39+
TP_PROTO(const struct pci_dev *pdev, u16 num_msgs, u64 msg_size,
40+
u16 id, u16 pcifunc),
41+
TP_ARGS(pdev, num_msgs, msg_size, id, pcifunc),
3842
TP_STRUCT__entry(__string(dev, pci_name(pdev))
3943
__field(u16, num_msgs)
4044
__field(u64, msg_size)
45+
__field(u16, id)
46+
__field(u16, pcifunc)
4147
),
4248
TP_fast_assign(__assign_str(dev);
4349
__entry->num_msgs = num_msgs;
4450
__entry->msg_size = msg_size;
51+
__entry->id = id;
52+
__entry->pcifunc = pcifunc;
4553
),
46-
TP_printk("[%s] sent %d msg(s) of size:%lld\n", __get_str(dev),
47-
__entry->num_msgs, __entry->msg_size)
54+
TP_printk("[%s] sent %d msg(s) of size:%lld msg:(%s) pcifunc:0x%x\n",
55+
__get_str(dev), __entry->num_msgs, __entry->msg_size,
56+
otx2_mbox_id2name(__entry->id), __entry->pcifunc)
4857
);
4958

5059
TRACE_EVENT(otx2_msg_check,
@@ -81,18 +90,21 @@ TRACE_EVENT(otx2_msg_interrupt,
8190
);
8291

8392
TRACE_EVENT(otx2_msg_process,
84-
TP_PROTO(const struct pci_dev *pdev, u16 id, int err),
85-
TP_ARGS(pdev, id, err),
93+
TP_PROTO(const struct pci_dev *pdev, u16 id, int err, u16 pcifunc),
94+
TP_ARGS(pdev, id, err, pcifunc),
8695
TP_STRUCT__entry(__string(dev, pci_name(pdev))
8796
__field(u16, id)
8897
__field(int, err)
98+
__field(u16, pcifunc)
8999
),
90100
TP_fast_assign(__assign_str(dev);
91101
__entry->id = id;
92102
__entry->err = err;
103+
__entry->pcifunc = pcifunc;
93104
),
94-
TP_printk("[%s] msg:(%s) error:%d\n", __get_str(dev),
95-
otx2_mbox_id2name(__entry->id), __entry->err)
105+
TP_printk("[%s] msg:(%s) error:%d pcifunc:0x%x\n", __get_str(dev),
106+
otx2_mbox_id2name(__entry->id),
107+
__entry->err, __entry->pcifunc)
96108
);
97109

98110
TRACE_EVENT(otx2_msg_wait_rsp,

drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -871,6 +871,7 @@ static struct _req_type __maybe_unused \
871871
*otx2_mbox_alloc_msg_ ## _fn_name(struct mbox *mbox) \
872872
{ \
873873
struct _req_type *req; \
874+
u16 pcifunc = mbox->pfvf->pcifunc; \
874875
\
875876
req = (struct _req_type *)otx2_mbox_alloc_msg_rsp( \
876877
&mbox->mbox, 0, sizeof(struct _req_type), \
@@ -879,7 +880,8 @@ static struct _req_type __maybe_unused \
879880
return NULL; \
880881
req->hdr.sig = OTX2_MBOX_REQ_SIG; \
881882
req->hdr.id = _id; \
882-
trace_otx2_msg_alloc(mbox->mbox.pdev, _id, sizeof(*req)); \
883+
req->hdr.pcifunc = pcifunc; \
884+
trace_otx2_msg_alloc(mbox->mbox.pdev, _id, sizeof(*req), pcifunc); \
883885
return req; \
884886
}
885887

drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -473,7 +473,7 @@ static void otx2_pfvf_mbox_handler(struct work_struct *work)
473473
goto inval_msg;
474474

475475
/* Set VF's number in each of the msg */
476-
msg->pcifunc &= RVU_PFVF_FUNC_MASK;
476+
msg->pcifunc &= ~RVU_PFVF_FUNC_MASK;
477477
msg->pcifunc |= (vf_idx + 1) & RVU_PFVF_FUNC_MASK;
478478
offset = msg->next_msgoff;
479479
}
@@ -3285,6 +3285,7 @@ static void otx2_vf_link_event_task(struct work_struct *work)
32853285
req = (struct cgx_link_info_msg *)msghdr;
32863286
req->hdr.id = MBOX_MSG_CGX_LINK_EVENT;
32873287
req->hdr.sig = OTX2_MBOX_REQ_SIG;
3288+
req->hdr.pcifunc = pf->pcifunc;
32883289
memcpy(&req->link_info, &pf->linfo, sizeof(req->link_info));
32893290

32903291
otx2_mbox_wait_for_zero(&pf->mbox_pfvf[0].mbox_up, vf_idx);

drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ static int otx2vf_process_mbox_msg_up(struct otx2_nic *vf,
136136

137137
rsp->hdr.id = MBOX_MSG_CGX_LINK_EVENT;
138138
rsp->hdr.sig = OTX2_MBOX_RSP_SIG;
139-
rsp->hdr.pcifunc = 0;
139+
rsp->hdr.pcifunc = req->pcifunc;
140140
rsp->hdr.rc = 0;
141141
err = otx2_mbox_up_handler_cgx_link_event(
142142
vf, (struct cgx_link_info_msg *)req, rsp);

0 commit comments

Comments
 (0)