On Thu, Jul 29, 2021 at 03:20:57PM +0200, 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 > FWIW, I ran a corrected version of this series through a few tests. Some small gains, no major regressions in terms of performance on a !PREEMPT_RT configuration across 6 different machines. -- Mel Gorman SUSE Labs