Re: [PATCH] mm/zswap: Improve with alloc_workqueue() call

From: Yosry Ahmed
Date: Thu Jan 18 2024 - 12:03:51 EST


On Thu, Jan 18, 2024 at 8:48 AM Johannes Weiner <hannes@xxxxxxxxxxx> wrote:
>
> On Thu, Jan 18, 2024 at 11:16:08AM -0500, Johannes Weiner wrote:
> > > > On Tue, Jan 16, 2024 at 5:32 AM Ronald Monthero
> > > > > @@ -1620,7 +1620,8 @@ static int zswap_setup(void)
> > > > > zswap_enabled = false;
> > > > > }
> > > > >
> > > > > - shrink_wq = create_workqueue("zswap-shrink");
> > > > > + shrink_wq = alloc_workqueue("zswap-shrink",
> > > > > + WQ_UNBOUND|WQ_MEM_RECLAIM, 1);
>
> > What could make a difference though is the increased concurrency by
> > switching max_active from 1 to 0. This could cause a higher rate of
> > shrinker runs, which might increase lock contention and reclaim
> > volume. That part would be good to double check with the shrinker
> > benchmarks.
>
> Nevermind, I clearly can't read.

Regardless of max_active, we only have one shrink_work per zswap pool,
and we can only have one instance of the work running at any time,
right?

>
> Could still be worthwhile testing with the default 0, but it's not a
> concern in the patch as-is.
>
> Acked-by: Johannes Weiner <hannes@xxxxxxxxxxx>
>