On Wed, Feb 26, 2020 at 01:45:07PM -0800, Matthew Wilcox wrote: > had twice as many entries in it, would that significantly reduce the > thrash of new entries being created". In the page cache, we end up > with a double LRU where once-used entries fall off the list quickly > but twice-or-more used entries get to stay around for a bit longer. > Maybe we could do something like that; keep a victim cache for recently > evicted dentries, and if we get a large hit rate in the victim cache, > expand the size of the primary cache. You know, I've been saying exactly the same thing about the inode LRU in response to people trying to hack behaviour out of the shrinker that is triggered by the working set getting trashed by excessive creation of single use inodes (i.e. large scale directory traversal). IOWs, both have the same problem with working set retention in the face of excessive growth pressure. So, you know, perhaps two caches with the same problem, that use the same LRU implementation, could solve the same problem by enhancing the generic LRU code they use to an active/inactive style clocking LRU like the page LRUs? Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx