Linux Operating System Source Code: IBM Patches

 
per-zone kswapd
Description:
This patch implements a kswapd process for each memory zone.  The original
code
came from Bill Irwin, but the current VM is quite a bit different from the one
that he wrote it for, so not much remains.  The current kswapd interface is
much
more simple than before because there is a single waitqueue and there is a
single place where it is emptied.

kswapd_can_sleep() and kswapd_balance() are simpler now that the extra pgdat
level of indirection is gone.

Tested on 8-way PIII with highmem off and then 4GB support.  With 4GB support,
I
did 20 parallel greps through a 10GB fileset while some other processes
allocated and freed 1-2GB chunks of memory.  That gave kswapd a good workout,
and I observed it running the zone Highmem and zone Normal kswapd threads. 
So,
it survives my torture test.  It also removes more code than it adds.

include/linux/mmzone.h |    2 +
include/linux/swap.h   |    1
mm/page_alloc.c        |   11 +++++-
mm/vmscan.c            |   88
+++++++++++++++++--------------------------------
4 files changed, 42 insertions(+), 60 deletions(-)
Developer:
Dave Hansen
Status:
Included in project
Release Included:
2.5.40

Notes:
Patched against Andrew Morton's -mm tree
Release Notes Date Files
20020913 Release Notes 2002-09-13  
  File Notes   per-zone-kswapd-2.5.34-mm2-3.patch.gz