On 08/05/2009 10:58 AM, Avi Kivity wrote: > On 08/05/2009 05:40 AM, Wu Fengguang wrote: >> Greetings, >> >> Jeff Dike found that many KVM pages are being refaulted in 2.6.29: >> >> "Lots of pages between discarded due to memory pressure only to be >> faulted back in soon after. These pages are nearly all stack pages. >> This is not consistent - sometimes there are relatively few such pages >> and they are spread out between processes." >> >> The refaults can be drastically reduced by the following patch, which >> respects the referenced bit of all anonymous pages (including the KVM >> pages). >> >> However it risks reintroducing the problem addressed by commit 7e9cd4842 >> (fix reclaim scalability problem by ignoring the referenced bit, >> mainly the pte young bit). I wonder if there are better solutions? > > How do you distinguish between kvm pages and non-kvm anonymous pages? > More importantly, why should you? > > Jeff, do you see the refaults on Nehalem systems? If so, that's > likely due to the lack of an accessed bit on EPT pagetables. It would > be interesting to compare with Barcelona (which does). > > If that's indeed the case, we can have the EPT ageing mechanism give > pages a bit more time around by using an available bit in the EPT PTEs > to return accessed on the first pass and not-accessed on the second. > The attached patch implements this. -- error compiling committee.c: too many arguments to function