Messages in this thread | | | Date | Tue, 9 Feb 2016 18:14:12 -0500 | From | Johannes Weiner <> | Subject | Re: [PATCH v2 5/6] mm: workingset: size shadow nodes lru basing on file cache size |
| |
On Tue, Feb 09, 2016 at 04:55:53PM +0300, Vladimir Davydov wrote: > A page is activated on refault if the refault distance stored in the > corresponding shadow entry is less than the number of active file pages. > Since active file pages can't occupy more than half memory, we assume > that the maximal effective refault distance can't be greater than half > the number of present pages and size the shadow nodes lru list > appropriately. Generally speaking, this assumption is correct, but it > can result in wasting a considerable chunk of memory on stale shadow > nodes in case the portion of file pages is small, e.g. if a workload > mostly uses anonymous memory. > > To sort this out, we need to compute the size of shadow nodes lru basing > not on the maximal possible, but the current size of file cache. We > could take the size of active file lru for the maximal refault distance, > but active lru is pretty unstable - it can shrink dramatically at > runtime possibly disrupting workingset detection logic. > > Instead we assume that the maximal refault distance equals half the > total number of file cache pages. This will protect us against active > file lru size fluctuations while still being correct, because size of > active lru is normally maintained lower than size of inactive lru. > > Signed-off-by: Vladimir Davydov <vdavydov@virtuozzo.com>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Begrudgingly, because I don't think it matters that much and I like the dumber version. But it's a reasonable change nonetheless.
| |