From: Linus Torvalds <torvalds@transmeta.com>
To: Kanoj Sarcar <kanoj@google.engr.sgi.com>
Cc: riel@nl.linux.org, Russell King <rmk@arm.linux.org.uk>,
linux-mm@kvack.org, linux-kernel@vger.rutgers.edu
Subject: Re: [PATCH] Re: kswapd
Date: Mon, 27 Mar 2000 08:14:34 -0800 (PST) [thread overview]
Message-ID: <Pine.LNX.4.10.10003270807260.1745-100000@penguin.transmeta.com> (raw)
In-Reply-To: <200003270800.AAA65612@google.engr.sgi.com>
On Mon, 27 Mar 2000, Kanoj Sarcar wrote:
>
> This is my reasoning: Rik's patch makes it so that before kswapd
> undertakes heavy weight work, it yields the cpu ... then it checks
> whether it has to do the work (via zone_wake_kswapd). This is the
> only difference over pre3.
No, there's another difference: pre3 will loop forever, even if there is
nothing to do - until something comes up that needs scheduling. Basically,
the pre3 loop boils down to
do {
/* not interesting */
} while (!tsk->need_resched);
when there is enough memory.
Which obviously causes excessive CPU to be wasted.
NOTE! The "obviously" is a bit strong. What happens is that kswapd is only
woken up when needed, so most of the time it is sleeping. It's only when
it is woken up and when it has done its work when the loop turns into a
CPU-burner, but it can easily mean that kswapd will just spend CPU time
for no good reason until its time-slice is exhausted.
So think of the bug as "kswapd will waste the final part of its timeslice
doing nothing useful".
Linus
--
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-03-27 16:14 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <200003261008.LAA16031@raistlin.arm.linux.org.uk>
2000-03-27 0:59 ` Rik van Riel
2000-03-27 1:21 ` Kanoj Sarcar
2000-03-27 2:28 ` Rik van Riel
2000-03-27 2:39 ` Kanoj Sarcar
2000-03-27 6:42 ` Russell King
2000-03-27 6:02 ` Eric W. Biederman
2000-03-27 6:07 ` Linus Torvalds
2000-03-27 8:00 ` Kanoj Sarcar
2000-03-27 14:47 ` Rik van Riel
2000-03-27 16:14 ` Linus Torvalds [this message]
2000-03-27 16:54 ` Mark Hahn
2000-03-27 17:36 ` Linus Torvalds
2000-03-27 17:54 ` Rik van Riel
2000-03-27 18:55 ` Kanoj Sarcar
2000-03-27 18:34 ` Russell King
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=Pine.LNX.4.10.10003270807260.1745-100000@penguin.transmeta.com \
--to=torvalds@transmeta.com \
--cc=kanoj@google.engr.sgi.com \
--cc=linux-kernel@vger.rutgers.edu \
--cc=linux-mm@kvack.org \
--cc=riel@nl.linux.org \
--cc=rmk@arm.linux.org.uk \
/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