On Thu, Aug 26, 2010 at 10:00 PM, Minchan Kim <minchan.kim@xxxxxxxxx> wrote: > > On Fri, Aug 27, 2010 at 12:31 PM, Ying Han <yinghan@xxxxxxxxxx> wrote: > > On Thu, Aug 26, 2010 at 6:03 PM, Minchan Kim <minchan.kim@xxxxxxxxx> wrote: > >> > >> Hello. > >> > >> On Fri, Aug 27, 2010 at 9:11 AM, Ying Han <yinghan@xxxxxxxxxx> wrote: > >> > Fix a missed place where checks nr_swap_pages to do shrink_active_list. Make the > >> > change that moves the check to common function inactive_anon_is_low. > >> > > >> > >> Hmm.. AFAIR, we discussed it at that time but we concluded it's not good. > >> That's because nr_swap_pages < 0 means both "NO SWAP" and "NOT enough > >> swap space now". If we have a swap device or file but not enough space > >> now, we need to aging anon pages to make inactive list enough size. > >> Otherwise, working set pages would be swapped out more fast before > >> promotion. > > > > We found the problem on one of our workloads where more TLB flush > > happens without the change. Kswapd seems to be calling > > shrink_active_list() which eventually clears access bit of those ptes > > and does TLB flush > > with ptep_clear_flush_young(). This system does not have swap > > configured, and why aging the anon lru in that > > case? > > True. I also wanted it but we have to care swap configured but > non-enabling still yet system as well as non-swap configured system at > that time. Agree. In our case, we cares about the case where swap is not enabled but is configured . > > If your system is no swap configured, how about this? > (It's a not formal proper patch but just quick patch to show the concept)