mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Con Kolivas <kernel@kolivas.org>
To: linux-kernel@vger.kernel.org
Cc: akpm@osdl.org
Subject: [PATCH][2.6.8-rc1-mm1] Autotune swappiness01
Date: Mon, 26 Jul 2004 10:25:20 +1000	[thread overview]
Message-ID: <cone.1090801520.852584.20693.502@pc.kolivas.org> (raw)

[-- Attachment #1: Type: text/plain, Size: 1116 bytes --]

Attached is a patch designed to improve the behaviour of the swappiness knob 
in 2.6.8-rc1-mm1. 

The current mechanism decides to reclaim mapped pages based on the 
combination of mapped_ratio/2 and the manual setting of swappiness currently 
tuned to 60. Biasing this mechanism to be proportional to the square root of 
mapped_ratio gives good overall performance improvement for desktop 
workloads without any noticable detriment to other loads. It has the effect 
of being fairly aggressive at avoiding loss of applications to swap under 
conditions of heavy or sustained file stress while allowing applications to 
swap out under what would be considered "application" memory stresses on a 
desktop. It has no measurable effect on any known benchmarks.

The swappiness knob is kept intact and ironically is set to the same value 
of 60, and overall behaves the same as previous patches posted for 
autoregulating swappiness. The idea of this patch is to ultimately deprecate 
the need for a swappiness knob if this achieves good performance in most 
workloads.

Signed-off-by: Con Kolivas <kernel@kolivas.org>


[-- Attachment #2: Autotune Swappiness --]
[-- Type: text/plain, Size: 1229 bytes --]

Index: linux-2.6.8-rc1/mm/vmscan.c
===================================================================
--- linux-2.6.8-rc1.orig/mm/vmscan.c	2004-07-15 09:59:34.820962044 +1000
+++ linux-2.6.8-rc1/mm/vmscan.c	2004-07-15 10:03:06.243433612 +1000
@@ -119,6 +119,7 @@
  * From 0 .. 100.  Higher means more swappy.
  */
 int vm_swappiness = 60;
+static int mapped_bias;
 static long total_memory;
 
 static LIST_HEAD(shrinker_list);
@@ -646,6 +647,7 @@
 	struct page *page;
 	struct pagevec pvec;
 	int reclaim_mapped = 0;
+	int swappiness_bias;
 	long mapped_ratio;
 	long distress;
 	long swap_tendency;
@@ -690,6 +692,7 @@
 	 * is mapped.
 	 */
 	mapped_ratio = (sc->nr_mapped * 100) / total_memory;
+	mapped_bias = mapped_ratio * mapped_ratio;
 
 	/*
 	 * Now decide how much we really want to unmap some pages.  The mapped
@@ -700,7 +703,9 @@
 	 *
 	 * A 100% value of vm_swappiness overrides this algorithm altogether.
 	 */
-	swap_tendency = mapped_ratio / 2 + distress + vm_swappiness;
+	swappiness_bias = vm_swappiness * vm_swappiness / 100;
+	swappiness_bias = 101 - swappiness_bias;
+	swap_tendency = distress + mapped_bias / swappiness_bias;
 
 	/*
 	 * Now use this metric to decide whether to start moving mapped memory

             reply	other threads:[~2004-07-26  0:25 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-07-26  0:25 Con Kolivas [this message]
2004-07-26  0:36 ` Andrew Morton
2004-07-26  0:43   ` Con Kolivas
2004-07-26  0:48     ` Andrew Morton
2004-07-26  1:01       ` Con Kolivas
2004-07-26  1:09         ` Con Kolivas
2004-07-26  8:52           ` R. J. Wysocki
2004-07-26  9:31             ` Con Kolivas
2004-07-26 10:34               ` R. J. Wysocki
2004-07-26 10:29                 ` Con Kolivas
2004-07-26 10:54                   ` R. J. Wysocki
2004-07-26 11:03                     ` Con Kolivas
2004-07-26 11:13                       ` Nick Piggin
2004-07-26 11:17                         ` Con Kolivas
2004-07-26 11:47                           ` Nick Piggin
2004-07-26 13:53                             ` R. J. Wysocki
2004-07-26 18:45                               ` Adam Kropelin
2004-07-26 18:53                                 ` R. J. Wysocki
2004-07-26 17:55                     ` Gerrit Huizenga
2004-07-26 20:29     ` Joel Becker
2004-07-26 20:42       ` Andrew Morton
2004-07-26 22:58         ` Con Kolivas
2004-07-27  0:52           ` Clemens Schwaighofer
2004-07-27  1:09             ` Andrew Morton
2004-07-27  1:17               ` Clemens Schwaighofer
2004-07-27  2:03                 ` Tim Connors
2004-07-27  2:43                   ` Con Kolivas
2004-07-27  3:02                     ` Tim Connors
2004-07-27  3:43                       ` Clemens Schwaighofer
2004-07-27  3:47                       ` Joel Becker
2004-07-27 15:32                         ` William Lee Irwin III
2004-07-27  3:41                   ` Clemens Schwaighofer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cone.1090801520.852584.20693.502@pc.kolivas.org \
    --to=kernel@kolivas.org \
    --cc=akpm@osdl.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®