5

I have a batch of SCSI disks and a controller; the drives are HP 72,8GB 10k RPM Ultra320 SCSI (model number BD07296B44), the controller is an Adaptec AIC-7892A U160/m, the issue is that I can't get more than 40 MB/s out of any of them.

/proc/scsi/scsi :

Host: scsi2 Channel: 00 Id: 00 Lun: 00
  Vendor: COMPAQ   Model: BD07296B44       Rev: HPB6
  Type:   Direct-Access                    ANSI  SCSI revision: 03
Host: scsi2 Channel: 00 Id: 01 Lun: 00
  Vendor: COMPAQ   Model: BD07296B44       Rev: HPB6
  Type:   Direct-Access                    ANSI  SCSI revision: 03
Host: scsi2 Channel: 00 Id: 02 Lun: 00
  Vendor: COMPAQ   Model: BD07296B44       Rev: HPB6
  Type:   Direct-Access                    ANSI  SCSI revision: 03

/proc/scsi/aic7xxx :

Adaptec AIC7xxx driver version: 7.0
Adaptec (Compaq OEM) 29160 Ultra160 SCSI adapter
aic7892: Ultra160 Wide Channel A, SCSI Id=7, 32/253 SCBs
Allocated SCBs: 36, SG List Length: 128

Serial EEPROM:
0xcb3a 0xcb3a ...

Target 0 Negotiation Settings
        User: 160.000MB/s transfers (80.000MHz DT, offset 127, 16bit)
        Goal: 40.000MB/s transfers (40.000MHz, offset 63)
        Curr: 40.000MB/s transfers (40.000MHz, offset 63)
        Channel A Target 0 Lun 0 Settings
                Commands Queued 170636
                Commands Active 1
                Command Openings 31
                Max Tagged Openings 32
                Device Queue Frozen Count 0
Target 1 Negotiation Settings
        User: 160.000MB/s transfers (80.000MHz DT, offset 127, 16bit)
        Goal: 40.000MB/s transfers (40.000MHz, offset 63)
        Curr: 40.000MB/s transfers (40.000MHz, offset 63)
        Channel A Target 1 Lun 0 Settings
                Commands Queued 147132
                Commands Active 0
                Command Openings 32
                Max Tagged Openings 32
                Device Queue Frozen Count 0
Target 2 Negotiation Settings
        User: 160.000MB/s transfers (80.000MHz DT, offset 127, 16bit)
        Goal: 40.000MB/s transfers (40.000MHz, offset 63)
        Curr: 40.000MB/s transfers (40.000MHz, offset 63)
        Channel A Target 2 Lun 0 Settings
                Commands Queued 146405
                Commands Active 0
                Command Openings 32
                Max Tagged Openings 32
                Device Queue Frozen Count 0

dmesg | grep scsi :

scsi host2: Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 7.0
scsi 2:0:0:0: Direct-Access     COMPAQ   BD07296B44       HPB6 PQ: 0 ANSI: 3
scsi2:A:0:0: Tagged Queuing enabled.  Depth 32
scsi target2:0:0: Beginning Domain Validation
scsi target2:0:0: FAST-40 SCSI 40.0 MB/s ST (25 ns, offset 63)
scsi target2:0:0: Domain Validation skipping write tests
scsi target2:0:0: Ending Domain Validation
scsi 2:0:1:0: Direct-Access     COMPAQ   BD07296B44       HPB6 PQ: 0 ANSI: 3
scsi2:A:1:0: Tagged Queuing enabled.  Depth 32
scsi target2:0:1: Beginning Domain Validation
scsi target2:0:1: FAST-40 SCSI 40.0 MB/s ST (25 ns, offset 63)
scsi target2:0:1: Domain Validation skipping write tests
scsi target2:0:1: Ending Domain Validation
scsi 2:0:2:0: Direct-Access     COMPAQ   BD07296B44       HPB6 PQ: 0 ANSI: 3
scsi2:A:2:0: Tagged Queuing enabled.  Depth 32
scsi target2:0:2: Beginning Domain Validation
scsi target2:0:2: FAST-40 SCSI 40.0 MB/s ST (25 ns, offset 63)
scsi target2:0:2: Domain Validation skipping write tests
scsi target2:0:2: Ending Domain Validation

The cable is an LVD Ultra320 cable with a terminator at the end, I already replaced it and the issue persists; the jumper configuration is irrelevant since the issue persists with only a single drive connected to the controller no matter how the jumper is positioned.

There are also pins on the drive's PCB for some "advanced" settings, there was a "narrow/wide" setting with a jumper on it, if I remove it the drive defaults to an even lower speed of 10 MB/s.

The controller is plugged into a standard PCI slot so I can only get a quarter of the bandwidth I'd get on a 64-bit 66 Mhz PCI interface according to the documentation, but that's still 133 MB/s and I'm not even close to that.

Some posts related to similar issues tell to tinker with the settings in the card's option ROM, except this one is an OEM part without any ROM chip on it and the kernel module's options don't have anything that would help solving the issue like disabling auto detection and forcing a particular link speed.

I've searched quite a bit and didn't find anything probing, this old e-mail shows that the controller is at least capable of 80 MB/s, and this recent post shows logs of this controller running at full 160 MB/s, but other than that I didn't find anything that would help me solve this mysterious problem.

Is there anything I can do to improve performance (at least 80 MB/s, but more is even better) besides replacing the hardware ?


Note: I understand that this is old hardware, but as long as it works I'd rather not change it since the cost caused by a failure is basically zero.

  • I hate to be **that** guy, seeing as you've posted a lot of detailed information, but you haven't actually asked a question. IMO, this is nothing more than a statement. Are we to assume that you'd like to know why you're seeing the performance you're seeing and would like an answer as to what you can do about it? – joeqwerty Dec 12 '14 at 18:23
  • @joeqwerty you are right. My original question was along the lines of "is there anything I can do to improve this performance besides replacing the hardware" but I removed it since I felt it was obvious; adding it back. –  Dec 12 '14 at 18:24
  • Internal or external cable? Note that AIC-7892A based controllers often have two ports internally - one LVD (fast devices) and one SE (think slower devices - CDROMS, tape drives etc). If internal and if there are two connectors on the card check if your using the wrong one. – Brian Dec 12 '14 at 20:23
  • @Brian internal port and cable (the external one isn't soldered on the controller board). And there is only one port and it seems like an LVD port, I'll check later to be sure and to see if there is a spot for a second port. –  Dec 12 '14 at 20:25
  • @Brian I checked the controller and there is a port marked "LVD/SE" - not sure what's that supposed to mean, to me it means the port supports both LVD and SE devices but I may be wrong. –  Dec 13 '14 at 17:29

3 Answers3

1

They're only negotiating at 40MBps. It's probably hardware.

Do they negotiate to the same speed in the BIOS? Check your hardware.

Better, replace that ancient rustpile.

MikeyB
  • 39,291
  • 10
  • 105
  • 189
  • There is no BIOS on the card, it's an OEM part without a BIOS/option ROM; hardware was already checked and seems correct (cable was replaced, all three drives have the same issue and I don't think noise is an issue since the setup was tested on a table far away from any noise-generating hardware). –  Dec 12 '14 at 18:28
  • The whole server and disks will be replaced once something breaks, but I'd rather avoid replacing that right now (a server is costly and currently I have more important things to spend money on). –  Dec 12 '14 at 18:32
1

Are your drives SCA (80-pin)? I see that your drive model BD07296B44 may come in 80- and 68-pin varieties. If they are SCA and you are using SCA to 68-pin adapters, then the adapters are almost certainly your problem. I just had this problem recently. My U160 drives and 29160 HBA were all running at 40MB/s. I looked at my setup and one drive was using a 80/68 adapter. I took that drive out and my entire bus suddenly ran at 160MB/s. Problem solved.

If all your drives are SCA, then short of replacing all the drives the only way you'll get >40MB/s is by buying a setup that has native SCA/80-pin, i.e. something with a backplane.

It looks like there are 80/68 adapters that claim to be "Ultra", though the two adapters I tried didn't do more than fast/wide. If you find an adapter that does allow for Ultra (>40MB/s) speed, please let me know.

0

I just ran into the same problem. In my case the issue was that the SCSI cable I was using had the wrong kind of terminator on it. It was not an LVD terminator but rather an SE terminator, which causes the whole bus to drop back to SE speeds. You really need an LVD terminator in order to run the bus faster than 40MB/sec.

As far as I was able to find out, generally an unmarked terminator is passive, one that only says "active" on it is SE (and will limit the bus to 40MB/sec), while ones that say "LVD" (or "LVD/SE" or similar) will allow operation at 80MB/sec and above.

Removing my SE terminator and replacing it with an LVD/SE one got my devices from 40MB/sec up to 160MB/sec. The cards and devices are Ultra320 capable though, so I am wondering whether I need specific Ultra320 cable and terminators to get the last little bit to 320MB/sec, but this at least alleviates the main problem!

Malvineous
  • 1,095
  • 11
  • 28