Re: VPD in sysfs

From: Luben Tuikov
Date: Mon Aug 16 2004 - 09:14:01 EST


Matthew Wilcox wrote:

I've been sent a patch that reads some VPD from the Symbios NVRAM and
displays it in sysfs. I'm not sure whether the way the author chose
to present it is the best. They put it in 0000:80:01.0/host0/vpd_name
which seems a bit too scsi-specific and insufficiently forward-looking
(I bet we want to expose more VPD data than that in the future, so we
should probably use a directory).

I actually have a feeling (and please don't kill me for saying this), that
we should add a struct vpd * to the struct device. Then we need something
like the drivers/base/power/sysfs.c file (probably drivers/base/vpd.c)
that takes care of adding vpd to each device that wants it.

Thoughts? Since there's at least four and probably more ways of getting
at VPD, we either need to fill in some VPD structs at initialisation or
have some kind of vpd_ops that a driver can fill in so the core can get
at the data.

I like this idea. Certain VPD parameters are standard across SCSI devices,
so they could be shown in a standard way.

Not sure on the format of vpd_ops, _but_ getting the VPD data via
the EVPD bit in INQUIRY, could be pretty standard method, so that
if the LLDD doesn't set vpd_ops, they could be set to point to
the (this) generic way*. (The LLDD can snoop the INQUIRY data if
it wishes to, for further control.)

*I.e. the vpd_ops method(s) would be generic enough to abstract out
the actual method of getting the VPD...

Certainly, providing a vpd node in sysfs would help user level
apps id devices more easily. This could also be used by multipathing
sofware and other apps. I think it's a good idea.

Luben


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/