On Thu, 2017-03-09 at 10:12 +0100, Michal Hocko wrote:
On Wed 08-03-17 10:54:57, Rik van Riel wrote:
quoted
In fact, false OOM kills with that kind of workload is
how we ended up getting the "too many isolated" logic
in the first place.
Right, but the retry logic was considerably different than what we
have these days. should_reclaim_retry considers amount of reclaimable
memory. As I've said earlier if we see a report where the oom hits
prematurely with many NR_ISOLATED* we know how to fix that.
Would it be enough to simply reset no_progress_loops
in this check inside should_reclaim_retry, if we know
pageout IO is pending?
if (!did_some_progress) {
unsigned long write_pending;
write_pending =
zone_page_state_snapshot(zone,
NR_ZONE_WRITE_P
ENDING);
if (2 * write_pending > reclaimable) {
congestion_wait(BLK_RW_ASYNC,
HZ/10);
return true;
}
}
--
All rights reversed