Re: [RFC PATCH 0/3] Avoid the use of congestion_wait under zone pressure

From: Christian Ehrhardt
Date: Fri Mar 12 2010 - 07:15:25 EST


Mel Gorman wrote:
On Fri, Mar 12, 2010 at 02:05:26AM -0500, Andrew Morton wrote:
On Fri, 12 Mar 2010 07:39:26 +0100 Christian Ehrhardt <ehrhardt@xxxxxxxxxxxxxxxxxx> wrote:


Andrew Morton wrote:
On Mon, 8 Mar 2010 11:48:20 +0000
Mel Gorman <mel@xxxxxxxxx> wrote:
[...]

If not, we broke it again.


We were broken with respect to this in the first place. That
cond_reched() is badly placed and waiting on congestion when congestion
might not be involved is also a bit odd.

It's possible that Christian's specific problem would also be addressed
by the following patch. Christian, willing to test?

Will is here, but no chance before monday/tuesday to get a free machine slot - I'll post results as soon as I get them.

It still feels a bit unnatural though that the page allocator waits on
congestion when what it really cares about is watermarks. Even if this
patch works for Christian, I think it still has merit so will kick it a
few more times.

In whatever way I can look at it watermark_wait should be supperior to congestion_wait. Because as Mel points out waiting for watermarks is what is semantically correct there.

If there eventually some day comes a solution without any of those waits I'm fine too - e.g. by closing whatever races we have and fixing that one context can never run into this in direct_reclaim:
1. free pages with try_to_free
2. not getting one in the subsequent get_page call

But as long as we have a wait - watermark waiting > congestion waiting (IMHO).

==== CUT HERE ====
page-allocator: Attempt page allocation immediately after direct reclaim
[...]
--

Grüsse / regards, Christian Ehrhardt
IBM Linux Technology Center, System z Linux Performance
--
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/