mm: swap-token: add a comment for priority aging
KOSAKI Motohiro [Tue, 26 Jul 2011 00:12:08 +0000 (17:12 -0700)]
Document some swap token aging design decisions.

Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Acked-by: Rik van Riel <riel@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

mm/thrash.c

index 42ffb01..e53f7d0 100644 (file)
@@ -67,6 +67,17 @@ void grab_swap_token(struct mm_struct *mm)
        if (!swap_token_mm)
                goto replace_token;
 
+       /*
+        * Usually, we don't need priority aging because long interval faults
+        * makes priority decrease quickly. But there is one exception. If the
+        * token owner task is sleeping, it never make long interval faults.
+        * Thus, we need a priority aging mechanism instead. The requirements
+        * of priority aging are
+        *  1) An aging interval is reasonable enough long. Too short aging
+        *     interval makes quick swap token lost and decrease performance.
+        *  2) The swap token owner task have to get priority aging even if
+        *     it's under sleep.
+        */
        if ((global_faults - last_aging) > TOKEN_AGING_INTERVAL) {
                swap_token_mm->token_priority /= 2;
                last_aging = global_faults;