patch-2.3.48 linux/Documentation/vm/balance
Next file: linux/MAINTAINERS
Previous file: linux/Documentation/pm.txt
Back to the patch index
Back to the overall index
- Lines: 25
- Date:
Sat Feb 26 20:50:34 2000
- Orig file:
v2.3.47/linux/Documentation/vm/balance
- Orig date:
Fri Jan 28 15:09:06 2000
diff -u --recursive --new-file v2.3.47/linux/Documentation/vm/balance linux/Documentation/vm/balance
@@ -68,11 +68,23 @@
probably because all allocation requests are coming from intr context
and all process contexts are sleeping. For 2.3, kswapd does not really
need to balance the highmem zone, since intr context does not request
-highmem pages. A zone aware kswapd still needs to be implemented.
+highmem pages. kswapd looks at the zone_wake_kswapd field in the zone
+structure to decide whether a zone needs balancing.
Page stealing from process memory and shm is done if stealing the page would
alleviate memory pressure on any zone in the page's node that has fallen below
its watermark.
+
+pages_min/pages_low/pages_high/low_on_memory/zone_wake_kswapd: These are
+per-zone fields, used to determine when a zone needs to be balanced. When
+the number of pages falls below pages_min, the hysteric field low_on_memory
+gets set. This stays set till the number of free pages becomes pages_high.
+When low_on_memory is set, page allocation requests will try to free some
+pages in the zone (providing GFP_WAIT is set in the request). Orthogonal
+to this, is the decision to poke kswapd to free some zone pages. That
+decision is not hysteresis based, and is done when the number of free
+pages is below pages_low; in which case zone_wake_kswapd is also set.
+
(Good) Ideas that I have heard:
1. Dynamic experience should influence balancing: number of failed requests
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)