From: Christoph Hellwig <hch@lst.de>
Date: Tue, 19 Jun 2007 07:56:29 +0200
A SCSI pass through is of course perfectly fine. If you have a separate
block passthrough that has additional magic a separate block driver is
the way to go because it actually is simpler than a scsi driver decoding
command blocks and translating them to deep magic. The ps3 storage
drivers this thread discussed are a good example for that. We now
have a very nice and simple disk, scsi and flash chardev driver each
that don't include abstractions layers and cruft. Combine that with
their initial scsi layer driver that was full of internal dispatches
because each of these device types speaks a completely different command
set.
That's how I'm currently writing my virtual disk client driver
for the Sun LDOMS stuff, as a block device.
The remaining issues are the partitioning (which we're discussing in
another thread) and how to export the scsi passthru support in such a
non-scsi block driver.
The main disk I/O block read and write is done using descriptors
sent to the disk server. SCSI pass-through is provided (optionally)
so that disk analysis tools can do things like MODE_SENSE on the
disk.