From: Andrew Morton <akpm@zip.com.au>
To: trond.myklebust@fys.uio.no
Cc: Simon Kirby <sim@netnation.com>,
Linus Torvalds <torvalds@transmeta.com>,
linux-kernel@vger.kernel.org, Jens Axboe <axboe@suse.de>
Subject: Re: [patch 6/12] hold atomic kmaps across generic_file_read
Date: Mon, 12 Aug 2002 13:43:19 -0700 [thread overview]
Message-ID: <3D581DE7.59C7A58@zip.com.au> (raw)
In-Reply-To: 15704.4092.969062.891558@charged.uio.no
Trond Myklebust wrote:
>
> >>>>> " " == Andrew Morton <akpm@zip.com.au> writes:
>
> > Simon Kirby wrote:
> >>
> >> On Sun, Aug 11, 2002 at 08:28:12PM -0700, Andrew Morton wrote:
> >>
> >> > So I'd appreciate it if Simon could invetigate a little
> >> > further with the test app I posted. Something is up, and it
> >> > may not be just an NFS thing. But note that nfs_readpage
> >> > will go synchronous if rsize is less than PAGE_CACHE_SIZE, so
> >> > it has to be set up right.
> >>
> >> You're right -- my NFS page size is set to 2048. I can't
> >> remember if I did this because I was trying to work around huge
> >> read-ahead or because I was trying to work around the bursts of
> >> high latency from my Terayon cable modem (which idles at a slow
> >> line speed and "falls forward" to higher speeds once it detects
> >> traffic, but with a delay, causing awful latency at the expense
> >> of "better noise immunity"). Anyway, I will test this
> >> tomorrow. I recall that 1024 byte-sized blocks were too small
> >> because the latency of the cable modem would cause it to not
> >> have high enough throughput, so I settled with 2048.
>
> > OK, thanks.
>
> Sorry if somebody already covered this (I'm still a bit jetlagged so I
> may have missed part of the argument) but if the read is synchronous,
> why should we care about doing readahead at all?
Well, all reads are synchronous, in a way....
In this case, where the application's data-processing bandwidth is
vastly higher than the media bandwidth, readahead isn't doing anything
useful, apart from allowing the submission of nice big chunks to the IO
layers. Batching.
If the application is processing data more slowly then readahead
will allow the IO to be overlapped with that processing. But with
rsize < PAGE_CACHE_SIZE, all NFS reads are synchronous and everything
has gone bad. It may be sensible for NFS to disable readahead
in this case.
> Wasn't the 2.4.x code designed so that you first scheduled the read
> for the page you are interested in, and only if the page was not
> immediately made available would you then schedule some readahead?
2.4 will schedule readahead whether or not the requested page is
uptodate. Same in 2.5.
2.4 readahead has an explicit "don't do more readahead if the
current page is still under IO", whereas 2.5 has "don't readahead
pages in a previously-submitted window". They'll have the same
effect.
next prev parent reply other threads:[~2002-08-12 20:41 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-08-10 0:57 [patch 6/12] hold atomic kmaps across generic_file_read Andrew Morton
2002-08-10 1:33 ` Linus Torvalds
2002-08-10 3:53 ` Andrew Morton
2002-08-10 3:53 ` Linus Torvalds
2002-08-10 6:12 ` Andrew Morton
2002-08-10 7:25 ` Linus Torvalds
2002-08-10 9:08 ` Andrew Morton
2002-08-10 12:44 ` Daniel Phillips
2002-08-10 17:01 ` Linus Torvalds
2002-08-10 18:16 ` Daniel Phillips
2002-08-10 18:32 ` Linus Torvalds
2002-08-10 18:46 ` Daniel Phillips
2002-08-10 14:16 ` Rik van Riel
2002-08-10 17:03 ` Linus Torvalds
2002-08-10 17:36 ` Jamie Lokier
2002-08-10 17:46 ` Linus Torvalds
2002-08-10 17:55 ` Jamie Lokier
2002-08-10 18:42 ` Linus Torvalds
2002-08-10 18:52 ` Jeff Garzik
2002-08-10 19:01 ` Christoph Hellwig
2002-08-10 19:04 ` Jeff Garzik
2002-08-12 15:20 ` Ingo Oeser
2002-08-12 0:18 ` Albert D. Cahalan
2002-08-12 14:11 ` Jeff Garzik
2002-08-12 14:46 ` David Woodhouse
2002-08-10 19:10 ` Jamie Lokier
2002-08-10 22:42 ` Linus Torvalds
2002-08-11 3:17 ` Simon Kirby
2002-08-11 6:07 ` Andrew Morton
2002-08-11 8:46 ` Simon Kirby
2002-08-11 9:36 ` Andrew Morton
2002-08-11 9:49 ` Andrew Morton
2002-08-11 10:28 ` Andrew Morton
2002-08-11 18:52 ` Linus Torvalds
2002-08-12 3:28 ` Andrew Morton
2002-08-12 3:27 ` Linus Torvalds
2002-08-12 4:08 ` Andrew Morton
2002-08-12 6:20 ` Simon Kirby
2002-08-12 6:44 ` Andrew Morton
2002-08-12 19:43 ` Trond Myklebust
2002-08-12 20:43 ` Andrew Morton [this message]
2002-08-11 8:00 ` Daniel Phillips
2002-08-11 19:00 ` Linus Torvalds
2002-08-11 19:43 ` Daniel Phillips
2002-08-11 0:34 ` Andrew Morton
2002-08-11 0:56 ` Linus Torvalds
2002-08-11 1:27 ` Andrew Morton
2002-08-12 7:45 ` Rusty Russell
2002-08-12 9:45 ` Daniel Phillips
2002-08-12 20:29 ` Linus Torvalds
2002-08-12 21:21 ` Daniel Phillips
2002-08-12 17:30 ` Linus Torvalds
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=3D581DE7.59C7A58@zip.com.au \
--to=akpm@zip.com.au \
--cc=axboe@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=sim@netnation.com \
--cc=torvalds@transmeta.com \
--cc=trond.myklebust@fys.uio.no \
/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