From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail143.messagelabs.com (mail143.messagelabs.com [216.82.254.35]) by kanga.kvack.org (Postfix) with SMTP id BAAC66B02AD for ; Fri, 23 Jul 2010 15:22:54 -0400 (EDT) Received: by pxi7 with SMTP id 7so4576582pxi.14 for ; Fri, 23 Jul 2010 12:22:53 -0700 (PDT) Message-ID: <4C49EC29.4070202@vflare.org> Date: Sat, 24 Jul 2010 00:53:21 +0530 From: Nitin Gupta Reply-To: ngupta@vflare.org MIME-Version: 1.0 Subject: Re: [PATCH 4/8] Shrink zcache based on memlimit References: <1279283870-18549-1-git-send-email-ngupta@vflare.org> <4C467D18.4050901@vflare.org> <201007210732.03909.edt@aei.ca> In-Reply-To: <201007210732.03909.edt@aei.ca> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Sender: owner-linux-mm@kvack.org To: Ed Tomlinson Cc: Minchan Kim , Pekka Enberg , Hugh Dickins , Andrew Morton , Greg KH , Dan Magenheimer , Rik van Riel , Avi Kivity , Christoph Hellwig , Konrad Rzeszutek Wilk , linux-mm , linux-kernel List-ID: On 07/21/2010 05:02 PM, Ed Tomlinson wrote: > On Wednesday 21 July 2010 00:52:40 Nitin Gupta wrote: >> On 07/21/2010 04:33 AM, Minchan Kim wrote: >>> On Fri, Jul 16, 2010 at 9:37 PM, Nitin Gupta wrote: >>>> User can change (per-pool) memlimit using sysfs node: >>>> /sys/kernel/mm/zcache/pool/memlimit >>>> >>>> When memlimit is set to a value smaller than current >>>> number of pages allocated for that pool, excess pages >>>> are now freed immediately instead of waiting for get/ >>>> flush for these pages. >>>> >>>> Currently, victim page selection is essentially random. >>>> Automatic cache resizing and better page replacement >>>> policies will be implemented later. >>> >>> Okay. I know this isn't end. I just want to give a concern before you end up. >>> I don't know how you implement reclaim policy. >>> In current implementation, you use memlimit for determining when reclaim happen. >>> But i think we also should follow global reclaim policy of VM. >>> I means although memlimit doen't meet, we should reclaim zcache if >>> system has a trouble to reclaim memory. >> >> Yes, we should have a way to do reclaim depending on system memory pressure >> and also when user explicitly wants so i.e. when memlimit is lowered manually. >> >>> AFAIK, cleancache doesn't give any hint for that. so we should >>> implement it in zcache itself. >> >> I think cleancache should be kept minimal so yes, all reclaim policies should >> go in zcache layer only. >> >>> At first glance, we can use shrink_slab or oom_notifier. But both >>> doesn't give any information of zone although global reclaim do it by >>> per-zone. >>> AFAIK, Nick try to implement zone-aware shrink slab. Also if we need >>> it, we can change oom_notifier with zone-aware oom_notifier. Now it >>> seems anyone doesn't use oom_notifier so I am not sure it's useful. >>> >> >> I don't think we need these notifiers as we can simply create a thread >> to monitor cache hit rate, system memory pressure etc. and shrink/expand >> the cache accordingly. > > Nitin, > > Based on experience gained when adding the shrinker callbacks, I would > strongly recommend you use them. I tried several hacks along the lines of > what you are proposing before moving settling on the callbacks. They > are effective and make sure that memory is released when its required. > What would happen with the other methods is that memory would either > not be released or would be released when it was not needed. > I had similar experience with "swap notify callback" -- yes, things don't seem to work without a proper callback. I will check if some callback already exists for OOM like condition or if new one can be added easily. Thanks, Nitin -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org