creating PCI-related sysfs entries

Greg KH greg at kroah.com
Wed Feb 1 08:26:24 EST 2006


On Tue, Jan 31, 2006 at 03:08:05PM -0600, linas wrote:
> On Tue, Jan 31, 2006 at 12:34:56PM -0800, Greg KH was heard to remark:
> > On Tue, Jan 31, 2006 at 02:22:14PM -0600, linas wrote:
> > > 
> > > I want to create some sysfs entries in order to report on the 
> > > status of PCI slots.  (If you are guessing that this pertains
> > > to the PCI error recovery code, you'd be right).  I'm having 
> > > trouble figuring out the best way to do this.
> > > 
> > > There are existing entries at /sys/bus/pci/slots/... but these
> > > are for hotplug slots only; none of the soldered-onto-the-MB
> > > devices show up here.  Is this intentional, or is this a bug/
> > > overshight/not-yet-implemented thing?
> > 
> > Not implemented, as it's up to a pci hotplug controller driver to
> > provide those slots.  It sounds like your driver needs to be expanded :)
> 
> Hmm. But these slots are not hot-plugabble; should the arch
> use the hotplug infrastructure even on those slots?

Why not?  It's a good place to put them, right?

> I note that /sys/devices/pciXXXX does have all of the pci 
> slos listed, so perhaps that is where I can place per-slot data.

That's only because your arch might happen to have 1 device per slot,
which is not true for other arches.  And I bet it's also not true for
your non-virtual boxes...

> > > I also want to report some roll-up system-wide statistics
> > > both /sys/module and /sys/class seem reasonable. My code
> > > does not compile as a module. Suggestions?
> > 
> > What kind of statistics?  Is this driver related?  PCI bus related?
> > Device related?
> 
> Related to the PCI error recovery. I'm not sure how to conceptually
> peg this: one could say that it is the driver for a specific type
> of pci-host bridge, although the code is not currently structured 
> as such. Should I try to restructure it as such? If so, I'm not 
> clear on how to proceed; I can't say I've clearly seen a kernel
> abstraction of a pci-host bridge device onto which to staple myself.

People have suggested that they create such a driver for a long time.
Why not just do that?

> I wanted to report a few read-only statistics, and a few writeable 
> parameters:
> 
> Read-only:
> -- total number of PCI device resets due to detected errors
> -- total number of "false positives" (probable errors that weren't)
> -- some other misc related stats.

These are all "per slot" right?

> Most, but not all, of these statistics could be obtained by 
> totalling up the per-slot statistics.
> 
> Writable: 
> -- Number of reset tries to perform before concluding that the 
>    device is hopelessly dead.  Resets are disruptive and intensive,
>    and I don't want to get stuck in an inf loop on a dead device.

Why would you want to change this value?  Just pick one at build time.

thanks,

greg k-h



More information about the Linuxppc64-dev mailing list