mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
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



  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®