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@xxxxxxxxxxxxx> Acked-by: Johannes Weiner <hannes@xxxxxxxxxxx> Begrudgingly, because I don't think it matters that much and I like the dumber version. But it's a reasonable change nonetheless. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>