From: Andrew Morton <akpm@zip.com.au>
To: Rik van Riel <riel@conectiva.com.br>
Cc: William Lee Irwin III <wli@holomorphy.com>,
lkml <linux-kernel@vger.kernel.org>
Subject: Re: [patch] get_request starvation fix
Date: Fri, 08 Feb 2002 10:28:18 -0800 [thread overview]
Message-ID: <3C6418C2.66308438@zip.com.au> (raw)
In-Reply-To: <3C639060.A68A42CA@zip.com.au> <Pine.LNX.4.33L.0202080935190.17850-100000@imladris.surriel.com>
Rik van Riel wrote:
>
> On Fri, 8 Feb 2002, Andrew Morton wrote:
>
> > + * This all assumes that the rate of taking requests is much, much higher
> > + * than the rate of releasing them. Which is very true.
>
> This is not necessarily true for read requests.
>
> If each read request is synchronous and the process will
> generate the next read request after the current one
> has finished, then it's quite possible to clog up the
> queue with read requests which are generated at exactly
> the same rate as they're processed.
>
> Couldn't this still cause starvation, even with your patch?
No, that's fine.
The problem which the comment refers to is: how to provide
per-process request batching without running off and creating
per-process reservation pools or such.
What I'm relying on is that when a sleeper is woken (at low-water),
there are at least (high-water - low-water) requests available before
get_request will again sleep. And that the woken process will be
able to grab a decent number of those non-blocking requests. I
suspect it's always true, as long as (high-water - low_water) is
"much greater than" the number of CPUs.
The synchronous reader is well-behaved, and should be nicely
FIFO if we're getting low on requests.
-
next prev parent reply other threads:[~2002-02-08 18:29 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-02-08 8:46 [patch] get_request starvation fix Andrew Morton
2002-02-08 8:57 ` Jens Axboe
2002-02-08 9:57 ` Andrew Morton
2002-02-08 9:10 ` Andrew Morton
2002-02-08 11:37 ` Rik van Riel
2002-02-08 18:28 ` Andrew Morton [this message]
2002-02-11 9:41 ` Andrew Morton
2002-02-11 17:35 ` Suparna Bhattacharya
2002-02-11 19:26 ` Andrew Morton
2002-02-14 6:00 ` Suparna Bhattacharya
2002-02-13 0:33 ` Jesse Barnes
-- strict thread matches above, loose matches on Subject: below --
2002-02-08 19:31 Dieter Nützel
[not found] <200202081932.GAA05943@mangalore.zipworld.com.au>
2002-02-08 19:44 ` Andrew Morton
2002-02-08 19:53 ` Dieter Nützel
2002-02-08 20:43 ` Rik van Riel
2002-02-09 1:56 rwhron
2002-02-12 23:13 Andrew Morton
2002-02-13 1:28 ` William Lee Irwin III
2002-02-15 17:23 ` Marcelo Tosatti
2002-02-16 7:32 ` Andrew Morton
2002-02-16 10:13 ` Daniel Phillips
2002-02-16 10:25 ` Andrew Morton
2002-02-13 13:55 rwhron
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=3C6418C2.66308438@zip.com.au \
--to=akpm@zip.com.au \
--cc=linux-kernel@vger.kernel.org \
--cc=riel@conectiva.com.br \
--cc=wli@holomorphy.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