Messages in this thread | | | From | KOSAKI Motohiro <> | Subject | Re: [PATCH 1/2] vmscan: shrink_slab() require number of lru_pages, not page order | Date | Mon, 28 Jun 2010 10:32:00 +0900 (JST) |
| |
> On Fri, 25 Jun 2010, KOSAKI Motohiro wrote: > > > Fix simple argument error. Usually 'order' is very small value than > > lru_pages. then it can makes unnecessary icache dropping. > > This is going to reduce the delta that is added to shrinker->nr > significantly thereby increasing the number of times that shrink_slab() is > called.
Yup. But,
Smaller shrink -> only makes retry Bigger shrink -> makes unnecessary icache/dcache drop. it can bring mysterious low performance.
> What does the "lru_pages" parameter do in shrink_slab()? Looks > like its only role is as a divison factor in a complex calculation of > pages to be scanned.
Yes. scanned/lru_pages ratio define basic shrink_slab puressure strength.
So, If you intentionally need bigger slab pressure, bigger scanned parameter passing is better rather than mysterious 'order' parameter.
> > do_try_to_free_pages passes 0 as "lru_pages" to shrink_slab() when trying > to do cgroup lru scans. Why is that?
? When cgroup lru scans, do_try_to_free_pages() don't call shrink_slab().
| |