Messages in this thread Patch in this message | | | Date | Tue, 21 Dec 2004 18:49:13 -0500 | From | Chuck Ebbert <> | Subject | Re: Linux 2.6.9-ac16 |
| |
Chuck Ebbert wrote:
> 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.
OK here's one that actually compiles. (3AM was not a good time to be making patches.)
# mm_swap_token_disable.patch # include/linux/swap.h -0 +1 # mm/rmap.c -0 +3 # mm/thrash.c -1 +4 # # NOTE: On 2.6.9 there is no sysctl to change # swap_token_default_timeout. # # Based on a patch by Con Kolivas for 2.6.10 # Backported to 2.6.9 by Chuck Ebbert <76306.1226@compuserve.com> # --- 2.6.9.1/include/linux/swap.h +++ 2.6.9.2/include/linux/swap.h @@ -230,6 +230,7 @@ /* linux/mm/thrash.c */ extern struct mm_struct * swap_token_mm; +extern unsigned long swap_token_default_timeout; extern void grab_swap_token(void); extern void __put_swap_token(struct mm_struct *); --- 2.6.9.1/mm/rmap.c +++ 2.6.9.2/mm/rmap.c @@ -394,6 +394,9 @@ int page_referenced(struct page *page, i { int referenced = 0; + if (!swap_token_default_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,11 @@ 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. + */ +unsigned long swap_token_default_timeout = SWAP_TOKEN_TIMEOUT; /* * Take the token away if the process had no page faults _ -- 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/
| |