public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Matthew Wilcox <matthew@wil.cx>
To: Rob Landley <rob@landley.net>
Cc: linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org,
	Jens Axboe <axboe@suse.de>,
	Suparna Bhattacharya <suparna@in.ibm.com>,
	Nick Piggin <piggin@cyberone.com.au>
Subject: Re: What still uses the block layer?
Date: Sat, 13 Oct 2007 16:05:39 -0600	[thread overview]
Message-ID: <20071013220539.GD29934@parisc-linux.org> (raw)
In-Reply-To: <200710112011.22000.rob@landley.net>

On Thu, Oct 11, 2007 at 08:11:21PM -0500, Rob Landley wrote:
> My impression from asking questions on the linux-scsi mailing list is that the 
> scsi upper/middle/lower layers doesn't use the block layer described in 
> Documentation/block/*.

Entirely incorrect.

> Instead of using the block layer, SCSI reinvents this particular wheel itself.  
> There's a scsi "upper layer" that provides /dev nodes, scsi low-level 
> drivers, and a gigantic glue layer in between call the "scsi midlayer" that's 
> something like a networking stack, and is responsible for losing track of all 
> your devices so that the one SATA disk hardwired into your laptop might be 
> sda or sdc depending on whether or not you had a USB key plugged in when you 
> booted up.  Anyway, the block layer isn't between any of these three, that I 
> can tell.

You really need to get the fuck over yourself.

> Now that IDE disks have been rerouted through the scsi layer, SATA goes 
> through the scsi layer, USB goes through the scsi layer, firewire goes 
> through the scsi layer...  What's left?  It seems like everything but 
> ramdisks have now been routed through the scsi layer.  My laptop hasn't got a 
> single SCSI device but it also hasn't got any block devices that don't show 
> up as scsi.

That's nice.  Why not take a look in drivers/block?  Floppy, CCISS,
CPQDA, UMEM, UBD, loop, NBD, SX8, UB, AoE, and many more.

> So what's still using the block layer?  How do the scsi layers and the block 
> layer relate?  I'm confused!  (This is normal for me, but still...)

sd and sr are block drivers.  In fact, the whole SCSI subsystem ...

        depends on BLOCK

Just take a look at sd.c.  The init code reads:

        for (i = 0; i < SD_MAJORS; i++)
                if (register_blkdev(sd_major(i), "sd") == 0)
                        majors++;

Then look at struct scsi_cmnd.  It has a pointer to the block request
that was passed down to it.  struct scsi_device has a pointer to the
block request_queue that's associated with the device.  Block is what
has elevators and io schedulers -- that work isn't duplicated by scsi.
There's work to push more of scsi's infrastructure up into the block
layer, so non-scsi block devices can take advantage of it.

-- 
Intel are signing my paycheques ... these opinions are still mine
"Bill, look, we understand that you're interested in selling us this
operating system, but compare it to ours.  We can't possibly take such
a retrograde step."

  reply	other threads:[~2007-10-13 22:05 UTC|newest]

Thread overview: 93+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-12  1:11 What still uses the block layer? Rob Landley
2007-10-13 22:05 ` Matthew Wilcox [this message]
2007-10-14  5:54   ` David Newall
2007-10-14 17:46     ` Stefan Richter
2007-10-14 22:35       ` Tilman Schmidt
2007-10-14 23:36       ` Rob Landley
2007-10-15  1:23         ` Neil Brown
2007-10-15  5:44         ` Stefan Richter
2007-10-15  9:26           ` Rob Landley
2007-10-15 16:08             ` Matthew Wilcox
2007-10-15 17:10               ` Stefan Richter
2007-10-16  3:06                 ` david
2007-10-16  5:56                   ` Stefan Richter
2007-10-16 10:19                   ` Alan Cox
2007-10-16 19:54                     ` david
2007-10-16 19:54                       ` Matthew Wilcox
2007-10-16 20:18                         ` Stefan Richter
2007-10-16 20:34                         ` Theodore Tso
2007-10-16 20:56                           ` Stefan Richter
2007-10-16 20:55                         ` david
2007-10-16 21:49                           ` Alan Cox
2007-10-17  9:48                           ` Gabor Gombas
2007-10-17 17:23                             ` Stefan Richter
2007-10-17 21:04                             ` david
2007-10-15 20:29             ` Wilfried Klaebe
2007-10-14 22:24   ` James Bottomley
2007-10-14 23:45     ` Rob Landley
2007-10-15  1:45       ` Theodore Tso
2007-10-15  8:04         ` Rob Landley
2007-10-15  9:06           ` Julian Calaby
2007-10-15 10:08             ` Rob Landley
2007-10-15 17:33               ` Greg KH
2007-10-16  2:54                 ` david
2007-10-16  4:04                   ` Matthew Wilcox
2007-10-16  4:11                     ` Arjan van de Ven
2007-10-16  4:15                     ` david
2007-10-16  4:21                     ` Greg KH
2007-10-16  5:00                       ` david
     [not found]               ` <646765f40710150327i78519a0fvaea7a83d5975b180@mail.gmail.com>
     [not found]                 ` <200710151511.29748.rob@landley.net>
2007-10-15 23:49                   ` Julian Calaby
2007-10-15 10:32           ` Loïc Grenié
2007-10-15 21:09             ` Rob Landley
2007-10-15 11:19           ` Neil Brown
2007-10-15 21:34             ` Rob Landley
2007-10-15 21:46               ` Jeff Garzik
2007-10-15 22:01               ` Alan Cox
2007-10-15 23:41               ` Neil Brown
2007-10-16  2:12                 ` david
2007-10-15 13:21           ` Theodore Tso
2007-10-15 13:29             ` Alan Cox
2007-10-15 13:35               ` Theodore Tso
2007-10-15 17:44               ` Jeff Garzik
2007-10-15 14:46             ` Douglas Gilbert
2007-10-16  2:51             ` david
2007-10-15 13:37           ` OOM killer gripe (was Re: What still uses the block layer?) Nick Piggin
2007-10-15  9:52             ` Rob Landley
2007-10-15 15:08               ` Nick Piggin
2007-10-16  6:22                 ` David Newall
2007-10-20  9:48               ` Pavel Machek
2007-10-15 11:40             ` Theodore Tso
2007-10-20  9:50               ` Pavel Machek
2007-10-16  3:55             ` Eric W. Biederman
2007-10-16  4:10               ` david
2007-10-16  4:45                 ` Eric W. Biederman
2007-10-16  6:59               ` Nick Piggin
2007-10-16  4:38                 ` Eric W. Biederman
2007-10-16  6:38                   ` Rob Landley
2007-10-16  9:31                     ` Eric W. Biederman
2007-10-16 10:28                     ` Alan Cox
2007-10-16 23:59                       ` Rob Landley
2007-10-16  7:34                   ` Nick Piggin
2007-10-18 13:00                     ` Rogier Wolff
2007-10-19  6:49                       ` Rob Landley
2007-10-19  7:21                         ` Rogier Wolff
2007-10-16 20:37             ` Andrew Morton
2007-10-17  5:34           ` What still uses the block layer? Valdis.Kletnieks
2007-10-17  6:07             ` david
2007-10-15  6:00       ` Greg KH
2007-10-15  8:36         ` Rob Landley
2007-10-15 13:08           ` Alan Cox
2007-10-15 14:00           ` Arjan van de Ven
2007-10-15 18:56             ` Matthew Garrett
2007-10-15 17:25           ` Greg KH
2007-10-15 18:00             ` Matthew Wilcox
2007-10-15 18:46             ` Jeff Garzik
2007-10-16  6:33               ` Stefan Richter
2007-10-17 23:43               ` Bill Davidsen
2007-10-15 22:54             ` Rob Landley
2007-10-15  8:52         ` Christoph Hellwig
2007-10-15 13:10       ` James Bottomley
2007-10-15 21:51         ` Rob Landley
2007-10-15  0:45     ` Luben Tuikov
2007-10-15  6:51       ` Rob Landley
2007-10-15  8:37         ` Luben Tuikov

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=20071013220539.GD29934@parisc-linux.org \
    --to=matthew@wil.cx \
    --cc=axboe@suse.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=piggin@cyberone.com.au \
    --cc=rob@landley.net \
    --cc=suparna@in.ibm.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