mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
rust_binder: add transaction_received tracepoint
Add Rust Binder `transaction_received` tracepoint decalaration and wire in the corresponding trace call when a transaction work item is accepted for execution. Signed-off-by: Mohamad Alsadhan <mo@sdhn.cc> Link: https://patch.msgid.link/20260317-rust-binder-trace-v3-4-6fae4fbcf637@sdhn.cc Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
2335167a61
commit
caf3719f33
@@ -99,6 +99,18 @@ TRACE_EVENT(binder_transaction,
|
||||
__entry->reply, __entry->flags, __entry->code)
|
||||
);
|
||||
|
||||
TRACE_EVENT(binder_transaction_received,
|
||||
TP_PROTO(rust_binder_transaction t),
|
||||
TP_ARGS(t),
|
||||
TP_STRUCT__entry(
|
||||
__field(int, debug_id)
|
||||
),
|
||||
TP_fast_assign(
|
||||
__entry->debug_id = rust_binder_transaction_debug_id(t);
|
||||
),
|
||||
TP_printk("transaction=%d", __entry->debug_id)
|
||||
);
|
||||
|
||||
#endif /* _RUST_BINDER_TRACE_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
|
||||
@@ -17,6 +17,7 @@ declare_trace! {
|
||||
unsafe fn binder_write_done(ret: c_int);
|
||||
unsafe fn binder_wait_for_work(proc_work: bool, transaction_stack: bool, thread_todo: bool);
|
||||
unsafe fn binder_transaction(reply: bool, t: rust_binder_transaction, thread: *mut task_struct);
|
||||
unsafe fn binder_transaction_received(t: rust_binder_transaction);
|
||||
}
|
||||
|
||||
#[inline]
|
||||
@@ -70,3 +71,9 @@ pub(crate) fn trace_transaction(reply: bool, t: &Transaction, thread: Option<&Ta
|
||||
// valid or null.
|
||||
unsafe { binder_transaction(reply, raw_transaction(t), thread) }
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub(crate) fn trace_transaction_received(t: &Transaction) {
|
||||
// SAFETY: The raw transaction is valid for the duration of this call.
|
||||
unsafe { binder_transaction_received(raw_transaction(t)) }
|
||||
}
|
||||
|
||||
@@ -451,6 +451,8 @@ impl DeliverToRead for Transaction {
|
||||
|
||||
self.drop_outstanding_txn();
|
||||
|
||||
crate::trace::trace_transaction_received(&self);
|
||||
|
||||
// When this is not a reply and not a oneway transaction, update `current_transaction`. If
|
||||
// it's a reply, `current_transaction` has already been updated appropriately.
|
||||
if self.target_node.is_some() && tr_sec.transaction_data.flags & TF_ONE_WAY == 0 {
|
||||
|
||||
Reference in New Issue
Block a user