summaryrefslogtreecommitdiff
path: root/scripts/stackusage
diff options
context:
space:
mode:
authorHarry Yoo (Oracle) <harry@kernel.org>2026-07-29 17:20:12 +0900
committerVlastimil Babka (SUSE) <vbabka@kernel.org>2026-07-31 15:56:46 +0200
commit69abda97a09b2e7df26d21cb534f4930201b4186 (patch)
treed578771178c4e5c713278ec87aeccfe9083cb7a4 /scripts/stackusage
parentf8e0c305995fa2931e77a6e669e8362458ae4eba (diff)
downloadlinux-next-69abda97a09b2e7df26d21cb534f4930201b4186.tar.gz
linux-next-69abda97a09b2e7df26d21cb534f4930201b4186.zip
mm/slab: extend deferred free mechanism to handle rcu sheaves
__kfree_rcu_sheaf() cannot invoke call_rcu() when spinning is not allowed and IRQs are disabled. To relax the limitation, extend the deferred free fallback so that a full rcu sheaf can be submitted to call_rcu() via the existing IRQ work. Since the deferred mechanism does more than deferred freeing of objects, rename the struct to deferred_percpu_work and adjust names accordingly. When a sheaf is queued on an IRQ work, it is detached from pcs->rcu_free but call_rcu() is not invoked until the irq_work runs. To keep the kvfree_rcu barrier's promise, call irq_work_sync() on each CPU before calling rcu_barrier(). In the meantime, remove the TODO item as apparently there is no simple and effective way to achieve that. This is because, unlike sheaves, kfree_rcu() batches objects from different caches together. Suggested-by: Alexei Starovoitov <ast@kernel.org> Reviewed-by: Pedro Falcato <pfalcato@suse.de> Reviewed-by: Vlastimil Babka (SUSE) <vbabka@kernel.org> Signed-off-by: Harry Yoo (Oracle) <harry@kernel.org> Link: https://patch.msgid.link/20260729-kfree_rcu_nolock-v5-4-a28cdcda9673@kernel.org Signed-off-by: Vlastimil Babka (SUSE) <vbabka@kernel.org>
Diffstat (limited to 'scripts/stackusage')
0 files changed, 0 insertions, 0 deletions