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/
next prev parent 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.