From: Alice Ryhl <aliceryhl@google.com>
To: Jahnavi MN <jahnavimn@google.com>
Cc: "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Arve Hjønnevåg" <arve@android.com>,
"Todd Kjos" <tkjos@android.com>,
"Christian Brauner" <brauner@kernel.org>,
"Carlos Llamas" <cmllamas@google.com>,
"Miguel Ojeda" <ojeda@kernel.org>,
"Boqun Feng" <boqun@kernel.org>, "Gary Guo" <gary@garyguo.net>,
"Björn Roy Baron" <bjorn3_gh@protonmail.com>,
"Benno Lossin" <lossin@kernel.org>,
"Andreas Hindborg" <a.hindborg@kernel.org>,
"Trevor Gross" <tmgross@umich.edu>,
"Danilo Krummrich" <dakr@kernel.org>,
"Daniel Almeida" <daniel.almeida@collabora.com>,
"Tamir Duberstein" <tamird@kernel.org>,
"Alexandre Courbot" <acourbot@nvidia.com>,
"Onur Özkan" <work@onurozkan.dev>,
linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org
Subject: Re: [PATCH 3/7] rust_binder: Implement the BINDER_DEBUG_USER_ERROR logging mask for reference counting and death notification operations
Date: Sat, 4 Jul 2026 21:14:52 +0000 [thread overview]
Message-ID: <akl3zOLTHQ-sjqia@google.com> (raw)
In-Reply-To: <20260703-rust_binder_debug_mask-v1-3-9bdf12b5325c@google.com>
On Fri, Jul 03, 2026 at 03:29:24PM +0000, Jahnavi MN wrote:
> This adds dynamic debug logs for:
> - Decrementing handle reference counts that are already zero.
> - Mismatched reference states (calling inc_ref_done with no active
> inc_refs, or using a weak reference as a strong reference).
> - Requesting or clearing death notifications on invalid references,
> already active notifications, or with mismatched cookies.
>
> Signed-off-by: Jahnavi MN <jahnavimn@google.com>
The commit title is pretty long. Could we shorten it? For example:
rust_binder: use BINDER_DEBUG_USER_ERROR mask for refcount errors
> *count += 1;
> } else {
> if *count == 0 {
> - pr_warn!(
> - "pid {} performed invalid decrement on ref\n",
> - kernel::current!().pid()
> + binder_debug!(
> + crate::debug::BINDER_DEBUG_USER_ERROR,
> + "performed invalid decrement on ref (strong: {})",
> + strong
Instead of printing (strong: true) or (strong: false), I think it would
be nicer to print strong or weak directly in the text:
binder_debug!(
crate::debug::BINDER_DEBUG_USER_ERROR,
"performed invalid {} decrement on ref",
if strong { "strong" } else { "weak" }
> pub(crate) fn get_transaction_node(&self, handle: u32) -> BinderResult<NodeRef> {
> - if handle == 0 {
> - Ok(self.ctx.get_manager_node(true)?)
> + // When handle is zero, try to get the context manager.
> + let res = if handle == 0 {
> + self.ctx.get_manager_node(true)
> } else {
> - Ok(self.get_node_from_handle(handle, true)?)
> + self.get_node_from_handle(handle, true).map_err(Into::into)
> + };
> +
> + match res {
> + Ok(node_ref) => Ok(node_ref),
> + Err(err) => {
> + binder_debug!(
> + crate::debug::BINDER_DEBUG_USER_ERROR,
> + "got transaction to invalid handle {}",
> + handle
> + );
> + Err(err)
> + }
This is probably only a user error if `handle != 0`. The application has
no way of knowing the context manager is dead, so that case isn't a bug
in the application.
So I think we can move this println inside the else {} block.
> @@ -1268,17 +1291,27 @@ pub(crate) fn clear_death(&self, reader: &mut UserSliceReader, thread: &Thread)
>
> let mut refs = self.node_refs.lock();
> let Some(info) = refs.by_handle.get_mut(&handle) else {
> - pr_warn!("BC_CLEAR_DEATH_NOTIFICATION invalid ref {handle}\n");
> + binder_debug!(
> + crate::debug::BINDER_DEBUG_USER_ERROR,
> + "BC_CLEAR_DEATH_NOTIFICATION invalid ref {}",
> + handle
> + );
Does the {handle} syntax that the println is currently using work here?
If not, then I think we should try to get it working.
Alice
next prev parent reply other threads:[~2026-07-04 21:14 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-03 15:29 [PATCH 0/7] rust_binder : Implement dynamic debug logging mask Jahnavi MN via B4 Relay
2026-07-03 15:29 ` Jahnavi MN
2026-07-03 15:29 ` [PATCH 1/7] rust_binder: Add " Jahnavi MN via B4 Relay
2026-07-03 15:29 ` Jahnavi MN
2026-07-03 16:23 ` Gary Guo
2026-07-04 21:03 ` Alice Ryhl
2026-07-03 15:29 ` [PATCH 2/7] rust_binder: Implement the BINDER_DEBUG_USER_ERROR logging mask for freezer-related operation Jahnavi MN via B4 Relay
2026-07-03 15:29 ` Jahnavi MN
2026-07-03 15:29 ` [PATCH 3/7] rust_binder: Implement the BINDER_DEBUG_USER_ERROR logging mask for reference counting and death notification operations Jahnavi MN via B4 Relay
2026-07-03 15:29 ` Jahnavi MN
2026-07-04 21:14 ` Alice Ryhl [this message]
2026-07-03 15:29 ` [PATCH 4/7] rust_binder: Implement the BINDER_DEBUG_USER_ERROR logging mask for transaction parsing and protocol validation failures Jahnavi MN via B4 Relay
2026-07-03 15:29 ` Jahnavi MN
2026-07-03 15:29 ` [PATCH 5/7] rust_binder: Implement the BINDER_DEBUG_FAILED_TRANSACTION logging mask for transaction parsing and routing failures Jahnavi MN via B4 Relay
2026-07-03 15:29 ` Jahnavi MN
2026-07-03 15:29 ` [PATCH 6/7] rust_binder: Implement BINDER_DEBUG_FAILED_TRANSACTION logging for death notification allocation failures Jahnavi MN via B4 Relay
2026-07-03 15:29 ` Jahnavi MN
2026-07-04 21:17 ` Alice Ryhl
2026-07-03 15:29 ` [PATCH 7/7] rust_binder: Implement the BINDER_DEBUG_DEAD_TRANSACTION logging mask to trace in-flight cancellations during teardown Jahnavi MN via B4 Relay
2026-07-03 15:29 ` Jahnavi MN
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=akl3zOLTHQ-sjqia@google.com \
--to=aliceryhl@google.com \
--cc=a.hindborg@kernel.org \
--cc=acourbot@nvidia.com \
--cc=arve@android.com \
--cc=bjorn3_gh@protonmail.com \
--cc=boqun@kernel.org \
--cc=brauner@kernel.org \
--cc=cmllamas@google.com \
--cc=dakr@kernel.org \
--cc=daniel.almeida@collabora.com \
--cc=gary@garyguo.net \
--cc=gregkh@linuxfoundation.org \
--cc=jahnavimn@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lossin@kernel.org \
--cc=ojeda@kernel.org \
--cc=rust-for-linux@vger.kernel.org \
--cc=tamird@kernel.org \
--cc=tkjos@android.com \
--cc=tmgross@umich.edu \
--cc=work@onurozkan.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.