Re: Linux 2.6.9-ac16
From: Chuck Ebbert
Date: Tue Dec 21 2004 - 04:23:33 EST
Chris Friesen wrote:
> Chuck Ebbert wrote:
> > Nobody has found an answer for the freezes, which persist even in the latest
> > 2.6.10-rc but there's a vm_writeout throttling patch in -ac that I haven't tried.
> Heh. Figures. Those freezes are what bothers me most, since I've already got a
> patch that protects critical processes from being OOM-killed as long as they're
I backported this patch to 2.6.9 but haven't tested it yet. It requires the
'spurious oomkill' patch I posted earlier in this thread. Early reports
are that it stops the freezes during heavy paging.
Also appended is a newer patch from Andrew that may help as well. It's obviously
correct but I haven't done anything with it yet so it may not apply to 2.6.9.
# Disable token-based thrashing control when token
# timeout is zero and make zero the default value.
# NOTE: On 2.6.9 there is no way to change the
# token timeout at runtime like there is on 2.6.10.
# You must edit mm/thrash.c instead.
# Patch by Con Kolivas for 2.6.10-rc3 20 Dec 2004
# Backported to 2.6.9 by Chuck Ebbert
@@ -395,6 +395,9 @@ int page_referenced(struct page *page, i
int referenced = 0;
+ if (!SWAP_TOKEN_TIMEOUT)
+ ignore_token = 1;
@@ -19,7 +19,10 @@ unsigned long swap_token_check;
struct mm_struct * swap_token_mm = &init_mm;
#define SWAP_TOKEN_CHECK_INTERVAL (HZ * 2)
-#define SWAP_TOKEN_TIMEOUT (HZ * 300)
+#define SWAP_TOKEN_TIMEOUT 0
+ * Currently disabled; Needs further code to work at HZ * 300.
* Take the token away if the process had no page faults
# We haven't been incrementing local variable total_scanned since the
# scan_control stuff went in. That broke kswapd throttling.
# Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
# 25-akpm/mm/vmscan.c | 1 +
# 1 files changed, 1 insertion(+)
# diff -puN mm/vmscan.c~vmscan-total_scanned-fix mm/vmscan.c
--- 25/mm/vmscan.c~vmscan-total_scanned-fix 2004-12-20 12:47:25.855643408 -0800
+++ 25-akpm/mm/vmscan.c 2004-12-20 12:47:25.860642648 -0800
@@ -1063,6 +1063,7 @@ scan:
shrink_slab(sc.nr_scanned, GFP_KERNEL, lru_pages);
sc.nr_reclaimed += reclaim_state->reclaimed_slab;
total_reclaimed += sc.nr_reclaimed;
+ total_scanned += sc.nr_scanned;
if (zone->pages_scanned >= (zone->nr_active +
Please take it as a sign of my infinite respect for you,
that I insist on you doing all the work.
-- Rusty Russell
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/