Re: What still uses the block layer?

From: Rob Landley
Date: Sun Oct 14 2007 - 19:37:26 EST


On Sunday 14 October 2007 12:46:12 pm Stefan Richter wrote:
> David Newall wrote:
> > That is so rude.

When a reply contains as a reply to the first paragraph "you're wrong" with no
elaboration, and as a reply to the second paragraph nothing but expletives
and personal insults, I tend to stop reading. It really doesn't come across
as a serious reply.

I was at least attempting to ask a serious question.

> Such responses sometimes happen after provocative posts like the thread
> starter's. He could have asked straight away for help with fixing his
> boot environment instead of wrapping his question into a feigned design
> discussion. It appeared as if he is out for a fight rather than
> interested in help.

Actually, I was going through Documentation/block thinking about making a
00-INDEX for it, but my earlier questions of the scsi guys left me with the
impression that the block layer is _not_ used by the SCSI layer. And since
every non-embedded modern storage device I'm aware of has been consumed by
the SCSI layer (despite none of them actually having a discernably closer
relationship to SCSI than ATA did), I didn't know whether or not it was more
appropriate to index this directory or request its deletion. So I asked.

Back when I asked the scsi guys about this, I got no direct answer. I
asked "where does the block layer work into this" in the context of questiosn
about the relationship between the scsi upper, middle, and lower layers, and
I never got a reply, even though the question was quoted back at me here:
http://www.mail-archive.com/linux-scsi%40vger.kernel.org/msg09086.html

The closest I got to an answer was later in the thread:
http://www.mail-archive.com/linux-scsi%40vger.kernel.org/msg09131.html

Which said:
> That approach makes the Linux block layer either a nuisance,
> irrelevant or a complete anachronism (in the case of OSD).
> IMO the linux block layer should be morphed into a library
> of internal queue handling routines. Storage upper level
> drivers such as sd can continue to present the "block"
> view ** of storage devices such as disks.

The gist of the thread (and the documentation I was referred to) is that the
scsi "upper layer" presents /dev nodes and ioctls, the scsi mid-layer is a
routing layer very roughly analogus to a TCP/IP stack, and the scsi low-layer
drivers interface with specific pieces of hardware. Apparently, the block
layer is not between any of these, they talk directly to each other. This
would seem to indicate that I/O requests made to scsi devices are never
routed through a common block I/O request handling layer shared with non-SCSI
block devices. I was not, however, certain of this, hence my attempt to
bring the topic back up.

Oh, and sending a patch correcting Jens Axboe's address in this old
documentation. He's apparently at Oracle now...

Rob
--
"One of my most productive days was throwing away 1000 lines of code."
- Ken Thompson.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/