Re: [RFC PATCH 1/2] vmscan don't isolate too many pages

From: Rik van Riel
Date: Tue Jul 07 2009 - 14:59:48 EST


KOSAKI Motohiro wrote:

FAQ
-------
Q: Why do you compared zone accumulate pages, not individual zone pages?
A: If we check individual zone, #-of-reclaimer is restricted by smallest zone.
it mean decreasing the performance of the system having small dma zone.

That is a clever solution! I was playing around a bit with
doing it on a per-zone basis. Your idea is much nicer.

However, I can see one potential problem with your patch:

+ nr_inactive += zone_page_state(zone, NR_INACTIVE_ANON);
+ nr_inactive += zone_page_state(zone, NR_INACTIVE_FILE);
+ nr_isolated += zone_page_state(zone, NR_ISOLATED_ANON);
+ nr_isolated += zone_page_state(zone, NR_ISOLATED_FILE);
+ }
+
+ return nr_isolated > nr_inactive;

What if we ran out of swap space, or are not scanning the
anon list at all for some reason?

It is possible that there are no inactive_file pages left,
with all file pages already isolated, and your function
still letting reclaimers through.

This means you could still get a spurious OOM.

I guess I should mail out my (ugly) approach, so we can
compare the two :)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/