mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-26 21:54:11 +08:00
rxrpc: Add a tracepoint for aborts being proposed
Add a tracepoint to rxrpc to trace the proposal of an abort. The abort is performed asynchronously by the I/O thread. Signed-off-by: David Howells <dhowells@redhat.com> cc: Marc Dionne <marc.dionne@auristor.com> cc: Simon Horman <horms@kernel.org> cc: linux-afs@lists.infradead.org Link: https://patch.msgid.link/726356.1730898045@warthog.procyon.org.uk Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
d9ccb18f83
commit
8b9a7bd4d6
@ -773,6 +773,31 @@ TRACE_EVENT(rxrpc_rx_done,
|
|||||||
TP_printk("r=%d a=%d", __entry->result, __entry->abort_code)
|
TP_printk("r=%d a=%d", __entry->result, __entry->abort_code)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
TRACE_EVENT(rxrpc_abort_call,
|
||||||
|
TP_PROTO(const struct rxrpc_call *call, int abort_code),
|
||||||
|
|
||||||
|
TP_ARGS(call, abort_code),
|
||||||
|
|
||||||
|
TP_STRUCT__entry(
|
||||||
|
__field(unsigned int, call_nr)
|
||||||
|
__field(enum rxrpc_abort_reason, why)
|
||||||
|
__field(int, abort_code)
|
||||||
|
__field(int, error)
|
||||||
|
),
|
||||||
|
|
||||||
|
TP_fast_assign(
|
||||||
|
__entry->call_nr = call->debug_id;
|
||||||
|
__entry->why = call->send_abort_why;
|
||||||
|
__entry->abort_code = abort_code;
|
||||||
|
__entry->error = call->send_abort_err;
|
||||||
|
),
|
||||||
|
|
||||||
|
TP_printk("c=%08x a=%d e=%d %s",
|
||||||
|
__entry->call_nr,
|
||||||
|
__entry->abort_code, __entry->error,
|
||||||
|
__print_symbolic(__entry->why, rxrpc_abort_reasons))
|
||||||
|
);
|
||||||
|
|
||||||
TRACE_EVENT(rxrpc_abort,
|
TRACE_EVENT(rxrpc_abort,
|
||||||
TP_PROTO(unsigned int call_nr, enum rxrpc_abort_reason why,
|
TP_PROTO(unsigned int call_nr, enum rxrpc_abort_reason why,
|
||||||
u32 cid, u32 call_id, rxrpc_seq_t seq, int abort_code, int error),
|
u32 cid, u32 call_id, rxrpc_seq_t seq, int abort_code, int error),
|
||||||
|
@ -29,6 +29,7 @@ bool rxrpc_propose_abort(struct rxrpc_call *call, s32 abort_code, int error,
|
|||||||
call->send_abort_why = why;
|
call->send_abort_why = why;
|
||||||
call->send_abort_err = error;
|
call->send_abort_err = error;
|
||||||
call->send_abort_seq = 0;
|
call->send_abort_seq = 0;
|
||||||
|
trace_rxrpc_abort_call(call, abort_code);
|
||||||
/* Request abort locklessly vs rxrpc_input_call_event(). */
|
/* Request abort locklessly vs rxrpc_input_call_event(). */
|
||||||
smp_store_release(&call->send_abort, abort_code);
|
smp_store_release(&call->send_abort, abort_code);
|
||||||
rxrpc_poke_call(call, rxrpc_call_poke_abort);
|
rxrpc_poke_call(call, rxrpc_call_poke_abort);
|
||||||
|
Loading…
Reference in New Issue
Block a user