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

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Johannes Weiner
Date: Wednesday, March 24, 2010 - 6:13 am

Hi,

On Mon, Mar 22, 2010 at 11:50:54PM +0000, Mel Gorman wrote:

[...]


[...]


[...]


I was wondering why kswapd would not make any progress and stall without
dirty pages, luckily Rik has better eyes than me.

So if he is right and most inactive pages are under IO (thus locked and
skipped) when kswapd is running, we have two choices:

  1) deactivate pages and reclaim them instead
  2) sleep and wait for IO to finish

The patch in question changes 1) to 2) because it won't scan small active
lists and the inactive list does not shrink in size when rotating busy
pages.

You said pg-Rclm is only direct reclaim.  I assume the sum of reclaimed
pages from kswapd and direct reclaim stays in the same ballpark, only
the ratio shifted towards direct reclaim?

Waiting for the disks seems to be better than going after the working set
but I have a feeling we are waiting for the wrong event to happen there.

I am amazingly ignorant when it comes to the block layer, but glancing over
the queue congestion code, it seems we are waiting for the queue to shrink
below a certain threshold.  Is this correct?

When it comes to the reclaim scanner, however, aren't we more interested in
single completions than in the overall state of the queue?

With such a constant stream of IO as in Mel's test, I could imagine that
the queue never really gets below that threshold (here goes the ignorance part)
and we always hit the timeout.  While what we really want is to be woken
up when, say, SWAP_CLUSTER_MAX pages finished since we went to sleep.

Because at that point there is a chance to reclaim some pages again,
even if a lot of requests are still pending.

	Hannes
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: [RFC PATCH 0/3] Avoid the use of congestion_wait under ..., Christian Ehrhardt, (Tue Mar 23, 7:35 am)
Re: [RFC PATCH 0/3] Avoid the use of congestion_wait under ..., Johannes Weiner, (Wed Mar 24, 6:13 am)
Re: [RFC PATCH 0/3] Avoid the use of congestion_wait under ..., Christian Ehrhardt, (Mon Apr 19, 5:22 am)
Re: [RFC PATCH 0/3] Avoid the use of congestion_wait under ..., Christian Ehrhardt, (Tue Apr 20, 12:20 am)
Re: [RFC PATCH 0/3] Avoid the use of congestion_wait under ..., Christian Ehrhardt, (Tue Apr 20, 1:54 am)
Re: [RFC PATCH 0/3] Avoid the use of congestion_wait under ..., Christian Ehrhardt, (Tue Apr 20, 9:23 pm)
Re: [RFC PATCH 0/3] Avoid the use of congestion_wait under ..., Christian Ehrhardt, (Wed Apr 21, 12:35 am)
Re: [RFC PATCH 0/3] Avoid the use of congestion_wait under ..., Christian Ehrhardt, (Wed Apr 21, 11:21 pm)
Subject: [PATCH][RFC] mm: make working set portion that is ..., Christian Ehrhardt, (Mon Apr 26, 3:59 am)
Re: Subject: [PATCH][RFC] mm: make working set portion tha ..., Christian Ehrhardt, (Mon Apr 26, 5:43 am)
Re: Subject: [PATCH][RFC] mm: make working set portion tha ..., Christian Ehrhardt, (Tue Apr 27, 7:00 am)