From: James Bottomley <James.Bottomley@SteelEye.com>
To: Joerg Schilling <schilling@fokus.gmd.de>
Cc: James.Bottomley@steeleye.com, linux-kernel@vger.kernel.org
Subject: Re: IDE/ATAPI in 2.5
Date: Tue, 16 Jul 2002 04:33:20 -0500 [thread overview]
Message-ID: <200207160933.g6G9XKL02184@localhost.localdomain> (raw)
In-Reply-To: Message from Joerg Schilling <schilling@fokus.gmd.de> of "Tue, 16 Jul 2002 13:28:19 +0200." <200207161128.g6GBSJPE021316@burner.fokus.gmd.de>
schilling@fokus.gmd.de said:
> Why should the character interface be connected to the block layer?
> This would contradict UNIX rules.
Well, first and foremost Linux isn't UNIX, especially where block and
character devices are concerned. But secondly, the block layer provides
command queueing. If any device (SCSI, IDE or more exotic) can't accept a
character command (like QUEUE_FULL in SCSI), it goes back to the block layer
queue to await reissue. It's really exactly a block request without the block
position.
This is actually almost the way linux operates now: all the character tap for
a SCSI tape device does is take the read or write and convert it into an
appropriate SCSI command, which now has a block extent attached. Since we
have all the machinery for handling block command queuing in the block layer,
it makes no sense to duplicate it for the character layer.
> Why should the error handlers interface with the block layer? This is
> not true for UNIX and it would not help. However, it would be nice to
> have a way to make the blocklayer find out that e.g. only the last
> sector of a multi sector read ahead instruction did fail.
Error handling is more than local. Some errors, you are correct, can only be
handled at the SCSI layer. However, a large class of drivers (Think
multi-path or software raid) want the ability to direct how SCSI handles
errors themselves. It is unacceptable to have SCSI all on its own retry a
medium error command x times, taking minutes before the upper layers become
aware anything went wrong.
The solution is to have a stacking error handler where the error handler for
upper devices would be notified of a problem and asked for direction as soon
as it occurs.
> With my proposal, anything that speaks SCSI is used via SCSI commands
> and a generic SCSI driver like scg.c could access the SCSI transport
> aware drives of any type. An important (communication baesed) feature
> of my SCSI glue layer would be to make it possible to insert SCSI
> commands from scg.c without making sd.c believe that something
> strange and unexpected happened to one of it's drives.
But the new scheme allows that. The block queues accept translated requests
(that's really what sg does).
> It would help, if somebody would correct the current SCSI addressng
> scheme used in Linux. Linux currently uses something called BUS/
> channel/target/lun. This does not reflect reality.
No UNIX scheme reflects reality, so I suppose we're all equal
> Why do you believe that you need to have something that is not a
> bumber?
Look at a solaris fibre driver for instance. On the fabric, most of them
think of targets in terms of WWN/PORT (because that's what the fibre LIP
uses). They then have an internal database to translate what they use
(WWN/PORT, soft loop ID, etc.) into a target number for the user to see.
Next, because the fibre topology is mutable, they have to have a way of
mapping the WWN/PORT to the device across reboots, hence persistent binding.
Ultimately you get a huge chunk of code whose sole job is to preserve the
fiction that targets are numbers.
Not pretending the target is a number avoids all the above glue and complexity.
> Let me add my modified artwork:
But you're still too SCSI transport specific. The ongoing goal is to make the
physical transport protocol an adjunct to the Linux internal transport (the
struct request) so that we can treat all block/character devices on an equal
footing.
Your diagram picks one preferred transport and forces everything else to
conform. It's rather like quantum field theory: I want to treat the
underlying physics in a gauge invariant fashion (i.e. transport independent),
exposing only the essential features of the problem. You want to pick a
preferred gauge (the SCSI transport). There are always cases where the
preferred gauge makes everything much simpler, but it's simply not worth it
for the many more cases where it makes the problem much more complex.
James
next prev parent reply other threads:[~2002-07-16 14:30 UTC|newest]
Thread overview: 204+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-07-16 11:28 Joerg Schilling
2002-07-16 9:33 ` James Bottomley [this message]
2002-07-16 11:43 ` Martin Dalecki
2002-07-16 11:47 ` Lars Marowsky-Bree
2002-07-16 11:59 ` Vojtech Pavlik
-- strict thread matches above, loose matches on Subject: below --
2002-07-17 14:58 Joerg Schilling
2002-07-17 13:46 Joerg Schilling
2002-07-17 14:00 ` Alexander Viro
2002-07-17 12:32 Joerg Schilling
2002-07-17 13:36 ` Rik van Riel
2002-07-17 13:54 ` Anton Altaparmakov
2002-07-16 17:49 Joerg Schilling
2002-07-16 17:34 Joerg Schilling
2002-07-16 14:30 Richard Zidlicky
2002-07-16 14:06 Joerg Schilling
2002-07-16 14:15 ` Christoph Hellwig
2002-07-16 14:17 ` Lars Marowsky-Bree
2002-07-16 14:02 Joerg Schilling
2002-07-16 12:49 Joerg Schilling
2002-07-16 14:28 ` Jauder Ho
2002-07-16 16:08 ` Buddy Lumpkin
2002-07-16 11:02 Joerg Schilling
2002-07-16 10:47 Joerg Schilling
2002-07-15 18:27 Nick Bellinger
2002-07-15 20:12 ` Jauder Ho
2002-07-16 7:49 ` Buddy Lumpkin
2002-07-15 15:08 Joerg Schilling
2002-07-15 13:26 Joerg Schilling
2002-07-16 3:16 ` Christer Weinigel
2002-07-15 13:07 Joerg Schilling
2002-07-16 10:16 ` Richard Zidlicky
2002-07-15 12:58 Joerg Schilling
2002-07-15 12:27 Joerg Schilling
2002-07-15 11:27 Joerg Schilling
2002-07-15 14:52 ` Rik van Riel
2002-07-15 11:09 James Bottomley
2002-07-15 9:20 Joerg Schilling
2002-07-15 11:23 ` Buddy Lumpkin
2002-07-15 12:22 ` Benjamin Herrenschmidt
2002-07-15 13:17 ` venom
2002-07-14 20:18 Joerg Schilling
2002-07-14 20:13 Joerg Schilling
2002-07-14 20:18 ` Rik van Riel
2002-07-15 9:11 ` venom
2002-07-15 10:01 ` Richard Zidlicky
2002-07-14 20:04 Joerg Schilling
2002-07-14 20:15 ` Tomas Szepe
2002-07-14 20:21 ` Mathieu Chouquet-Stringer
2002-07-14 20:27 ` Mathieu Chouquet-Stringer
[not found] ` <Pine.LNX.4.33.0207141704280.21492-100000@coffee.psychology.mcmaster.ca>
2002-07-14 21:09 ` Mathieu Chouquet-Stringer
2002-07-14 21:46 ` Alan Cox
2002-07-14 20:43 ` Mathieu Chouquet-Stringer
2002-07-14 21:59 ` Alan Cox
2002-07-14 20:54 ` Sean Neakums
2002-07-14 21:09 ` Mark Hahn
2002-07-14 22:20 ` Tomas Szepe
2002-07-14 21:07 ` Mathieu Chouquet-Stringer
2002-07-14 22:07 ` Mathieu Chouquet-Stringer
2002-07-14 22:14 ` Thunder from the hill
2002-07-15 3:34 ` Mathieu Chouquet-Stringer
2002-07-15 3:38 ` Thunder from the hill
2002-07-15 3:44 ` Mathieu Chouquet-Stringer
2002-07-15 4:36 ` Alexander Viro
2002-07-14 20:45 ` Mathieu Chouquet-Stringer
2002-07-14 20:49 ` Daniel Egger
2002-07-14 19:41 Joerg Schilling
2002-07-14 19:51 ` Tomas Szepe
2002-07-14 19:20 Joerg Schilling
2002-07-14 19:18 Joerg Schilling
2002-07-14 19:27 ` Thunder from the hill
2002-07-14 19:10 Joerg Schilling
2002-07-14 18:22 Joerg Schilling
2002-07-14 18:11 Joerg Schilling
2002-07-14 18:40 ` Tomas Szepe
2002-07-14 19:06 ` Tomas Szepe
2002-07-14 19:15 ` Sean Neakums
2002-07-14 19:42 ` Tomas Szepe
2002-07-14 19:02 ` Willy TARREAU
2002-07-14 23:58 ` Andrew Morton
[not found] ` <Pine.LNX.4.33.0207150831080.29242-100000@pc-3.office.scali.no>
2002-07-15 6:54 ` Andrew Morton
2002-07-14 15:15 Joerg Schilling
2002-07-14 15:27 ` Rik van Riel
2002-07-14 15:12 Joerg Schilling
2002-07-14 16:45 ` Alan Cox
[not found] <mailman.1026651901.18426.linux-kernel2news@redhat.com>
2002-07-14 15:05 ` Pete Zaitcev
2002-07-14 14:28 Joerg Schilling
2002-07-14 14:45 ` Anton Altaparmakov
2002-07-14 14:52 ` Thunder from the hill
2002-07-14 14:46 ` Thunder from the hill
2002-07-14 14:25 Joerg Schilling
2002-07-14 14:20 Joerg Schilling
2002-07-14 15:56 ` Erik Andersen
2002-07-14 14:18 Joerg Schilling
2002-07-14 14:35 ` Tomas Szepe
2002-07-14 15:00 ` Rik van Riel
2002-07-14 19:13 ` Richard Zidlicky
2002-07-14 14:07 Joerg Schilling
2002-07-14 15:28 ` Alan Cox
2002-07-18 18:51 ` Kelsey Hudson
2002-07-14 14:00 Joerg Schilling
2002-07-15 0:29 ` Richard B. Johnson
2002-07-14 13:55 Joerg Schilling
2002-07-14 13:47 Joerg Schilling
2002-07-14 14:31 ` Thunder from the hill
2002-07-14 21:23 ` Andre Hedrick
2002-07-14 13:26 Joerg Schilling
2002-07-14 14:28 ` Thunder from the hill
2002-07-14 13:24 Joerg Schilling
2002-07-14 13:39 ` Anton Altaparmakov
2002-07-14 14:10 ` Thunder from the hill
2002-07-14 14:35 ` Adrian Bunk
2002-07-14 16:52 ` Kurt Garloff
2002-07-14 13:17 Joerg Schilling
2002-07-14 14:03 ` Thunder from the hill
2002-07-14 14:44 ` Alan Cox
2002-07-14 13:08 Joerg Schilling
2002-07-14 13:59 ` Thunder from the hill
2002-07-14 13:02 Joerg Schilling
2002-07-14 12:50 Joerg Schilling
2002-07-14 12:44 Joerg Schilling
2002-07-14 12:38 Joerg Schilling
2002-07-14 12:32 Joerg Schilling
2002-07-14 16:01 ` Erik Andersen
2002-07-14 6:20 Adam J. Richter
2002-07-14 15:22 ` Bartlomiej Zolnierkiewicz
2002-07-13 23:27 Adam J. Richter
2002-07-13 23:47 ` Bartlomiej Zolnierkiewicz
2002-07-13 14:46 Adam J. Richter
2002-07-13 15:38 ` Bartlomiej Zolnierkiewicz
2002-07-12 20:08 Joerg Schilling
2002-07-12 21:31 ` Alan Cox
2002-07-12 19:57 Joerg Schilling
2002-07-12 21:17 ` Alan Cox
2002-07-13 5:49 ` Erik Andersen
2002-07-12 19:55 Joerg Schilling
2002-07-12 20:19 ` Richard B. Johnson
2002-07-13 5:40 ` Erik Andersen
2002-07-13 10:52 ` Anssi Saari
2002-07-14 0:35 ` Erik Andersen
2002-07-13 16:53 ` Olivier Galibert
2002-07-14 0:34 ` Erik Andersen
2002-07-16 5:46 ` H. Peter Anvin
2002-07-12 19:49 Joerg Schilling
2002-07-12 19:58 ` Thunder from the hill
2002-07-12 20:38 ` Thunder from the hill
2002-07-12 21:05 ` Alan Cox
2002-07-12 19:37 Joerg Schilling
2002-07-12 19:52 ` Thunder from the hill
2002-07-13 6:36 ` jbradford
2002-07-13 14:25 ` Alan Cox
2002-07-13 13:55 ` Thomas Molina
2002-07-13 15:31 ` Alan Cox
2002-07-13 14:31 ` Thomas Molina
2002-07-13 14:07 ` jbradford
2002-07-13 15:32 ` Alan Cox
2002-07-13 14:36 ` jbradford
2002-07-15 11:47 ` Henning P. Schmiedehausen
2002-07-15 18:44 ` Thunder from the hill
2002-07-12 20:06 ` Andre Hedrick
2002-07-12 20:52 ` Alan Cox
2002-07-12 19:25 Joerg Schilling
2002-07-12 0:27 H. Peter Anvin
2002-07-12 0:37 ` Bartlomiej Zolnierkiewicz
2002-07-12 1:00 ` Alan Cox
2002-07-12 1:23 ` Andre Hedrick
2002-07-12 5:03 ` H. Peter Anvin
2002-07-12 4:13 ` Erik Andersen
2002-07-12 4:17 ` H. Peter Anvin
2002-07-12 4:44 ` Erik Andersen
2002-07-12 4:46 ` H. Peter Anvin
2002-07-12 5:03 ` Andre Hedrick
2002-07-12 5:11 ` H. Peter Anvin
2002-07-12 13:15 ` Alan Cox
2002-07-15 10:24 ` Eric W. Biederman
2002-07-16 5:28 ` H. Peter Anvin
2002-07-12 12:11 ` Martin Dalecki
2002-07-12 12:51 ` Thunder from the hill
2002-07-12 14:17 ` Bartlomiej Zolnierkiewicz
2002-07-12 14:29 ` Martin Dalecki
2002-07-12 14:41 ` Jens Axboe
2002-07-12 15:00 ` Martin Dalecki
2002-07-12 15:05 ` Jens Axboe
2002-07-12 15:41 ` Andre Hedrick
2002-07-12 15:35 ` Alan Cox
2002-07-14 8:19 ` Paul Bristow
2002-07-14 9:11 ` jbradford
2002-07-14 9:16 ` Matthew D. Pitts
2002-07-14 14:04 ` Martin Dalecki
2002-07-14 16:56 ` Thunder from the hill
2002-07-12 15:26 ` Andre Hedrick
2002-07-12 13:22 ` Alan Cox
2002-07-12 13:07 ` Tomas Szepe
2002-07-12 14:06 ` Alan Cox
2002-07-12 15:34 ` Andre Hedrick
2002-07-12 17:52 ` Linus Torvalds
2002-07-12 18:33 ` H. Peter Anvin
2002-07-12 18:54 ` Anton Altaparmakov
2002-07-12 18:55 ` H. Peter Anvin
2002-07-12 19:35 ` Zwane Mwaikambo
2002-07-12 19:06 ` Bartlomiej Zolnierkiewicz
2002-07-12 23:17 ` Matthias Andree
2002-07-12 15:02 ` Kevin P. Fleming
2002-07-12 15:10 ` Martin Dalecki
2002-07-12 16:47 ` Andre Hedrick
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=200207160933.g6G9XKL02184@localhost.localdomain \
--to=james.bottomley@steeleye.com \
--cc=linux-kernel@vger.kernel.org \
--cc=schilling@fokus.gmd.de \
/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
all inboxes | Powered by JetHome®