Re: [patch 10/10] mm: workingset: keep shadow entries in check

From: Peter Zijlstra
Date: Mon Jun 03 2013 - 13:16:28 EST


On Mon, Jun 03, 2013 at 11:20:32AM -0400, Johannes Weiner wrote:
> On Mon, Jun 03, 2013 at 10:25:33AM +0200, Peter Zijlstra wrote:
> > On Thu, May 30, 2013 at 02:04:06PM -0400, Johannes Weiner wrote:
> > > Previously, page cache radix tree nodes were freed after reclaim
> > > emptied out their page pointers. But now reclaim stores shadow
> > > entries in their place, which are only reclaimed when the inodes
> > > themselves are reclaimed. This is problematic for bigger files that
> > > are still in use after they have a significant amount of their cache
> > > reclaimed, without any of those pages actually refaulting. The shadow
> > > entries will just sit there and waste memory. In the worst case, the
> > > shadow entries will accumulate until the machine runs out of memory.
> > >
> >
> > Can't we simply prune all refault entries that have a distance larger
> > than the memory size? Then we must assume that no refault entry means
> > its too old, which I think is a fair assumption.
>
> Two workloads bound to two nodes might not push pages through the LRUs
> at the same pace, so a distance might be bigger than memory due to the
> faster moving node, yet still be a hit in the slower moving one. We
> can't really know until we evaluate it on a per-zone basis.

But wasn't patch 1 of this series about making sure each zone is scanned
proportionally to its size?

But given that, sure maybe 1 memory size is a bit strict, but surely we
can put a limit on things at about 2 memory sizes?



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/