On Fri, Aug 07, 2009 at 11:17:22AM +0800, KOSAKI Motohiro wrote:Andrea Arcangeli wrote:Sound reasonable.
Likely we need a cut-off point, if we detect it takes more than XWe could just make this depend on the calculated inactive_ratio,
seconds to scan the whole active list, we start ignoring young bits,
which depends on the size of the list.
For small systems, it may make sense to make every accessed bit
count, because the working set will often approach the size of
memory.
On very large systems, the working set may also approach the
size of memory, but the inactive list only contains a small
percentage of the pages, so there is enough space for everything.
Say, if the inactive_ratio is 3 or less, make the accessed bit
on the active lists count.
Yes, such kind of global measurements would be much better.
How do we confirm the idea correctness?
In general the active list tends to grow large on under-scanned LRU.
I guess Rik is pretty familiar with typical inactive_ratio values of
the large memory systems and may even have some real numbers :)
Wu, your X focus switching benchmark is sufficient test?
It is a major test case for memory tight desktop. Jeff presents
another interesting one for KVM, hehe.
Anyway I collected the active/inactive list sizes, and the numbers
show that the inactive_ratio is roughly 1 when the LRU is scanned
actively and may go very high when it is under-scanned.