public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
From: Hannes Reinecke <hare@suse.de>
To: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Cc: mike.miller@hp.com, James.Bottomley@HansenPartnership.com,
	Jens.Axboe@oracle.com, linux-scsi@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [RFC PATCH] HP (Compaq) Smart Array 5xxx controller SCSI driver
Date: Tue, 22 Jul 2008 09:02:41 +0200	[thread overview]
Message-ID: <48858611.8020401@suse.de> (raw)
In-Reply-To: <20080719195150Y.fujita.tomonori@lab.ntt.co.jp>

Hi Tomo,

FUJITA Tomonori wrote:
> This is a SCSI driver for HP (Compaq) Smart Array 5xxx controllers.
> 
YES! Finally!

> SCSI people can skip the following two paragraphs.
> 
> Currently, a driver for HP (Compaq) Smart Array 5xxx controllers is
> implemented as a block device driver, block/cciss.c (aka, cciss). But
> the controller interface is SCSI-3 compatible. The specification says,
> "A controller that supports CISS is considered to be a SCSI storage
> array controller". A scsi driver for the controllers was discussed
> several times.
> 
> I think that a SCSI cciss driver can be much simpler (and
> maintainable) than the block cciss driver (the majority of the code
> forging SCSI command can go away, we have the proper sysfs entries for
> free, we can handle scsi tape drives easily etc). It would be helpful
> for distributions too since they don't need stuff specific to cciss
> (such as udev rules).
> 
Yes.

> 
> There isn't any easy migration path for users. So I think that we need
> to keep the block and scsi drivers for cciss for some time (say two
> years).
> 
> My scsi driver is still in an early stage (I tried to keep the changes
> minimum). I can detect logical units, mount a file system, do lots of
> I/Os, however, there are lots of TODOs in the management features.
> 
> If I can get an ACK from HP about the long-term migration of cciss to
> SCSI, I'm happy to keep working on the SCSI cciss driver and maintain
> it until HP takes over the driver.
> 
First of all, thanks, Tomo, for doing this.
It's been on my to-do list for about as long as I started looking on
the cciss code. However, some thoughts:

- Having cciss using the SCSI infrastructure is indeed far more logical.
  Although it looks as if it doesn't support the SCSI spec in full
  (ie no conformity claimed in the INQUIRY data) it certainly implements
  quite a large subset.

- The error handling in the SCSI infrastructure is far better structured
  as that one in the existing cciss driver, so the SCSI driver would
  benefit from this.

- Nevertheless, the cciss driver and the corresponding sysfs / device node
  layout has become the de-facto standard over the years and it will be
  _hard_ to change that.

- However, given that the sysfs information from the cciss driver is quite
  rudimentary I doubt if anyone will indeed notice if the _internal_ driver
  is a SCSI or a block level driver, as long as the _external_ interface
  (ioctl, device-node layout etc) stays the same.

Having said that I think this is the direction it should take:

- Split the existing cciss driver in two parts, one part for the
  block-level interface and one for the lower-level device handling bits.
- Redo the patch based on that, so that existing code can be shared
  (and fixes there would be included in both drivers).
- Add some hooks/safeguards so that only _one_ interface driver can
  be loaded.

This way we would be able keep the existing functionality and allow
users to play around with the new driver.
Long-term we can start moving the driver itself to SCSI, and keeping
the existing cciss block interface only as a wrapper which adjusts
the major:minor numbers; the device-node layout can be handled by udev.

Cheers,

Hannes
-- 
Dr. Hannes Reinecke		      zSeries & Storage
hare@suse.de			      +49 911 74053 688
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: Markus Rex, HRB 16746 (AG Nürnberg)
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2008-07-22  7:02 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-07-19 10:52 [RFC PATCH] HP (Compaq) Smart Array 5xxx controller SCSI driver FUJITA Tomonori
2008-07-22  7:02 ` Hannes Reinecke [this message]
2008-07-23 13:46   ` FUJITA Tomonori
2008-07-22 14:19 ` Miller, Mike (OS Dev)
2008-07-23 13:46   ` FUJITA Tomonori
2008-07-23 14:07     ` Miller, Mike (OS Dev)
2008-07-24  1:32       ` FUJITA Tomonori
2008-07-22 14:40 ` James Bottomley
2008-10-24 15:10 ` Miller, Mike (OS Dev)
2008-10-27  4:09   ` Douglas Gilbert
2008-10-27  4:54   ` FUJITA Tomonori

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=48858611.8020401@suse.de \
    --to=hare@suse.de \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=Jens.Axboe@oracle.com \
    --cc=fujita.tomonori@lab.ntt.co.jp \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=mike.miller@hp.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