Re: [PATCH v3 00/35] SLUB: reduce irq disabled scope and make it RT compatible

From: Mel Gorman
Date: Wed Aug 04 2021 - 08:05:28 EST


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