Thread (8 messages) 8 messages, 4 authors, 2001-07-17

Re: [PATCH] Separate global/perzone inactive/free shortage

From: Marcelo Tosatti <hidden>
Date: 2001-07-17 01:33:39
Also in: lkml

On Mon, 16 Jul 2001, Kanoj Sarcar wrote:
quoted hunk ↗ jump to hunk
--- Marcelo Tosatti <marcelo@conectiva.com.br> wrote:
quoted
Hi,

As well known, the VM does not make a distiction
between global and
per-zone shortages when trying to free memory. That
means if only a given
memory zone is under shortage, the kernel will scan
pages from all zones. 

The following patch (against 2.4.6-ac2), changes the
kernel behaviour to
avoid freeing pages from zones which do not have an
inactive and/or
free shortage.

Now I'm able to run memory hogs allocating 4GB of
memory (on 4GB machine)
without getting real long hangs on my ssh session.
(which used to happen
on stock -ac2 due to exhaustion of DMA pages for
networking).

Comments ? 

Dirk, Can you please try the patch and tell us if it
fixes your problem ? 
Just a quick note. A per-zone page reclamation
method like this was what I had advocated and sent
patches to Linus for in the 2.3.43 time frame or so.
I think later performance work ripped out that work.
I guess the problem is that a lot of the different
page reclamation schemes first of all do not know
how to reclaim pages for a specific zone, and secondly
have to go thru a lot of work before they discover the
page they are trying to reclaim does not belong to the
shortage zone, hence wasting a lot of work/cputime.
try_to_swap_out is a good example, which can be solved
by rmaps. 
Oh sure, rmaps would fix the performance problem caused by this. But I we
dont have rmaps right now, and I doubt we want rmaps for 2.4.

Besides, the performance degradation of doing the perzone
aging/deactivation this way is nothing compared to _not_ doing the thing
on a perzone basis at all, IMHO.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help