From: James Smart <james.smart@emulex.com>
To: Chad Dupuis <chad.dupuis@qlogic.com>
Cc: Christof Schmitt <christof.schmitt@de.ibm.com>,
"linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>
Subject: Re: Subject: [RFC 0/3] Add fc_rport attributes to further populate HBAAPIv2 HBAPortAttributes for discovered ports.
Date: Tue, 2 Nov 2010 11:34:15 -0400 [thread overview]
Message-ID: <4CD02F77.5090607@emulex.com> (raw)
In-Reply-To: <alpine.LFD.2.00.1010291532220.3526@localhost.localdomain>
On 10/29/2010 3:35 PM, Chad Dupuis wrote:
> On Fri, 29 Oct 2010, Christof Schmitt wrote:
>> On Thu, Oct 28, 2010 at 12:14:18PM -0400, Chad Dupuis wrote:
>>> Hi All,
>>>
>>> This small patch set adds 7 new attributes to the fc_rport struct so that application libraries who export HBAAPI v2 discovered port attributes can populate the HBA_PORTATTRIBUTES structure more fully. The new fc_rport attributes,
>>> which would be exported via the /sys/class/fc_remote_port/rport-x:y-z directory, are:
>>>
>>> - supported_fc4s
>>> - supported_speed
>>> - port_type
>>> - speed
>>> - active_fc4s
>>> - symbolic_name
>>> - fabric_name
>>>
>>> These attributes would be fixed-attributes which would mean that they would be set before the call to fc_remote_port_rolechg() but then once the role of the port has been established they would not change.
>>>
>>> There are two patches in this RFC:
>>>
>>> Patch #1 - scsi_transport_fc: Add HBAAPI v2 attributes to fc_rport structure.
>>>
>>> This patch adds the definitions for the new fc_rport attributes, sets up the show functions and assigns default nominal values to the attributes.
>>>
>>> Patch #2 - qla2xxx: Add name and management server queries to fill in new fc_rport attributes.
>>>
>>> This patch adds the necessary name and management server calls to the SAN fabric services to obtain the information needed to fill in the new fc_rport attributes. The patch also assigns the attributes before calling
>>> fc_remote_port_rolechg().
>>
>> It looks like this mechanism only queries data from the FC nameserver.
>> It would be useful to have the same data available for all FC drivers.
I second this statement from Christof. There is nothing in this that is
driver-specific, so the queries should be placed in a common place (transport
or in the hbaapi library).
I'm also not a fan of the "must query for the data before calling
fc_remote_port_rolechg()". This stuff is informational, so I would prefer the
queries be done after or independent of the rolechg() call.
>> The FC BSG interface already allows sending CT requests to the FC
>> nameserver. Could this be implemented by creating the request in
>> common code and issue the requests through the FC BSG interface? If
>
> We considered using bsg as the means for getting the information to and
> from user space but deciced that exporting the information through
> /sys/class/fc_remote_ports was easier and probably more appropriate as
> other attributes relating to rports are currently exported there.
I'm 50/50 on this.... I do like to see all the info via sysfs files w/o the
need for additional tools. However, I don't like all the extra inodes we
create for all the attributes (especially as rports should be many, and
replicated per host path to the rport). And, I'm unsure where we really should
start to draw the line for what's in sysfs vs what do you go to a tool to find
out.
Anyone else with an opinion ?
>> the data is used by the HBAAPI, the userspace HBAAPI could create the
>> FC requests and issue them through the /dev/bsg/... device files.
>
> I think this would be a little too low level for a user level library.
> Normally for user space I would assume we want to hide the mechanism
> (which is very hardare dependent) that is used to get the information
> and rather just expose the information itself.
>
Actually, this is exactly the kind of detail that should be in a user-level
library. It's an FC-centric library, and making FC-centric queries makes
sense. The whole purpose of the library is to hide mechanism (is it from
sysfs, from directory tires, from sgio, from bsg, from netlink, etc) from the
consumer of the library.
The only advantage for keeping it out of the library - is to display it under
sysfs w/o the use of a tool.
The 2 options in my mind are:
a) the CT queries are issued by the fc_transport after fc_remote_port_add()
and fc_remote_port_rolechg() calls - to populate the rport sysfs data. (no
need to involve the LLDD for anything other than the CT queries)
or
b) move the items and CT queries to the library. Ultimately, the library
should be refreshing data in sync with the fc_remote_port_add/rolechg()calls,
so we should post async events at those points, and have them handled by the
library. I don't remember if HBAAPI is actually geared for async event
updates, as I thought the consumer had to periodically call in to refresh.
This would need to be worked out.
-- james s
next prev parent reply other threads:[~2010-11-02 15:34 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-28 16:14 Subject: [RFC 0/3] Add fc_rport attributes to further populate HBAAPIv2 HBAPortAttributes for discovered ports Chad Dupuis
2010-10-28 16:22 ` [RFC 0/2] " Chad Dupuis
2010-10-29 10:45 ` Subject: [RFC 0/3] " Christof Schmitt
2010-10-29 19:35 ` Chad Dupuis
2010-11-02 15:34 ` James Smart [this message]
2010-11-02 16:47 ` Christof Schmitt
2010-11-02 18:53 ` Chad Dupuis
2010-11-02 20:46 ` Ravi Anand
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=4CD02F77.5090607@emulex.com \
--to=james.smart@emulex.com \
--cc=chad.dupuis@qlogic.com \
--cc=christof.schmitt@de.ibm.com \
--cc=linux-scsi@vger.kernel.org \
/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