From mboxrd@z Thu Jan 1 00:00:00 1970 From: James Bottomley Subject: Re: [linux-iscsi-devel] Re: [PATCH RFC] replace ioctl for sysfs take 2 Date: 06 Sep 2004 19:11:16 -0400 Sender: linux-scsi-owner@vger.kernel.org Message-ID: <1094512278.1761.63.camel@mulgrave> References: <413557CB.8010008@cs.wisc.edu> <20040901162042.GC26753@null.msp.redhat.com> <20040906143251.GB21646@lst.de> <20040906163336.GE642@parcelfarce.linux.theplanet.co.uk> <413CA924.8030904@cs.wisc.edu> <413CB265.3070304@cs.wisc.edu> <413CE933.70509@us.ibm.com> Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit Return-path: Received: from stat16.steeleye.com ([209.192.50.48]:12672 "EHLO hancock.sc.steeleye.com") by vger.kernel.org with ESMTP id S267451AbUIFXM1 (ORCPT ); Mon, 6 Sep 2004 19:12:27 -0400 In-Reply-To: <413CE933.70509@us.ibm.com> List-Id: linux-scsi@vger.kernel.org To: Mike Christie Cc: Mike Christie , Matthew Wilcox , Christoph Hellwig , iscsi -devel , David Wysochanski , "Surekha.PC" , SCSI Mailing List On Mon, 2004-09-06 at 18:48, Mike Christie wrote: > For bus usage and virtual drivers like this and scsi_debug, would it be > better to just have a single virtual bus for all virtual drivers to > share, or should we instead modify the scsi_bus so that it can handle > ULD and virtual LLD struct device_driver attachments. Today, the > scsi_bus seems to be used for upper layer drivers becuase they are the > only ones needing to attach UL struct device_drivers to scsi devices, > but instead of scsi_debug or iscsi-sfnet implementing its own virtual > bus the scsi_bus could manage a low level virtual driver's scsi_host > parent's devices. > > Also, with James's patch we have scsi_devices and scsi_targets off the > scsi_bus, does scsi_host's shost_gendev belong there too? What is the > purpose of the scsi_bus?> Using a virtual bus only makes sense when you actually have multiple virtual drivers that need to attach. Thus, we only have one virtual scsi bus (scsi_bus_type) and it's only used for the generic device embedded in struct scsi_device. We use it only to attach the various ULDs. The host and target devices just have a null bus. I'm not quite sure what you want to use another bus type for? It sounds like you really want to be using a device class instead. The difference is - classes provide (potentially multiple) interfaces to existing devices; - busses are used for keeping track of attached devices and matching them to their drivers. Unless you really have a use for device matching and driver attachment, you probably just want to stick with classes. James