public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
From: Mike Christie <mikenc@us.ibm.com>
To: James Bottomley <James.Bottomley@SteelEye.com>
Cc: Mike Christie <michaelc@cs.wisc.edu>,
	SCSI Mailing List <linux-scsi@vger.kernel.org>
Subject: Re: [PATCH RFC 1/3] add fc transport events
Date: Sun, 13 Jun 2004 16:17:51 -0700	[thread overview]
Message-ID: <40CCE09F.9040206@us.ibm.com> (raw)
In-Reply-To: <1087166778.10940.23.camel@mulgrave>

James Bottomley wrote:

> On Sun, 2004-06-13 at 16:44, Mike Christie wrote:
> 
>>I am not adding a host and a device transport class. I am structuring 
>>things so there is a single fc transport class.
> 
> 
> I don't think that's such a good idea.  A class is supposed to represent
> an interface on a device.

Ok. I saw the class as representing a "thingy" not necessarily a device, 
becuase at one point the mainatiner had taken out the coupling of the 
"struct device" to the class_device which I thought this was for. For 
example the io scheduler or request queue could and probably should be a 
class if you wanted to abe able to hot swap the schedluer. In my case I 
was representing the transport itself as a class (the class_device 
should have gone into the fc_transport object and a transport_kobject 
should have been placed into the host though).

   The host and scsi device should have separate
> interfaces.  The only reason we don't have any host interfaces in the
> transport classes is because no-one has yet had a reason to add one. 
> However, since the loop status is definitely a host property, you
> do...part of what's missing is an attribute showing the loop state.  SPI
> has a similar need; the host property there is LVD or SE, and we might
> be interested in transitions between them.
> 
> 
>>The kobject I added to the scsi_device replaced the class_device (and 
>>its kobject) we were previously using for the device oriented transport 
>>class. I did this only because I wanted the scsi device's parent to be 
>>the host. In my patch, I then added a class_device to the host becuase 
>>the host's parent was the "FC Class".
>>
>>There is no technical argument why they couldn't be coded the way you 
>>described. My patch just has the FC Class, where under it the device, 
>>host and whatever objects arise are set up as parent/children to reflect 
>>how SCSI/FC and the kernel structures really were.
>>
>>It does not make a difference to me. It is easier to code just having a 
>>fc_host_transport_class and a fc_device_transport_class. It seemed like 
>>a waste to add more classes and doing the symlinks when you can just 
>>restructure things though.
> 
> 
> Well do it as two separate classes then.  Kobjects and Ksets are a bit
> of a minefield that I'd rather we didn't get into unless it's really,
> really necessary.  The abstraction we care about is the interface, which
> to the generic device stuff is the class.  If we stick to what we need,
> we'll get broken by generic device changes less often...
> 

Ok then.

Will this mean we will end up with device and host specific error 
handler issues that the classes will have to coordinate? For example, if 
I got a link down I know that cmds are going to be timing out for every 
device on the host, but depending on the setup if just the device's port 
went down I will not get a link down and may want to do something 
different. Or maybe not?

Mike

  reply	other threads:[~2004-06-13 23:19 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-05-27  7:25 [PATCH RFC 1/3] add fc transport events Mike Christie
2004-06-13  3:41 ` James Bottomley
2004-06-13 20:44   ` Mike Christie
2004-06-13 21:23     ` Mike Christie
2004-06-13 22:46     ` James Bottomley
2004-06-13 23:17       ` Mike Christie [this message]
2004-06-14  2:15       ` Douglas Gilbert
2004-06-14 14:28         ` James Bottomley

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=40CCE09F.9040206@us.ibm.com \
    --to=mikenc@us.ibm.com \
    --cc=James.Bottomley@SteelEye.com \
    --cc=linux-scsi@vger.kernel.org \
    --cc=michaelc@cs.wisc.edu \
    /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