rxrpc: Adjust the call ref tracepoint to show kernel API refs
Adjust the call ref tracepoint to show references held on a call by the kernel API separately as much as possible and add an additional trace to at the allocation point from the preallocation buffer for an incoming call. Note that this doesn't show the allocation of a client call for the kernel separately at the moment. Signed-off-by: David Howells <dhowells@redhat.com>
This commit is contained in:
parent
01fd074224
commit
cbd00891de
|
@ -299,7 +299,7 @@ void rxrpc_kernel_end_call(struct socket *sock, struct rxrpc_call *call)
|
|||
{
|
||||
_enter("%d{%d}", call->debug_id, atomic_read(&call->usage));
|
||||
rxrpc_release_call(rxrpc_sk(sock->sk), call);
|
||||
rxrpc_put_call(call, rxrpc_call_put);
|
||||
rxrpc_put_call(call, rxrpc_call_put_kernel);
|
||||
}
|
||||
EXPORT_SYMBOL(rxrpc_kernel_end_call);
|
||||
|
||||
|
|
|
@ -540,8 +540,10 @@ enum rxrpc_call_trace {
|
|||
rxrpc_call_seen,
|
||||
rxrpc_call_got,
|
||||
rxrpc_call_got_userid,
|
||||
rxrpc_call_got_kernel,
|
||||
rxrpc_call_put,
|
||||
rxrpc_call_put_userid,
|
||||
rxrpc_call_put_kernel,
|
||||
rxrpc_call_put_noqueue,
|
||||
rxrpc_call__nr_trace
|
||||
};
|
||||
|
|
|
@ -121,7 +121,7 @@ static int rxrpc_service_prealloc_one(struct rxrpc_sock *rx,
|
|||
|
||||
call->user_call_ID = user_call_ID;
|
||||
call->notify_rx = notify_rx;
|
||||
rxrpc_get_call(call, rxrpc_call_got);
|
||||
rxrpc_get_call(call, rxrpc_call_got_kernel);
|
||||
user_attach_call(call, user_call_ID);
|
||||
rxrpc_get_call(call, rxrpc_call_got_userid);
|
||||
rb_link_node(&call->sock_node, parent, pp);
|
||||
|
@ -300,6 +300,7 @@ static struct rxrpc_call *rxrpc_alloc_incoming_call(struct rxrpc_sock *rx,
|
|||
smp_store_release(&b->call_backlog_tail,
|
||||
(call_tail + 1) & (RXRPC_BACKLOG_MAX - 1));
|
||||
|
||||
rxrpc_see_call(call);
|
||||
call->conn = conn;
|
||||
call->peer = rxrpc_get_peer(conn->params.peer);
|
||||
return call;
|
||||
|
|
|
@ -56,8 +56,10 @@ const char rxrpc_call_traces[rxrpc_call__nr_trace][4] = {
|
|||
[rxrpc_call_seen] = "SEE",
|
||||
[rxrpc_call_got] = "GOT",
|
||||
[rxrpc_call_got_userid] = "Gus",
|
||||
[rxrpc_call_got_kernel] = "Gke",
|
||||
[rxrpc_call_put] = "PUT",
|
||||
[rxrpc_call_put_userid] = "Pus",
|
||||
[rxrpc_call_put_kernel] = "Pke",
|
||||
[rxrpc_call_put_noqueue] = "PNQ",
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue