Re: [PATCH 0/7] mm/zswap: optimize the scalability of zswap rb-tree

From: Nhat Pham
Date: Thu Dec 07 2023 - 13:57:38 EST


On Thu, Dec 7, 2023 at 10:15 AM Nhat Pham <nphamcs@xxxxxxxxx> wrote:
>
> On Thu, Dec 7, 2023 at 7:18 AM Chengming Zhou
> <zhouchengming@xxxxxxxxxxxxx> wrote:
> >
> > Updated test data based on today's mm-unstable branch:
> >
> > mm-unstable +patchset
> > 1. !shrinker_enabled: 86s 74s
> > 2. shrinker_enabled: 63s 61s
> >
> > Shows much less optimization for the shrinker_enabled case, but still
> > much optimization for the !shrinker_enabled case.
> >
> > Thanks!
>
> I'm gonna assume this is build time since it makes the zswap shrinker
> look pretty good :)
> I think this just means some of the gains between this patchset and
> the zswap shrinker overlaps. But on the positive note:
>
> a) Both are complementary, i.e enable both (bottom right corner) gives
> us the best result.
> b) Each individual change improves the runtime. If you disable the
> shrinker, then this patch helps tremendously, so we're onto something.
> c) The !shrinker_enabled is no longer *too* bad - once again, thanks
> for noticing the regression and help me fix it! In fact, every cell
> improves compared to the last run. Woohoo!

Oh and, another thing that might be helpful to observe reduction in
lock contention (and compare approaches if necessary) is this analysis
that Yosry performed for the multiple zpools change:
https://lore.kernel.org/lkml/20230620194644.3142384-1-yosryahmed@xxxxxxxxxx/

We could look at the various paths that utilize rbtree and see how
long we're spinning at the lock(s) etc.