public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@zip.com.au>
To: Linus Torvalds <torvalds@transmeta.com>
Cc: Suparna Bhattacharya <suparna@in.ibm.com>,
	Jens Axboe <axboe@suse.de>,
	linux-kernel@vger.kernel.org
Subject: Re: One more bio for for floppy users in 2.5.33..
Date: Thu, 05 Sep 2002 11:42:23 -0700	[thread overview]
Message-ID: <3D77A58F.B35779A1@zip.com.au> (raw)
In-Reply-To: Pine.LNX.4.33.0209051120100.1307-100000@penguin.transmeta.com

Linus Torvalds wrote:
> 
> On Thu, 5 Sep 2002, Andrew Morton wrote:
> >
> > OK.  But still, I don't see why we need partial BIO completions.  If
> > we say that the basic unit of completion is a whole BIO, then readahead
> > can then manage latency via the outgoing bio size.
> 
> But that's horrible. The floppy driver can take huge bio's no problem, and
> limiting bio sizes to track sizes would be a huge pain in the driver for
> no good reason. In fact, it would be pretty much impossible, since the
> tracks aren't even page-aligned.

erp.  Yes, a BIO can span several tracks.  I see the point.

> ...
> > In the testing I did a few weeks back, everything checked out.  An
> > application which was reading the raw device at 95% of media bandwidth
> > never blocked.  An application which was capable of processing data at
> > 120% of media bandwidth achieved 100%.
> 
> And an application that only wanted one sector? To notice that the
> filesystem is of the wrong type, for example?

OK.  That's the initial-64k thing.  If you read 512 bytes from /dev/fd0,
readahead will go and issue a 64k request, and your 512-byte request takes
ages.

> Throughput is _secondary_ to many latency concerns. And you cannot fix the
> latency with full bio's (see the track issue).

The `nr_of_sectors_completed' would be tricky to handle - we don't know how
to bring the pagecache pages uptodate in response to a 512-byte completion.
We'd have to teach the pagecache read functions to permit userspace to read
from non-uptodate pages by looking at the buffer_head state.  And then
look at buffer_req to distinguish "this part of the page hasn't been read yet"
from "this part of the page had an IO error".  Ick.

It would be simpler if it was nr_of_pages_completed.

  parent reply	other threads:[~2002-09-05 18:39 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-09-03 18:00 One more bio for for floppy users in 2.5.33 Linus Torvalds
2002-09-03 18:02 ` Jens Axboe
2002-09-04  7:25   ` Suparna Bhattacharya
2002-09-04 16:36     ` Linus Torvalds
2002-09-05  7:03       ` Suparna Bhattacharya
2002-09-05 15:06         ` Linus Torvalds
2002-09-05 16:26           ` Andrew Morton
2002-09-05 17:05             ` Linus Torvalds
2002-09-05 18:00               ` Andrew Morton
2002-09-05 18:28                 ` Linus Torvalds
2002-09-05 18:31                   ` Jens Axboe
2002-09-05 18:38                     ` Linus Torvalds
2002-09-05 18:38                       ` Jens Axboe
2002-09-05 19:47                         ` Peter Osterlund
2002-09-05 18:42                   ` Andrew Morton [this message]
2002-09-05 19:03                     ` Linus Torvalds
2002-09-05 19:35                       ` Andrew Morton
2002-09-05 20:27                         ` Linus Torvalds
2002-09-05 20:38                           ` Linus Torvalds
2002-09-06  6:47                           ` Helge Hafting
2002-09-06  6:59                             ` Linus Torvalds
2002-09-09 14:08                               ` Bob_Tracy
2002-09-05 20:48                         ` Linus Torvalds
2002-09-10  7:25                       ` Rogier Wolff
2002-09-10  8:01                         ` Andrew Morton
2002-09-07 11:18                     ` Daniel Phillips
2002-09-03 20:57 ` Mikael Pettersson
2002-09-03 21:52   ` Linus Torvalds
2002-09-03 22:33     ` Mikael Pettersson
  -- strict thread matches above, loose matches on Subject: below --
2002-09-07 14:43 linux

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=3D77A58F.B35779A1@zip.com.au \
    --to=akpm@zip.com.au \
    --cc=axboe@suse.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=suparna@in.ibm.com \
    --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