Prev: [tip:x86/urgent] x86, i8259: Only register sysdev if we have a real 8259 PIC
Next: [PATCH -next] debugfs: no longer needs to depend on SYSFS
From: Minchan Kim on 20 Jul 2010 19:10 Hi, On Fri, Jul 16, 2010 at 9:37 PM, Nitin Gupta <ngupta(a)vflare.org> wrote: > User can change (per-pool) memlimit using sysfs node: > /sys/kernel/mm/zcache/pool<id>/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. AFAIK, cleancache doesn't give any hint for that. so we should implement it in zcache itself. 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. It's just my opinion. Thanks for effort for good feature. Nitin. -- Kind regards, Minchan Kim -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Nitin Gupta on 21 Jul 2010 01:30 On 07/21/2010 04:33 AM, Minchan Kim wrote: > On Fri, Jul 16, 2010 at 9:37 PM, Nitin Gupta <ngupta(a)vflare.org> wrote: >> User can change (per-pool) memlimit using sysfs node: >> /sys/kernel/mm/zcache/pool<id>/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. Thanks for your comments. Nitin -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Ed Tomlinson on 21 Jul 2010 07:40 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 <ngupta(a)vflare.org> wrote: > >> User can change (per-pool) memlimit using sysfs node: > >> /sys/kernel/mm/zcache/pool<id>/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. Thanks Ed Tomlinson. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Nitin Gupta on 23 Jul 2010 15:30
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 <ngupta(a)vflare.org> wrote: >>>> User can change (per-pool) memlimit using sysfs node: >>>> /sys/kernel/mm/zcache/pool<id>/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 from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |