Re: mm: pages are not freed from lru_add_pvecs after process termination

From: Kirill A. Shutemov
Date: Tue May 03 2016 - 06:07:59 EST


On Tue, May 03, 2016 at 09:37:57AM +0200, Michal Hocko wrote:
> On Mon 02-05-16 19:02:50, Kirill A. Shutemov wrote:
> > On Mon, May 02, 2016 at 08:49:03AM -0700, Dave Hansen wrote:
> > > On 05/02/2016 08:01 AM, Kirill A. Shutemov wrote:
> > > > On Mon, May 02, 2016 at 04:39:35PM +0200, Vlastimil Babka wrote:
> > > >> On 04/27/2016 07:11 PM, Dave Hansen wrote:
> > > >>> 6. Perhaps don't use the LRU pagevecs for large pages. It limits the
> > > >>> severity of the problem.
> > > >>
> > > >> I think that makes sense. Being large already amortizes the cost per base
> > > >> page much more than pagevecs do (512 vs ~22 pages?).
> > > >
> > > > We try to do this already, don't we? Any spefic case where we have THPs on
> > > > pagevecs?
> > >
> > > Lukas was hitting this on a RHEL 7 era kernel. In his kernel at least,
> > > I'm pretty sure THP's were ending up on pagevecs. Are you saying you
> > > don't think we're doing that any more?
> >
> > As Vlastimil pointed, we do. It need to be fixed, I think.
>
> It seems that offloading the draining to the vmstat context doesn't look
> terribly bad. Don't we rather want to go that way?

Maybe. My knowledge about lru cache is limited.

--
Kirill A. Shutemov