On Wed, May 11, 2022 at 07:05:23PM -0700, Andrew Morton wrote: > On Wed, 11 May 2022 15:57:09 -0700 Minchan Kim <minchan@xxxxxxxxxx> wrote: > > > > > > > Could we burn much CPU time pointlessly churning though the LRU? Could > > > it mess up aging decisions enough to be performance-affecting in any > > > workload? > > > > Yes, correct. However, we are already churning LRUs by several > > ways. For example, isolate and putback from LRU list for page > > migration from several sources(typical example is compaction) > > and trylock_page and sc->gfp_mask not allowing page to be > > reclaimed in shrink_page_list. > > Well. "we're already doing a risky thing so it's OK to do more of that > thing"? I meant the aging is not rocket science. > > > > > > > Something else? > > > > One thing I am worry about was the granularity of the churning. > > Example above was page granuarity churning so might be execuse > > but this one is address space's churning, especically for file LRU > > (i_mmap_rwsem) which might cause too many rotating and live-lock > > in the end(keey rotating in small LRU with heavy memory pressure). > > > > If it could be a problem, maybe we use sc->priority to stop > > the skipping on a certain level of memory pressure. > > > > Any thought? Do we really need it? > > Are we able to think of a test which might demonstrate any worst case? > Whip that up and see what the numbers say? Yeah, let me create a worst test case to see how it goes. A thread keep reading a file-backed vma with 2xRAM file but other threads keep changing other vmas mapped at the same file so heavy i_mmap_rwsem contention in aging path. > > It's a bit of a drag, but if we don't do it, our users surely will ;)