Messages in this thread | | | Date | Fri, 22 Mar 2013 12:59:56 +0800 | From | Will Huck <> | Subject | Re: [PATCH 01/10] mm: vmscan: Limit the number of pages kswapd reclaims at each priority |
| |
Hi Rik, On 03/22/2013 11:56 AM, Will Huck wrote: > Hi Rik, > On 03/22/2013 11:52 AM, Rik van Riel wrote: >> On 03/21/2013 08:05 PM, Will Huck wrote: >> >>> One offline question, how to understand this in function balance_pgdat: >>> /* >>> * Do some background aging of the anon list, to give >>> * pages a chance to be referenced before reclaiming. >>> */ >>> age_acitve_anon(zone, &sc); >> >> The anon lrus use a two-handed clock algorithm. New anonymous pages >> start off on the active anon list. Older anonymous pages get moved >> to the inactive anon list. > > The file lrus also use the two-handed clock algorithm, correct?
After reinvestigate the codes, the answer is no. But why have this difference? I think you are the expert for this question, expect your explanation. :-)
> >> >> If they get referenced before they reach the end of the inactive anon >> list, they get moved back to the active list. >> >> If we need to swap something out and find a non-referenced page at the >> end of the inactive anon list, we will swap it out. >> >> In order to make good pageout decisions, pages need to stay on the >> inactive anon list for a longer time, so they have plenty of time to >> get referenced, before the reclaim code looks at them. >> >> To achieve that, we will move some active anon pages to the inactive >> anon list even when we do not want to swap anything out - as long as >> the inactive anon list is below its target size. >> >> Does that make sense? > > Make sense, thanks. >
| |