Messages in this thread | | | Date | Tue, 07 Jul 2009 14:59:29 -0400 | From | Rik van Riel <> | Subject | Re: [RFC PATCH 1/2] vmscan don't isolate too many pages |
| |
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 :)
| |