Re: [PATCH v2 3/4] switchtec: Add sysfs attributes to the Switchtec driver

From: Logan Gunthorpe
Date: Thu Feb 23 2017 - 17:56:40 EST

On 23/02/17 03:43 PM, Bjorn Helgaas wrote:
> This path seems a little generic. I don't see other cases where a
> product brand name ("Switchtec") appears at the top level of
> /sys/class/...

Ok, well we are certainly open to suggestions, but there isn't really a
generic version of this device available so I'm not sure how we would
change that. Per device-type classes aren't that uncommon though, a
quick grep shows things like:

platform/chrome/cros_ec_dev.c:40:static struct class cros_class
s390/char/raw3270.h:94:extern struct class *class3270;
net/ethernet/hisilicon/hns/hnae.c:19:static struct class *hnae_class;
mfd/ucb1x00-core.c:490:static struct class ucb1x00_class

> My question is based on "ls Documentation/ABI/testing/sysfs-class*",
> not on any great knowledge of sysfs, and I see Greg has already given
> a Reviewed-by for this, so maybe this is the right approach.
> It does seem like the path could include a clue that this is related
> to PCI.

I mean, we could change it to pci-switchtec or something if you think
that would be better..?? But I'm not sure how else to accommodate this.

> Is there a link to the switch PCI device itself, e.g., to
> /sys/devices/pci*? Should these attributes simply be put in a
> subdirectory there, e.g., in
> /sys/devices/pci0000:00/0000:00:00.0/stats/...

Well our device shows up here in the tree:


(Which userspace can get to by following the link at
/sys/class/switchtec/switchtec0) The switch is then always: