ath10k: add tracing for rx descriptor
Upon the reception of frame, the descriptor status are reported to user space by tracepoint. This is useful for collecting rx statistics. Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
This commit is contained in:
parent
bfdd7937ab
commit
a0883cf7e7
2 changed files with 33 additions and 0 deletions
|
@ -316,6 +316,7 @@ static int ath10k_htt_rx_amsdu_pop(struct ath10k_htt *htt,
|
||||||
int msdu_len, msdu_chaining = 0;
|
int msdu_len, msdu_chaining = 0;
|
||||||
struct sk_buff *msdu, *next;
|
struct sk_buff *msdu, *next;
|
||||||
struct htt_rx_desc *rx_desc;
|
struct htt_rx_desc *rx_desc;
|
||||||
|
u32 tsf;
|
||||||
|
|
||||||
lockdep_assert_held(&htt->rx_ring.lock);
|
lockdep_assert_held(&htt->rx_ring.lock);
|
||||||
|
|
||||||
|
@ -447,6 +448,9 @@ static int ath10k_htt_rx_amsdu_pop(struct ath10k_htt *htt,
|
||||||
last_msdu = __le32_to_cpu(rx_desc->msdu_end.info0) &
|
last_msdu = __le32_to_cpu(rx_desc->msdu_end.info0) &
|
||||||
RX_MSDU_END_INFO0_LAST_MSDU;
|
RX_MSDU_END_INFO0_LAST_MSDU;
|
||||||
|
|
||||||
|
tsf = __le32_to_cpu(rx_desc->ppdu_end.tsf_timestamp);
|
||||||
|
trace_ath10k_htt_rx_desc(ar, tsf, &rx_desc->attention,
|
||||||
|
sizeof(*rx_desc) - sizeof(u32));
|
||||||
if (last_msdu) {
|
if (last_msdu) {
|
||||||
msdu->next = NULL;
|
msdu->next = NULL;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -281,6 +281,35 @@ TRACE_EVENT(ath10k_htt_pktlog,
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
TRACE_EVENT(ath10k_htt_rx_desc,
|
||||||
|
TP_PROTO(struct ath10k *ar, u32 tsf, void *rxdesc, u16 len),
|
||||||
|
|
||||||
|
TP_ARGS(ar, tsf, rxdesc, len),
|
||||||
|
|
||||||
|
TP_STRUCT__entry(
|
||||||
|
__string(device, dev_name(ar->dev))
|
||||||
|
__string(driver, dev_driver_string(ar->dev))
|
||||||
|
__field(u32, tsf)
|
||||||
|
__field(u16, len)
|
||||||
|
__dynamic_array(u8, rxdesc, len)
|
||||||
|
),
|
||||||
|
|
||||||
|
TP_fast_assign(
|
||||||
|
__assign_str(device, dev_name(ar->dev));
|
||||||
|
__assign_str(driver, dev_driver_string(ar->dev));
|
||||||
|
__entry->tsf = tsf;
|
||||||
|
__entry->len = len;
|
||||||
|
memcpy(__get_dynamic_array(rxdesc), rxdesc, len);
|
||||||
|
),
|
||||||
|
|
||||||
|
TP_printk(
|
||||||
|
"%s %s %u len %hu",
|
||||||
|
__get_str(driver),
|
||||||
|
__get_str(device),
|
||||||
|
__entry->tsf,
|
||||||
|
__entry->len
|
||||||
|
)
|
||||||
|
);
|
||||||
#endif /* _TRACE_H_ || TRACE_HEADER_MULTI_READ*/
|
#endif /* _TRACE_H_ || TRACE_HEADER_MULTI_READ*/
|
||||||
|
|
||||||
/* we don't want to use include/trace/events */
|
/* we don't want to use include/trace/events */
|
||||||
|
|
Loading…
Add table
Reference in a new issue