Re: [RFC][PATCH v3 2/5] mm/zsmalloc: remove shrinker compaction callbacks
From: Minchan Kim
Date: Mon Mar 14 2016 - 20:52:05 EST
On Mon, Mar 14, 2016 at 04:45:23PM +0900, Sergey Senozhatsky wrote:
> On (03/14/16 15:32), Minchan Kim wrote:
> > On Thu, Mar 03, 2016 at 11:46:00PM +0900, Sergey Senozhatsky wrote:
> > > Do not register shrinker compaction callbacks anymore, since
> > > now we shedule class compaction work each time its fragmentation
> > > value goes above the watermark.
> >
> > I suggested to remove shrinker compaction but while I review your
> > first patch in this thread, I thought we need upper-bound to
> > compact zspage so background work can bail out for latency easily.
> > IOW, the work could give up the job. In such case, we might need
> > fall-back scheme to continue the job. And I think that could be
> > a shrinker.
> >
> > What do you think?
>
> wouldn't this unnecessarily complicate the whole thing? we would
> have
> a) a compaction that can be triggered by used space
Maybe, user space? :)
> b) a compaction from zs_free() that can bail out
> c) a compaction triggered by the shrinker.
>
> all 3 three can run simultaneously.
Yeb.
>
>
> _if_ we can keep every class below its watermark, we can reduce the
> need of "c)".
But the problem is timing. We cannot guarantee when background
compaction triggers while shrinker is interop with VM so we should
do the job instantly for the system.
>
> -ss