diff options
| author | Alice Ryhl <aliceryhl@google.com> | 2026-07-07 10:43:13 +0000 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2026-07-17 15:21:01 +0200 |
| commit | dbb17c9ea7567c6ecefe47104cfcc255b91e4089 (patch) | |
| tree | c1c6e3b79380c5d1aac3341835f8b502885617a6 /include | |
| parent | e5e86df8b666152bc99fab4be0906b92a271964d (diff) | |
| download | linux-dbb17c9ea7567c6ecefe47104cfcc255b91e4089.tar.gz linux-dbb17c9ea7567c6ecefe47104cfcc255b91e4089.zip | |
rust_binder: move (e)poll wait queue to Process
Most processes do not use Rust Binder with epoll, so avoid paying the
synchronize_rcu() cost in drop for those that don't need it. For those
that do, we also manage to replace synchronize_rcu() with kfree_rcu(),
though we introduce an extra allocation.
In case the last ref to an Arc<Thread> is dropped outside of
deferred_release(), this also ensures that synchronize_rcu() is not
called in destructor of Arc<Thread> in other places. Theoretically that
could lead to jank by making other syscalls slow, which would be
problematic.
Signed-off-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Boqun Feng <boqun@kernel.org>
Link: https://patch.msgid.link/20260707-upgrade-poll-v6-2-4b8fae7bf1d9@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions
