On Wed 08-06-16 08:31:21, Dave Hansen wrote: > On 06/08/2016 07:35 AM, Lukasz Odzioba wrote: > > diff --git a/mm/swap.c b/mm/swap.c > > index 9591614..3fe4f18 100644 > > --- a/mm/swap.c > > +++ b/mm/swap.c > > @@ -391,9 +391,8 @@ static void __lru_cache_add(struct page *page) > > struct pagevec *pvec = &get_cpu_var(lru_add_pvec); > > > > get_page(page); > > - if (!pagevec_space(pvec)) > > + if (!pagevec_add(pvec, page) || PageCompound(page)) > > __pagevec_lru_add(pvec); > > - pagevec_add(pvec, page); > > put_cpu_var(lru_add_pvec); > > } > > Lukasz, > > Do we have any statistics that tell us how many pages are sitting the > lru pvecs? Although this helps the problem overall, don't we still have > a problem with memory being held in such an opaque place?
Is it really worth bothering when we are talking about 56kB per CPU (after this patch)? -- Michal Hocko SUSE Labs