Making decisions based on up to 2 s old information.
On Tue, Mar 01, 2022 at 09:21:12AM -0800, Shakeel Butt shakeelb@google.com wrote:
Without flushing the worst that can happen in the refault path is false (or missed) activations of the refaulted page.
Yeah, this may under- or overestimate workingset size (when it's changing), the result is likely only less efficient reclaim.
For reclaim code, some heuristics (like deactivating active LRU or cache-trim) may act on old information.
Here, I'd be more careful whether such a delay cannot introduce some unstable behavior (permanent oscillation in the worst case).
Now, coming to your question, yes, we can remove the flushing from these performance critical codepaths as the stats at most will be 2 second old due to periodic flush.
Another aspect is that people will notice and report such a narrowly located performance regression more easily than reduced/less predictable reclaim behavior. (IMO the former is better, OTOH, it can also be interpreted that noone notices (is able to notice).)
Michal