On Tue, Mar 15, 2016 at 10:05:42AM +0900, Sergey Senozhatsky wrote: > On (03/15/16 09:52), Minchan Kim wrote: > [..] > > > > 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? :) > > haha, yes! sorry, I do quite a lot of typos. > > > > 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. > > we can have pool's compaction-kthread that we will wake_up() > every time we need a compaction, with no dependency on workqueue > or shrinker. Hmm, I don't think it can work either because wake_up doesn't guarantee instant execution of the thread. I think it would be better to have both direct/background compaction. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>