From: Andrea Arcangeli <andrea@suse.de>
To: Linus Torvalds <torvalds@transmeta.com>
Cc: Mike Galbraith <mikeg@wen-online.de>,
Anton Blanchard <anton@linuxcare.com.au>,
linux-kernel <linux-kernel@vger.kernel.org>,
Andrew Morton <andrewm@uow.edu.au>
Subject: Re: scheduling problem?
Date: Tue, 2 Jan 2001 21:09:49 +0100 [thread overview]
Message-ID: <20010102210949.C7563@athlon.random> (raw)
In-Reply-To: <Pine.Linu.4.10.10101021542460.648-100000@mikeg.weiden.de> <Pine.LNX.4.10.10101021057040.25012-100000@penguin.transmeta.com>
In-Reply-To: <Pine.LNX.4.10.10101021057040.25012-100000@penguin.transmeta.com>; from torvalds@transmeta.com on Tue, Jan 02, 2001 at 11:02:41AM -0800
On Tue, Jan 02, 2001 at 11:02:41AM -0800, Linus Torvalds wrote:
> What does the system feel like if you just change the "sleep for bdflush"
> logic in wakeup_bdflush() to something like
>
> wake_up_process(bdflush_tsk);
> __set_current_state(TASK_RUNNING);
> current->policy |= SCHED_YIELD;
> schedule();
>
> instead of trying to wait for bdflush to wake us up?
My bet is a `VM: killing' message.
Waiting bdflush back-wakeup is mandatory to do write throttling correctly. The
above will break write throttling at least unless something foundamental is
changed recently and that doesn't seem the case.
What I like to do there is to just make bdflush the same thing that kswapd
_should_ (I said "should" because it seems it's not the case anymore in 2.4.x
from some email I read recently, I didn't checked that myself yet) be for
memory pressure (I implemented that at some point in my private local tree). I
mean: bdflush only does the async writeouts and the task context calls
something like flush_dirty_buffers itself. The main reason I was doing that is
to fix the case of >bdf_prm.ndirty tasks all waiting on bdflush at the same
time (that will break write throttling even now in 2.2.x and in current 2.4.x).
That's an unlukcy condition very similar to the one in GFP that is fixed
correctly in 2.2.19pre2 putting pages in a per-process freelist during memory
balancing.
Andrea
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
next prev parent reply other threads:[~2001-01-02 20:41 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-01-02 8:27 scheduling problem? Mike Galbraith
2001-01-02 14:01 ` Anton Blanchard
2001-01-02 14:59 ` Mike Galbraith
2001-01-02 19:02 ` Linus Torvalds
2001-01-02 20:09 ` Andrea Arcangeli [this message]
2001-01-02 21:02 ` Linus Torvalds
2001-01-02 21:52 ` Andrea Arcangeli
2001-01-02 22:01 ` Linus Torvalds
2001-01-02 22:23 ` Linus Torvalds
2001-01-03 4:48 ` Mike Galbraith
2001-01-03 5:52 ` Linus Torvalds
2001-01-03 7:21 ` Mike Galbraith
2001-01-03 11:30 ` Mike Galbraith
2001-01-02 23:13 ` Daniel Phillips
2001-01-03 4:46 ` Mike Galbraith
2001-01-03 14:20 ` Daniel Phillips
2001-01-03 15:02 ` Mike Galbraith
2001-01-03 14:51 ` Daniel Phillips
2001-01-03 15:39 ` Mike Galbraith
2001-01-03 15:59 ` Daniel Phillips
2001-01-03 2:39 ` Roger Larsson
2001-01-03 5:17 ` Mike Galbraith
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=20010102210949.C7563@athlon.random \
--to=andrea@suse.de \
--cc=andrewm@uow.edu.au \
--cc=anton@linuxcare.com.au \
--cc=linux-kernel@vger.kernel.org \
--cc=mikeg@wen-online.de \
--cc=torvalds@transmeta.com \
/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