diff options
author | 2021-05-12 14:04:43 +0200 | |
---|---|---|
committer | 2021-09-04 01:12:22 +0200 | |
commit | cfdf836e1f93df56ddd9a1d48b2deadf02f441fe (patch) | |
tree | 038be3757ff36054c967ee3f023717d8af98af05 /tools/perf/scripts/python/export-to-postgresql.py | |
parent | mm, slub: make locking in deactivate_slab() irq-safe (diff) | |
download | wireguard-linux-cfdf836e1f93df56ddd9a1d48b2deadf02f441fe.tar.xz wireguard-linux-cfdf836e1f93df56ddd9a1d48b2deadf02f441fe.zip |
mm, slub: call deactivate_slab() without disabling irqs
The function is now safe to be called with irqs enabled, so move the calls
outside of irq disabled sections.
When called from ___slab_alloc() -> flush_slab() we have irqs disabled, so to
reenable them before deactivate_slab() we need to open-code flush_slab() in
___slab_alloc() and reenable irqs after modifying the kmem_cache_cpu fields.
But that means a IRQ handler meanwhile might have assigned a new page to
kmem_cache_cpu.page so we have to retry the whole check.
The remaining callers of flush_slab() are the IPI handler which has disabled
irqs anyway, and slub_cpu_dead() which will be dealt with in the following
patch.
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
Diffstat (limited to 'tools/perf/scripts/python/export-to-postgresql.py')
0 files changed, 0 insertions, 0 deletions