summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>2021-02-26 17:11:55 +0100
committerVlastimil Babka <vbabka@suse.cz>2021-09-04 01:12:23 +0200
commit5a836bf6b09f99ead1b69457ff39ab3011ece57b (patch)
tree959be42f69d765d7198b8c1d6c8aa1a3f3e54ec7 /arch
parent08beb547a1f7b66fbeaf40f2d3675a3ea0060c0b (diff)
downloadlinux-5a836bf6b09f99ead1b69457ff39ab3011ece57b.tar.bz2
mm: slub: move flush_cpu_slab() invocations __free_slab() invocations out of IRQ context
flush_all() flushes a specific SLAB cache on each CPU (where the cache is present). The deactivate_slab()/__free_slab() invocation happens within IPI handler and is problematic for PREEMPT_RT. The flush operation is not a frequent operation or a hot path. The per-CPU flush operation can be moved to within a workqueue. Because a workqueue handler, unlike IPI handler, does not disable irqs, flush_slab() now has to disable them for working with the kmem_cache_cpu fields. deactivate_slab() is safe to call with irqs enabled. [vbabka@suse.cz: adapt to new SLUB changes] Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
Diffstat (limited to 'arch')
0 files changed, 0 insertions, 0 deletions