rxrpc: Improve skb tracing
Improve sk_buff tracing within AF_RXRPC by the following means: (1) Use an enum to note the event type rather than plain integers and use an array of event names rather than a big multi ?: list. (2) Distinguish Rx from Tx packets and account them separately. This requires the call phase to be tracked so that we know what we might find in rxtx_buffer[]. (3) Add a parameter to rxrpc_{new,see,get,free}_skb() to indicate the event type. (4) A pair of 'rotate' events are added to indicate packets that are about to be rotated out of the Rx and Tx windows. (5) A pair of 'lost' events are added, along with rxrpc_lose_skb() for packet loss injection recording. Signed-off-by: David Howells <dhowells@redhat.com>
This commit is contained in:
@@ -107,14 +107,14 @@ TRACE_EVENT(rxrpc_call,
|
||||
);
|
||||
|
||||
TRACE_EVENT(rxrpc_skb,
|
||||
TP_PROTO(struct sk_buff *skb, int op, int usage, int mod_count,
|
||||
const void *where),
|
||||
TP_PROTO(struct sk_buff *skb, enum rxrpc_skb_trace op,
|
||||
int usage, int mod_count, const void *where),
|
||||
|
||||
TP_ARGS(skb, op, usage, mod_count, where),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(struct sk_buff *, skb )
|
||||
__field(int, op )
|
||||
__field(enum rxrpc_skb_trace, op )
|
||||
__field(int, usage )
|
||||
__field(int, mod_count )
|
||||
__field(const void *, where )
|
||||
@@ -130,11 +130,7 @@ TRACE_EVENT(rxrpc_skb,
|
||||
|
||||
TP_printk("s=%p %s u=%d m=%d p=%pSR",
|
||||
__entry->skb,
|
||||
(__entry->op == 0 ? "NEW" :
|
||||
__entry->op == 1 ? "SEE" :
|
||||
__entry->op == 2 ? "GET" :
|
||||
__entry->op == 3 ? "FRE" :
|
||||
"PUR"),
|
||||
rxrpc_skb_traces[__entry->op],
|
||||
__entry->usage,
|
||||
__entry->mod_count,
|
||||
__entry->where)
|
||||
|
Reference in New Issue
Block a user