Opened 11 years ago

Closed 11 years ago

#281 closed enhancement (fixed)

smartctl hpt27xx controller with more than 16 devices

Reported by: stin9ray Owned by: Alex Samorukov
Priority: major Milestone: Release 6.2
Component: smartctl Version: 6.1
Keywords: highpoint freebsd linux Cc:

Description

Limit of 16 devices seems to be hard coded.

The command to retrieve a smart dump for da16 fails:
[

root@wood] ~# smartctl -d hpt,1/17/1 -x /dev/hpt27xx
smartctl 6.1 2013-03-16 r3800 [FreeBSD 9.1-STABLE amd64] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

/dev/hpt27xx: Option '-d hpt,L/M/N' invalid channel number M supplied
=======> VALID ARGUMENTS ARE: ata, scsi, sat[,auto][,N][+TYPE], usbcypress[,X], usbjmicron[,p][,x][,N], usbsunplus, 3ware,N, hpt,L/M/N, cciss,N, areca,N/E, atacam, auto, test <=======

Use smartctl -h to get a usage summary

[root@wood] ~# smartctl -V
smartctl 6.1 2013-03-16 r3800 [FreeBSD 9.1-STABLE amd64] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org

smartctl comes with ABSOLUTELY NO WARRANTY. This is free
software, and you are welcome to redistribute it under
the terms of the GNU General Public License; either
version 2, or (at your option) any later version.
See http://www.gnu.org for further details.

smartmontools release 6.1 dated 2013-03-16 at 14:35:27 UTC
smartmontools SVN rev 3800 dated 2013-03-16 at 14:36:20
smartmontools build host: amd64-portbld-freebsd9.1
smartmontools build configured: 2013-06-14 17:22:15 UTC
smartctl compile dated Jun 14 2013 at 17:22:22
smartmontools configure arguments:  '--disable-dependency-tracking' '--enable-drivedb' '--enable-sample' '--with-initscriptdir=/usr/local/etc/rc.d' '--with-docdir=/usr/local/share/doc/smartmontools' '--prefix=/usr/local' '--mandir=/usr/local/man' '--infodir=/usr/local/info/' '--build=amd64-portbld-freebsd9.1' 'build_alias=amd64-portbld-freebsd9.1' 'CXX=c++' 'CXXFLAGS=-O -pipe -Wno-write-strings' 'LDFLAGS=' 'CPPFLAGS=' 'CC=cc' 'CFLAGS=-O -pipe -Wno-write-strings'
[root@wood] ~# uname -a
FreeBSD wood.lakeview42.com 9.1-STABLE FreeBSD 9.1-STABLE #0 r+043291a: Mon Jun 17 00:10:05 PDT 2013     root@build.ixsystems.com:/tank/build/nightlies/2013-06-17/os-base/amd64/tank/build/nightlies/2013-06-17/FreeBSD/src/sys/FREENAS.amd64  amd64
[root@wood] ~# 

Controller: High Point RocketRAID 2760A
This controller is advertised as a 16 channel controller that "switches" 24 internal disks.

In my configuration here are 19 disks connected to the controller, all are detected as da0 .. da19.
da0 at hpt27xx0 bus 0 scbus7 target 0 lun 0
da0: <HPT DISK 0_0 4.00> Fixed Direct Access SCSI-0 device
da0: 2861588MB (5860533168 512 byte sectors: 255H 63S/T 364801C)
[...]
da19 at hpt27xx0 bus 0 scbus7 target 19 lun 0
da19: <HPT DISK 0_19 4.00> Fixed Direct Access SCSI-0 device
da19: 953869MB (1953525168 512 byte sectors: 255H 63S/T 121601C)

The command:
smartctl -d hpt,1/16/1 -x /dev/hpt27xx
works as expected dumping all the smart info for da15.

Change History (5)

comment:1 by Christian Franke, 11 years ago

Keywords: highpoint freebsd linux added
Milestone: Release 6.2
Type: defectenhancement

comment:2 by Alex Samorukov, 11 years ago

Owner: changed from somebody to Alex Samorukov
Status: newassigned

Ok, as far as i could see there is no such limits in the code

ids[0] = m_hpt_data[0] - 1;
ids[1] = m_hpt_data[1] - 1

Is it possible to provide access to affected hw? It is possible that problem is in the driver, not in smartmontools.

comment:3 by Alex Samorukov, 11 years ago

Sorry, wrong previous comment.

if (!(1 <= disknum && disknum <= 15)) {

set_err(EINVAL, "Option '-d hpt,L/M/N' invalid pmport number N supplied");
return 0;

}

In the code there is a hard limit. Could you please try to change it to 128 and try if it works for you?

P.S. Also hpt interface is outdated, so if it possible to provide some hw with this controller i can convert it to new api and this will improve it support.

comment:4 by Alex Samorukov, 11 years ago

In SVN revision 3824 maximum disk number is 128. Please test and tell if it works for you.

comment:5 by Christian Franke, 11 years ago

Resolution: fixed
Status: assignedclosed

Should work since r3824, no feedback so far.

Note: See TracTickets for help on using tickets.