All of lore.kernel.org
 help / color / mirror / Atom feed
From: "John Fremlin" <vii@penguinpowered.com>
To: Billy Harvey <Billy.Harvey@thrillseeker.net>,
	Linux Kernel <linux-kernel@vger.rutgers.edu>,
	linux-mm@kvack.org
Subject: Re: [uPatch] Re: Graceful failure?
Date: 05 Jun 2000 21:21:25 +0100	[thread overview]
Message-ID: <m2r9abev5m.fsf@boreas.southchinaseas> (raw)
In-Reply-To: Rik van Riel's message of "Mon, 5 Jun 2000 13:03:08 -0300 (BRST)"

Rik van Riel <riel@conectiva.com.br> writes:

> On Mon, 5 Jun 2000, Billy Harvey wrote:
> 
> > A "make -j" slowly over the course of 5 minutes drives the load
> > to about 30.  At first the degradation is controlled, with
> > sendmail refusing service, but at about 160 process visible in
> > top, top quits updating (set a 8 second updates), showing about
> > 2 MB swap used.  At this point it sounds like the system is
> > thrashing.
> 
> That probably means you're a lot more in swap now and top
> has stopped displaying before you really hit the swap...

Allow me to hype my patch again. Could someone please test it?

It improves performance markedly (no horrible pauses in
vmscan.c:swap_out under heavy load).

> 
> > Is this failure process acceptable?  I'd think the system should
> > react differently to the thrashing, killing off the load
> > demanding user process(es), rather than degrading to a point of
> > freeze.

My patch fixes this for me, please test.

[...]

--- linux-2.4.0t1a7m3/mm/vmscan.c	Sat Jun  3 17:10:15 2000
+++ kernel-hacking/mm/vmscan.c	Sun Jun  4 16:35:31 2000
@@ -361,23 +361,24 @@
 	/* 
 	 * We make one or two passes through the task list, indexed by 
 	 * assign = {0, 1}:
-	 *   Pass 1: select the swappable task with maximal RSS that has
-	 *         not yet been swapped out. 
+	 *
+	 *   Pass 1: select the first swappable task that has not yet
+	 *   been swapped out.
+	 *
 	 *   Pass 2: re-assign rss swap_cnt values, then select as above.
 	 *
 	 * With this approach, there's no need to remember the last task
 	 * swapped out.  If the swap-out fails, we clear swap_cnt so the 
 	 * task won't be selected again until all others have been tried.
 	 *
-	 * Think of swap_cnt as a "shadow rss" - it tells us which process
-	 * we want to page out (always try largest first).
-	 */
+	 * Think of swap_cnt as a "shadow rss" - it tells us which
+	 * process we want to page out (always try largest first).  */
+	
 	counter = (nr_threads << 2) >> (priority >> 2);
 	if (counter < 1)
 		counter = 1;
 
 	for (; counter >= 0; counter--) {
-		unsigned long max_cnt = 0;
 		struct mm_struct *best = NULL;
 		int pid = 0;
 		int assign = 0;
@@ -391,13 +392,14 @@
 	 		if (mm->rss <= 0)
 				continue;
 			/* Refresh swap_cnt? */
-			if (assign == 1)
+			best = mm;
+			pid = p->pid;
+
+			if (assign == 1){
 				mm->swap_cnt = mm->rss;
-			if (mm->swap_cnt > max_cnt) {
-				max_cnt = mm->swap_cnt;
-				best = mm;
-				pid = p->pid;
 			}
+			else
+				break;
 		}
 		read_unlock(&tasklist_lock);
 		if (!best) {


-- 

	http://altern.org/vii
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux.eu.org/Linux-MM/

  reply	other threads:[~2000-06-05 20:21 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <14651.49518.825666.298019@rhino.thrillseeker.net>
2000-06-05 16:03 ` [uPatch] Re: Graceful failure? Rik van Riel
2000-06-05 20:21   ` John Fremlin [this message]
2000-06-06  2:22     ` Billy Harvey

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=m2r9abev5m.fsf@boreas.southchinaseas \
    --to=vii@penguinpowered.com \
    --cc=Billy.Harvey@thrillseeker.net \
    --cc=linux-kernel@vger.rutgers.edu \
    --cc=linux-mm@kvack.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.