Re: proc_name in sysfs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Frederic TEMPORELLI wrote:
Hi,


Sorry, no such "driver" directory in /sys/class/scsi_host/hostX/ (checked: Emulex "lpfc" 8.0.24 and LSI "mptscsih" 3.01.18)

I may have missed the point here. Are you talking about Patrick's shell script? It sort of works for me. Example:

$ ./scan_hosts.sh
/sys/class/scsi_host/host0 module (driver) is: mptbase
/sys/class/scsi_host/host1 module (driver) is: mptbase
/sys/class/scsi_host/host2 module (driver) is: mptbase
/sys/class/scsi_host/host3 module (driver) is: mptbase
/sys/class/scsi_host/host4 module (driver) is: qla2300
/sys/class/scsi_host/host5 module (driver) is: qla2300
$ lsscsi -H
[0]    mptscsih
[1]    mptscsih
[2]    mptscsih
[3]    mptscsih
[4]    qla2xxx
[5]    qla2xxx

Note that the module name and the proc_name are different!
It looks like Patrick's script gives the module name
"closest" to the PCI bus while proc_name gives the
"upper" lower level driver name :-)

BTW "/bin/pwd" gives a different result to "pwd"
in a bash shell just after a symlink has been
followed.

Doug Gilbert

note: there's also a "proc_name" interface for LSI "mtpscsih", located in /sys/class/scsi_host/hostX/, which is reporting "mptscsih" string.

Any other ideas ?

Best regards.


Douglas Gilbert a écrit :

Patrick Mansfield wrote:

On Wed, Apr 06, 2005 at 01:40:04PM +0200, Frederic TEMPORELLI wrote:


2/ now, how can we get the adapter module name from sysfs ?




Why do you need it?

Anyway, try lsscsi, it walks the sysfs tree:

[elm3b79 patman]$ lsscsi  -H
[0]    qla1280
[1]    qla1280
[2]    qla2xxx
[3]    qla2xxx

Or, script it:

[elm3b79 tmp]$ more xx.sh
#! /bin/sh

hdir=/sys/class/scsi_host

for i in ${hdir}/host*
do
        host_dir=$(cd ${i}/device;/bin/pwd)
        driver_dir=$(cd ${host_dir}/../driver;/bin/pwd)
        module=$(basename ${driver_dir})
        # echo ${i} is in: ${host_dir}
        echo "${i} module (driver) is: ${module}"
done

[elm3b79 tmp]$ sh ./xx.sh
/sys/class/scsi_host/host0 module (driver) is: qla1280
/sys/class/scsi_host/host1 module (driver) is: qla1280
/sys/class/scsi_host/host2 module (driver) is: qla2300
/sys/class/scsi_host/host3 module (driver) is: qla2300



Patrick, lsscsi currently uses proc_name so it needs to be changed to use the above logic (if LLDs are going to stop populating proc_name).

It has been suggested that I extend lsscsi to show
transport info (as seen from the HBA) found in the
various *_transport directories in sysfs.

Also I have been thinking about ways to list less
tha all scsi devices. For example: "lsscsi 1:0:3:0"
to look at one device and "lsscsi 1:-" for all scsi
devices hanging off host1. I'm not sure whether
"lsscsi /dev/sda" is a good idea. Any suggestions?

Doug Gilbert
-
: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux