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:
@@ -45,7 +45,7 @@ u32 rxrpc_epoch;
|
||||
atomic_t rxrpc_debug_id;
|
||||
|
||||
/* count of skbs currently in use */
|
||||
atomic_t rxrpc_n_skbs;
|
||||
atomic_t rxrpc_n_tx_skbs, rxrpc_n_rx_skbs;
|
||||
|
||||
struct workqueue_struct *rxrpc_workqueue;
|
||||
|
||||
@@ -867,7 +867,8 @@ static void __exit af_rxrpc_exit(void)
|
||||
proto_unregister(&rxrpc_proto);
|
||||
rxrpc_destroy_all_calls();
|
||||
rxrpc_destroy_all_connections();
|
||||
ASSERTCMP(atomic_read(&rxrpc_n_skbs), ==, 0);
|
||||
ASSERTCMP(atomic_read(&rxrpc_n_tx_skbs), ==, 0);
|
||||
ASSERTCMP(atomic_read(&rxrpc_n_rx_skbs), ==, 0);
|
||||
rxrpc_destroy_all_locals();
|
||||
|
||||
remove_proc_entry("rxrpc_conns", init_net.proc_net);
|
||||
|
Reference in New Issue
Block a user