diff options
author | alc <alc@FreeBSD.org> | 2015-09-27 04:36:09 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2015-09-27 04:36:09 +0000 |
commit | 40b680d8ca087b9703e5fa3db21fdbc342f4ad36 (patch) | |
tree | c8e75e7055bedb82b9ef69dc060ffa900691ecb9 /usr.bin/lorder | |
parent | ecb8678c0ac92b2653c1a120858f827cbec9b8f6 (diff) | |
download | FreeBSD-src-40b680d8ca087b9703e5fa3db21fdbc342f4ad36.zip FreeBSD-src-40b680d8ca087b9703e5fa3db21fdbc342f4ad36.tar.gz |
MFC r285282
The intention of r254304 was to scan the active queue continuously.
However, I've observed the active queue scan stopping when there are
frequent free page shortages and the inactive queue is steadily refilled
by other mechanisms, such as the sequential access heuristic in vm_fault()
or madvise(2). To remedy this problem, record the time of the last active
queue scan, and always scan a number of pages proportional to the time
since the last scan, regardless of whether that last scan was a
timeout-triggered ("pass == 0") or free-page-shortage-triggered ("pass >
0") scan.
Also, on a timeout-triggered scan, allow a full scan of the active queue
when the system is short of inactive pages.
Diffstat (limited to 'usr.bin/lorder')
0 files changed, 0 insertions, 0 deletions