Link Speed Reporting

Top  Previous  Next

If you have a SCSI or SAS attached-device (which also covers a SATA disk attached to a SAS controller), then chances are good that it returns the link speed. 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 option can be called in either foreground mode (i.e, along with all of the reporting flags such as -I or -J).

 

This feature can be invoked by appending the -link option to 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 SMARTMonUX. 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

       

If your peripheral is a SAS or SAS-2 device, then both SAS link speeds will be reported.

 

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.

 

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 (SCSI peripherals only)

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.

 

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.

 

Detecting Link Speed for SAS Peripherals

You can determine the link speed by looking at the highlighted negotiated link rate field in the sample output for mode page 19.

 

This is what will be reported on a SAS-2 disk under LINUX.  (The disk is connected to a 6Gbit/sec link on port 0, and there is no connection to port#1)

/dev/sg1 polled at Wed Dec 29 00:28:38 2010 Status:Passed) (Speed: Port0=6.0 G; Port1=1.5 G)