rxrpc: Add a tracepoint to track rxrpc_local refcounting
Add a tracepoint to track reference counting on the rxrpc_local struct. Signed-off-by: David Howells <dhowells@redhat.com>
This commit is contained in:
@@ -42,6 +42,14 @@ enum rxrpc_skb_trace {
|
||||
rxrpc_skb_tx_seen,
|
||||
};
|
||||
|
||||
enum rxrpc_local_trace {
|
||||
rxrpc_local_got,
|
||||
rxrpc_local_new,
|
||||
rxrpc_local_processing,
|
||||
rxrpc_local_put,
|
||||
rxrpc_local_queued,
|
||||
};
|
||||
|
||||
enum rxrpc_conn_trace {
|
||||
rxrpc_conn_got,
|
||||
rxrpc_conn_new_client,
|
||||
@@ -215,6 +223,13 @@ enum rxrpc_congest_change {
|
||||
EM(rxrpc_skb_tx_rotated, "Tx ROT") \
|
||||
E_(rxrpc_skb_tx_seen, "Tx SEE")
|
||||
|
||||
#define rxrpc_local_traces \
|
||||
EM(rxrpc_local_got, "GOT") \
|
||||
EM(rxrpc_local_new, "NEW") \
|
||||
EM(rxrpc_local_processing, "PRO") \
|
||||
EM(rxrpc_local_put, "PUT") \
|
||||
E_(rxrpc_local_queued, "QUE")
|
||||
|
||||
#define rxrpc_conn_traces \
|
||||
EM(rxrpc_conn_got, "GOT") \
|
||||
EM(rxrpc_conn_new_client, "NWc") \
|
||||
@@ -416,6 +431,7 @@ enum rxrpc_congest_change {
|
||||
#define E_(a, b) TRACE_DEFINE_ENUM(a);
|
||||
|
||||
rxrpc_skb_traces;
|
||||
rxrpc_local_traces;
|
||||
rxrpc_conn_traces;
|
||||
rxrpc_client_traces;
|
||||
rxrpc_call_traces;
|
||||
@@ -439,6 +455,33 @@ rxrpc_congest_changes;
|
||||
#define EM(a, b) { a, b },
|
||||
#define E_(a, b) { a, b }
|
||||
|
||||
TRACE_EVENT(rxrpc_local,
|
||||
TP_PROTO(struct rxrpc_local *local, enum rxrpc_local_trace op,
|
||||
int usage, const void *where),
|
||||
|
||||
TP_ARGS(local, op, usage, where),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(unsigned int, local )
|
||||
__field(int, op )
|
||||
__field(int, usage )
|
||||
__field(const void *, where )
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->local = local->debug_id;
|
||||
__entry->op = op;
|
||||
__entry->usage = usage;
|
||||
__entry->where = where;
|
||||
),
|
||||
|
||||
TP_printk("L=%08x %s u=%d sp=%pSR",
|
||||
__entry->local,
|
||||
__print_symbolic(__entry->op, rxrpc_local_traces),
|
||||
__entry->usage,
|
||||
__entry->where)
|
||||
);
|
||||
|
||||
TRACE_EVENT(rxrpc_conn,
|
||||
TP_PROTO(struct rxrpc_connection *conn, enum rxrpc_conn_trace op,
|
||||
int usage, const void *where),
|
||||
|
Reference in New Issue
Block a user