linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Alex Bligh - linux-kernel <linux-kernel@alex.org.uk>
To: Andrew Morton <akpm@digeo.com>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org
Cc: Alex Bligh - linux-kernel <linux-kernel@alex.org.uk>
Subject: Re: 2.5.59-mm5
Date: Fri, 24 Jan 2003 11:03:28 -0000	[thread overview]
Message-ID: <946253340.1043406208@[192.168.100.5]> (raw)
In-Reply-To: <20030123195044.47c51d39.akpm@digeo.com>


--On 23 January 2003 19:50 -0800 Andrew Morton <akpm@digeo.com> wrote:

>   So what anticipatory scheduling does is very simple: if an application
>   has performed a read, do *nothing at all* for a few milliseconds.  Just
>   return to userspace (or to the filesystem) in the expectation that the
>   application or filesystem will quickly submit another read which is
>   closeby.

I'm sure this is a really dumb question, as I've never played
with this subsystem, in which case I apologize in advance.

Why not follow (by default) the old system where you put the reads
effectively at the back of the queue. Then rather than doing nothing
for a few milliseconds, you carry on with doing the writes. However,
promote the reads to the front of the queue when you have a "good
lump" of them. If you get further reads while you are processing
a lump of them, put them behind the lump. Switch back to the putting
reads at the end when we have done "a few lumps worth" of
reads, or exhausted the reads at the start of the queue (or
perhaps are short of memory).

IE (with a "lump" = 20) and "a few" = 3.

W0 W1 W2 ... W50 W51

[Read arrives, we process some writes]

W5 ... W50 W51 R0

[More reads arrive, more writes processed]

W10 ... W50 W51 R0 R1 R2 .. R7

[Haven't got a big enough lump, but a
write arrives]

W12 W13... W50 W51 W52 R0 R1 R2 .. R7

[More reads arrive, more writes processed]

W14 W15 ... W50 W51 W52 R0 R1 R2 .. R7 R8 R9.. R19

[Another read arrives, after 4 more writes have
been processed, and we move the lump to the
front]

R0 R1 R2 .. R7 R8 R9.. R19 R20 W18 W19 ... W50 W51 W52

[Some reads are processed, and some more arrive, which
we insert into our lump at the front]

R0 R1 R2 .. R7 R8 R9.. R19 R20 R21 R22 W18 W19 ... W50 W51 W52

Then either if the reads are processed at the front of
the queue faster than they arrive, and the "lump" disappears,
or if we've processed 3 x 20 = 60 reads, we revert to
sticking reads back at the end.

All this does is lump between 20 and 60 reads together.

The advantage being that you don't "do nothing" for a few
milliseconds, and can attract larger lumps, than by
waiting without incurring additional latency.

Now of course you have the ordering problem (in that I've
assumed you can insert things into the queue at will),
but you have that anyway.

--
Alex Bligh
--
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-mm.org/

  reply	other threads:[~2003-01-24 11:03 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-01-24  3:50 2.5.59-mm5 Andrew Morton
2003-01-24 11:03 ` Alex Bligh - linux-kernel [this message]
2003-01-24 11:16   ` 2.5.59-mm5 Andrew Morton
2003-01-24 11:23     ` 2.5.59-mm5 Alex Tomas
2003-01-24 11:50       ` 2.5.59-mm5 Andrew Morton
2003-01-24 12:05         ` 2.5.59-mm5 Alex Tomas
2003-01-24 19:12           ` 2.5.59-mm5 Andrew Morton
2003-01-24 19:58             ` 2.5.59-mm5 Alex Tomas
2003-01-25 17:32             ` 2.5.59-mm5 Ed Tomlinson
2003-01-25 17:41               ` 2.5.59-mm5 Andrew Morton
2003-01-25 20:34                 ` 2.5.59-mm5 Ed Tomlinson
2003-01-25 22:33                   ` 2.5.59-mm5 Andrew Morton
2003-01-26  1:43                     ` 2.5.59-mm5 Ed Tomlinson
2003-01-26  2:17                       ` 2.5.59-mm5 Andrew Morton
2003-01-26  3:51                         ` 2.5.59-mm5 Ed Tomlinson
2003-01-26  4:04                           ` 2.5.59-mm5 Andrew Morton
2003-01-24 15:56         ` 2.5.59-mm5 Oliver Xymoron
2003-01-24 16:04           ` 2.5.59-mm5 Nick Piggin
2003-01-24 17:09             ` 2.5.59-mm5 Giuliano Pochini
2003-01-24 17:22               ` 2.5.59-mm5 Nick Piggin
2003-01-24 19:34                 ` 2.5.59-mm5 Valdis.Kletnieks
2003-01-24 20:04                   ` 2.5.59-mm5 Jens Axboe
2003-01-24 22:02                     ` 2.5.59-mm5 Valdis.Kletnieks
2003-01-25 12:28                       ` 2.5.59-mm5 Jens Axboe
2003-01-24 12:14     ` 2.5.59-mm5 Nikita Danilov
2003-01-24 16:00       ` 2.5.59-mm5 Nick Piggin
2003-01-24 11:23   ` 2.5.59-mm5 Jens Axboe
2003-01-24 13:59 ` 2.5.59-mm5 got stuck during boot Helge Hafting
2003-01-24 17:44   ` Ed Tomlinson
2003-01-24 17:56     ` Nick Piggin
2003-01-24 19:18       ` Ed Tomlinson
2003-01-25  8:33 ` 2.5.59-mm5 Andres Salomon

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='946253340.1043406208@[192.168.100.5]' \
    --to=linux-kernel@alex.org.uk \
    --cc=akpm@digeo.com \
    --cc=linux-kernel@vger.kernel.org \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox