Re: One more bio for for floppy users in 2.5.33..

From: Linus Torvalds (torvalds@transmeta.com)
Date: Thu Sep 05 2002 - 13:28:28 EST


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.

So limiting bio's fundamentally _cannot_ do the right thing. While adding
two lines of code _can_.

> Well I'd be interested in knowing specifically what is wrong with the
> behaviour of 2.5.33 against a floppy disk.

Try it (not plain 2.5.33, but current BK where floppy actually works). It
works, but reading a single sector will pause until it has read several
tracks. Even though the sector came back much earlier.

Also, you missed the error case argument. Right now we _cannot_ handle
error cases for partial transfers AT ALL. The bio interface simply does
not support it. And there is no way you can fix that with the current
interface. While the partial completion case allows for at least partial
recovery.

Andrew, give it up. The current interface _sucks_.

> 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?

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

                        Linus

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Sep 07 2002 - 22:00:26 EST