Nikita Danilov wrote:
Probably I am missing something, but I don't see how that can help. For
example, suppose (for simplicity) that we have swappiness of 100%, and
that fraction of referenced anon pages gets slightly less than of file
pages. get_scan_ratio() increases anon_percent, and shrink_zone() starts
scanning anon queue more aggressively. As a result, pages spend less
time there, and have less chance of ever being accessed, reducing
fraction of referenced anon pages further, and triggering further
increase in the amount of scanning, etc. Doesn't this introduce positive
feed-back loop?
It's a possibility, but I don't think it will be much of an
issue in practice.
If it is, we can always use refaults as a correcting
mechanism - which would have the added benefit of being
able to do streaming IO without putting any pressure on
the active list, essentially clock-pro replacement with
just some tweaks to shrink_list()...