mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-10 02:12:00 -04:00
mt76: mt7615: add tracing support
Introduce token tracing support in mt7615_mac_tx_free routine Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
committed by
Felix Fietkau
parent
5498974bd5
commit
9cd82366a7
@@ -2,5 +2,7 @@
|
||||
|
||||
obj-$(CONFIG_MT7615E) += mt7615e.o
|
||||
|
||||
CFLAGS_trace.o := -I$(src)
|
||||
|
||||
mt7615e-y := pci.o init.o dma.o eeprom.o main.o mcu.o mac.o \
|
||||
debugfs.o
|
||||
debugfs.o trace.o
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
#include "mt7615.h"
|
||||
#include "../trace.h"
|
||||
#include "../dma.h"
|
||||
#include "mt7615_trace.h"
|
||||
#include "mac.h"
|
||||
|
||||
#define to_rssi(field, rxv) ((FIELD_GET(field, rxv) - 220) / 2)
|
||||
@@ -1300,13 +1301,17 @@ void mt7615_mac_tx_free(struct mt7615_dev *dev, struct sk_buff *skb)
|
||||
|
||||
count = FIELD_GET(MT_TX_FREE_MSDU_ID_CNT, le16_to_cpu(free->ctrl));
|
||||
for (i = 0; i < count; i++) {
|
||||
u16 token = le16_to_cpu(free->token[i]);
|
||||
|
||||
spin_lock_bh(&dev->token_lock);
|
||||
txwi = idr_remove(&dev->token, le16_to_cpu(free->token[i]));
|
||||
txwi = idr_remove(&dev->token, token);
|
||||
spin_unlock_bh(&dev->token_lock);
|
||||
|
||||
if (!txwi)
|
||||
continue;
|
||||
|
||||
trace_mac_tx_free(dev, token);
|
||||
|
||||
mt7615_txp_skb_unmap(mdev, txwi);
|
||||
if (txwi->skb) {
|
||||
mt76_tx_complete_skb(mdev, txwi->skb);
|
||||
|
||||
56
drivers/net/wireless/mediatek/mt76/mt7615/mt7615_trace.h
Normal file
56
drivers/net/wireless/mediatek/mt76/mt7615/mt7615_trace.h
Normal file
@@ -0,0 +1,56 @@
|
||||
/* SPDX-License-Identifier: ISC */
|
||||
/*
|
||||
* Copyright (C) 2019 Lorenzo Bianconi <lorenzo@kernel.org>
|
||||
*/
|
||||
|
||||
#if !defined(__MT7615_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define __MT7615_TRACE_H
|
||||
|
||||
#include <linux/tracepoint.h>
|
||||
#include "mt7615.h"
|
||||
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM mt7615
|
||||
|
||||
#define MAXNAME 32
|
||||
#define DEV_ENTRY __array(char, wiphy_name, 32)
|
||||
#define DEV_ASSIGN strlcpy(__entry->wiphy_name, \
|
||||
wiphy_name(mt76_hw(dev)->wiphy), MAXNAME)
|
||||
#define DEV_PR_FMT "%s"
|
||||
#define DEV_PR_ARG __entry->wiphy_name
|
||||
|
||||
#define TOKEN_ENTRY __field(u16, token)
|
||||
#define TOKEN_ASSIGN __entry->token = token
|
||||
#define TOKEN_PR_FMT " %d"
|
||||
#define TOKEN_PR_ARG __entry->token
|
||||
|
||||
DECLARE_EVENT_CLASS(dev_token,
|
||||
TP_PROTO(struct mt7615_dev *dev, u16 token),
|
||||
TP_ARGS(dev, token),
|
||||
TP_STRUCT__entry(
|
||||
DEV_ENTRY
|
||||
TOKEN_ENTRY
|
||||
),
|
||||
TP_fast_assign(
|
||||
DEV_ASSIGN;
|
||||
TOKEN_ASSIGN;
|
||||
),
|
||||
TP_printk(
|
||||
DEV_PR_FMT TOKEN_PR_FMT,
|
||||
DEV_PR_ARG, TOKEN_PR_ARG
|
||||
)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(dev_token, mac_tx_free,
|
||||
TP_PROTO(struct mt7615_dev *dev, u16 token),
|
||||
TP_ARGS(dev, token)
|
||||
);
|
||||
|
||||
#endif
|
||||
|
||||
#undef TRACE_INCLUDE_PATH
|
||||
#define TRACE_INCLUDE_PATH .
|
||||
#undef TRACE_INCLUDE_FILE
|
||||
#define TRACE_INCLUDE_FILE mt7615_trace
|
||||
|
||||
#include <trace/define_trace.h>
|
||||
12
drivers/net/wireless/mediatek/mt76/mt7615/trace.c
Normal file
12
drivers/net/wireless/mediatek/mt76/mt7615/trace.c
Normal file
@@ -0,0 +1,12 @@
|
||||
// SPDX-License-Identifier: ISC
|
||||
/*
|
||||
* Copyright (C) 2019 Lorenzo Bianconi <lorenzo@kernel.org>
|
||||
*/
|
||||
|
||||
#include <linux/module.h>
|
||||
|
||||
#ifndef __CHECKER__
|
||||
#define CREATE_TRACE_POINTS
|
||||
#include "mt7615_trace.h"
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user