Re: [RFC] respect the referenced bit of KVM guest pages?
From: Wu Fengguang <hidden>
Date: 2009-08-16 05:18:32
Also in:
lkml
On Sun, Aug 16, 2009 at 11:53:00AM +0800, Rik van Riel wrote:
Wu Fengguang wrote:quoted
On Fri, Aug 07, 2009 at 05:09:55AM +0800, Jeff Dike wrote:quoted
Side question - Is there a good reason for this to be in shrink_active_list() as opposed to __isolate_lru_page? if (unlikely(!page_evictable(page, NULL))) { putback_lru_page(page); continue; } Maybe we want to minimize the amount of code under the lru lock or avoid duplicate logic in the isolate_page functions.I guess the quick test means to avoid the expensive page_referenced() call that follows it. But that should be mostly one shot cost - the unevictable pages are unlikely to cycle in active/inactive list again and again.Please read what putback_lru_page does. It moves the page onto the unevictable list, so that it will not end up in this scan again.
Yes it does. I said 'mostly' because there is a small hole that an unevictable page may be scanned but still not moved to unevictable list: when a page is mapped in two places, the first pte has the referenced bit set, the _second_ VMA has VM_LOCKED bit set, then page_referenced() will return 1 and shrink_page_list() will move it into active list instead of unevictable list. Shall we fix this rare case?
quoted
quoted
But if there are important mlock-heavy workloads, this could make the scan come up empty, or at least emptier than we might like.Yes, if the above 'if' block is removed, the inactive lists might get more expensive to reclaim.Why?
Without the 'if' block, an unevictable page may well be deactivated into inactive list (and some time later be moved to unevictable list from there), increasing the inactive list's scanned:reclaimed ratio. Thanks, Fengguang -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>