On 7/29/21 3:20 PM, Vlastimil Babka wrote: > Changes since v2 [5]: > * Rebase to 5.14-rc3 > * A number of fixes to the RT parts, big thanks to Mike Galbraith for testing > and debugging! > * The largest fix is to protect kmem_cache_cpu->partial by local_lock instead > of cmpxchg tricks, which are insufficient on RT. To avoid divergence > between RT and !RT, just do it everywhere. Affected mainly patch 25 and a > new patch 33. This also addresses a theoretical race raised earlier by Jann > Horn. > * Smaller fixes reported by Sebastian Andrzej Siewior and Cyrill Gorcunov > > Changes since RFC v1 [1]: > * Addressed feedback from Christoph and Mel, added their acks. > * Finished RT conversion, adopting 2 patches from the RT tree. > * The local_lock conversion has to sacrifice lockless fathpaths on PREEMPT_RT > * Added some more cleanup patches to the front. > > This series was initially inspired by Mel's pcplist local_lock rewrite, and > also interest to better understand SLUB's locking and the new primitives and RT > variants and implications. It should make SLUB more preemption-friendly, > especially for RT, hopefully without noticeable regressions, as the fast paths > are not affected. > > Series is based on 5.14-rc3 and also available as a git branch: > https://git.kernel.org/pub/scm/linux/kernel/git/vbabka/linux.git/log/?h=slub-local-lock-v3r1 Branch with fixed memory leak in patch 33: https://git.kernel.org/pub/scm/linux/kernel/git/vbabka/linux.git/log/?h=slub-local-lock-v3r2