diff options
| author | Harry Yoo (Oracle) <harry@kernel.org> | 2026-07-29 17:20:11 +0900 |
|---|---|---|
| committer | Vlastimil Babka (SUSE) <vbabka@kernel.org> | 2026-07-31 15:56:42 +0200 |
| commit | f8e0c305995fa2931e77a6e669e8362458ae4eba (patch) | |
| tree | 349d36cb93f37de35307425d601ab1b28afabc48 /scripts/stackusage | |
| parent | f3521fbec2b2839698eba2b7013ed20119416e6d (diff) | |
| download | linux-next-f8e0c305995fa2931e77a6e669e8362458ae4eba.tar.gz linux-next-f8e0c305995fa2931e77a6e669e8362458ae4eba.zip | |
mm/slab: use call_rcu() in unknown context if irqs are enabled
call_rcu() disables IRQs with local_irq_save() to protect its per-cpu
data structures. Therefore, if IRQs are not disabled, they cannot be
corrupted by reentrance into call_rcu(). So fall back to the deferred
path only when !allow_spin && irqs_disabled().
The RCU subsystem does not guarantee this contractually, and this
optimization relies on RCU's implementation details. Ideally, it should
be removed once call_rcu_nolock() is supported by the RCU subsystem.
Link: https://lore.kernel.org/linux-mm/CAADnVQKRVD5ZSnEKbZZU7w86gHbGHUug2pvzpgZTngNS+fg4rw@mail.gmail.com
Suggested-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Harry Yoo (Oracle) <harry@kernel.org>
Link: https://patch.msgid.link/20260729-kfree_rcu_nolock-v5-3-a28cdcda9673@kernel.org
Reviewed-by: Shengming Hu <hu.shengming@zte.com.cn>
Signed-off-by: Vlastimil Babka (SUSE) <vbabka@kernel.org>
Diffstat (limited to 'scripts/stackusage')
0 files changed, 0 insertions, 0 deletions
