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: Mel Gorman
Date: Wednesday, March 24, 2010 - 7:50 am

On Tue, Mar 23, 2010 at 06:29:59PM -0400, Rik van Riel wrote:

That is easily possible. Note, I'm not maintaining this workload configuration
is a good idea.

The background to this problem is Christian running a disk-intensive iozone
workload over many CPUs and disks with limited memory. It's already known
that if he added a small amount of extra memory, the problem went away.
The problem was a massive throughput regression and a bisect pinpointed
two patches (both mine) but neither make sense. One altered the order pages
come back from lists but not availability and his hardware does no automatic
merging. A second does alter the availility of pages via the per-cpu lists
but reverting the behaviour didn't help.

The first fix to this was to replace congestion_wait with a waitqueue
that woke up processes if the watermarks were met. This fixed
Christian's problem but Andrew wants to pin the underlying cause.

I strongly suspect that evict-once behaves sensibly when memory is ample
but in this particular case, it's not helping.


Possibly. The tests have a write and a read phase but I wasn't
collecting the data with sufficient granularity to see which of the
tests are actually stalling.


Indeed. With or without evict-once, I'd have an expectation of all the
pages being recycled anyway because of the amount of data involved.


Bah. I had the initial revert right and screwed up reverting from
2.6.32.10 on. I'm rerunning the tests. Is this right?

-       if (is_active_lru(lru)) {
-               if (inactive_list_is_low(zone, sc, file))
-                   shrink_active_list(nr_to_scan, zone, sc, priority, file);
+       if (is_active_lru(lru)) {
+               shrink_active_list(nr_to_scan, zone, sc, priority, file);
                return 0;



I'm rerunning the revertevict patches at the moment. When they complete,
I'll experiment with dirty limits. Any suggested values or will I just
increase it by some arbitrary amount and see what falls out? e.g.
increse dirty_ratio to 80.


/me slaps self

-- 
Mel Gorman
Part-time Phd Student                          Linux Technology Center
University of Limerick                         IBM Dublin Software Lab
--
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 ..., Mel Gorman, (Wed Mar 24, 7:50 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)