If you have a SCSI, SAS device, SATA disk attached to a SAS controller, then it can usually report the current physical link speed. (Not all SATA disks/controller combinations enumerate the link speed, but most SCSI and SAS peripherals do). This is useful if you wish to determine if your devices are configured and cabled correctly in order to provide maximum performance. The link speed is reportable via several options:
| • | Command-line mode in foreground - Append the -link option to commands that query and terminate, such as -I or -J. |
| • | Command-line mode in background - Append the -link option to a command-line option that runs in background, such as -F 60, so it will report link speed every 60 seconds. |
| • | Via the Mode Page widget. |
the command line. We added this feature as a request from a vendor that wished to monitor devices in an external RAID enclosure. The company wished to know if and when the drives were renegotiating the interface from U320 to U160 due to poor signal quality.
What is Link Speed?
The numbers below define how the Transfer Period Factor, decoded from the SCSI device, is reported by SMARTMon. The Common MB/sec column reports how manufacturers typically market the speed of the device.
Standard-Defined Clocking |
Common Name |
Common MB/sec |
Transfer Period Factor (TPF) |
Reported via smartmon-ux |
TPF x 4 |
Regular |
5 |
32h - FFh |
Fast-5 200ns |
TPF x 4 |
Fast |
10 |
19h - 31h |
Fast-10 100ns |
TPF x 4 |
Ultra |
20 |
0dh - 18h |
Fast-20 200ns |
50 ns |
Ultra 2 |
40 |
0ch |
Fast-20 50ns |
30.3 ns |
Ultra 2 |
80 |
0bh |
Fast-40 30ns |
25 ns |
Ultra 2 |
80 |
0ah |
Fast-40 25ns |
12.5 ns |
Ultra 3 |
160 |
09h |
U160 |
6.25 ns |
Fast-160 |
320 |
08h |
U320 |
3.125 ns |
Fast-320 |
640 |
07h |
U640 |
A sample of the link speed from a SAS device can be found here, under mode page 19.
As monitoring the link speed requires additional I/Os per polling period, you would rarely enable this feature during polling. Just combine -link with one of the foreground commands, so the program will query speed then exit. The software reports protocol-specific link speeds for SAS and Fibre Channel peripherals as well. You can see if your SAS disks are really running at 3 Gbit/second. You can also see the highest/lowest link speed combination that your hardware supports. (This will be most useful when 6Gb SAS products are deployed).
More on Background Link Speed Monitoring
If you send smartmon-ux -F 600 -link /dev/sg[0-3] to your LINUX host, Then you would get something like the data below in your log file every 600 seconds in the system log file.
Jul 24 23:19:10 rh90 smartmon-ux[12202]: /dev/sg0 polled at Thu Jul 24 23:19:10 2003 Status:Passed (Speed: U160)
Jul 24 23:19:11 rh90 smartmon-ux[12202]: /dev/sg1 polled at Thu Jul 24 23:19:10 2003 Status:Passed (Speed: U320)
Jul 24 23:19:13 rh90 smartmon-ux[12202]: /dev/sg2 polled at Thu Jul 24 23:19:12 2003 Status:Passed (Speed: U160)
Jul 24 23:19:14 rh90 smartmon-ux[12202]: /dev/sg3 polled at Thu Jul 24 23:19:13 2003 Status:Passed (Speed: U160)
Foreground Link Speed Reporting
The link speed is reported in mode page 19h, a somewhat cryptic value will be returned at the end of the mode page as shown below. Pass the program the -J option to report all mode pages and look for the speed at the end of the page (highlighted in red).
Protocol Specific Port : Page [19h] (Factory, Current, Saved)
Physical interface : Parallel SCSI
Driver strength : 0, 0, 0 {R/O}
Driver asymmetry : 0, 0, 0 {R/O}
Driver precompensation : 0, 0, 0 {R/O}
Driver slew rate : 1, 1, 1 {R/O}
DB(0) Value : 0, 0, 0 {R/O}
DB(1) Value : 0, 0, 0 {R/O}
DB(2) Value : 0, 0, 0 {R/O}
DB(3) Value : 0, 0, 0 {R/O}
DB(4) Value : 0, 0, 0 {R/O}
DB(5) Value : 0, 0, 0 {R/O}
DB(6) Value : 0, 0, 0 {R/O}
DB(7) Value : 0, 0, 0 {R/O}
DB(8) Value : 0, 0, 0 {R/O}
DB(9) Value : 0, 0, 0 {R/O}
DB(10) Value : 0, 0, 0 {R/O}
DB(11) Value : 0, 0, 0 {R/O}
DB(12) Value : 0, 0, 0 {R/O}
DB(13) Value : 0, 0, 0 {R/O}
DB(14) Value : 0, 0, 0 {R/O}
P_CRCA : 0, 0, 0 {R/O}
P1 : 0, 0, 0 {R/O}
BSY : 0, 0, 0 {R/O}
SEL : 0, 0, 0 {R/O}
RST : 0, 0, 0 {R/O}
REQ : 0, 0, 0 {R/O}
ACK : 0, 0, 0 {R/O}
ATN : 0, 0, 0 {R/O}
C/D : 0, 0, 0 {R/O}
I/O : 0, 0, 0 {R/O}
MSG : 0, 0, 0 {R/O}
Transfer period factor : 0, 0, 0 {R/O}
REQ/ACK offset timing : 0, 0, 0 {R/O}
Transfer width exponent : 1, 1, 1 {R/O}
Protocol options bits : 00h, 09h, 00h
Driver asymmetry : 0, 0, 0 {R/O}
Sent PCOMP enabled : 0, 0, 0 {R/O}
Received PCOMP enabled : 1, 1, 1 {R/O}
Min xfr period factor : 0, 0, 0 {R/O}
Max REQ/ACK offset : 0, 0, 0 {R/O}
Max transfer width exponent : 1, 1, 1 {R/O}
Protocol options bits supported : 08h, 08h, 08h
By examining the Protocol options bits (which corresponds to the TPF bits in the table above), you can see that this device is currently configured for U160 mode. The mode page dump for SAS/SATA devices reports both the link speed byte value and decoded text.
Detecting Link Speed for Fibre Channel Peripherals
You can determine the link speed for fibre channel drives by using the -fchbainfo command which is part of the SAN Reporting capability in this software. These functions are currently not available with the USB SANtool, but are supported on the stand-alone SMARTMon-UX version. An updated version of the SANTOOL that interacts with pre-installed SNIA HBA drivers will provide this feature.
Page url: http://www.santools.com/santool/index.html?linkspeedreporting.htm