Messages in this thread Patch in this message | | | Date | Tue, 21 Dec 2004 04:11:41 -0500 | From | Chuck Ebbert <> | Subject | Re: Linux 2.6.9-ac16 |
| |
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 > sane.
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.
=================================================================================== # mm_swap_token_timeout.patch # # 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 # --- 2.6.9.1/mm/rmap.c +++ 2.6.9.2/mm/rmap.c @@ -395,6 +395,9 @@ int page_referenced(struct page *page, i { int referenced = 0; + if (!SWAP_TOKEN_TIMEOUT) + ignore_token = 1; + if (page_test_and_clear_young(page)) referenced++; --- 2.6.9.1/mm/thrash.c +++ 2.6.9.2/mm/thrash.c @@ -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@osdl.org> # --- # # 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->all_unreclaimable) continue; 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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |