Most recent kernel where this bug did not occur: 2.6.11-hardened-r15 Distribution: Gentoo Hardware Environment: motherboard: Intel SE7501WV2, Dual Xeon 3.066 GHz, hyperthreading, 4096 Mbyte RAM SCSI Controller: (from lspci) 04:07.0 SCSI storage controller: Adaptec AIC-7902 U320 (rev 03) 04:07.1 SCSI storage controller: Adaptec AIC-7902 U320 (rev 03) ext. RAID: Triple Stor VISMASTER IDE-SCSI 960GB, raid5 with one spare disk Model: IFT-7200 system disk: SEAGATE Model: ST3146807LC Software Environment: Problem Description: Speed negotiation between scsi driver aic79xx and hardware raid (IFT-7200) fails. I detected this with kernels built from Gentoo's hardened sources. With 2.6.11-hardened-r15 everything was fine (from dmesg): Linux version 2.6.11-hardened-r15 (root@kresse) (gcc version 3.3.5-20050130 (Gentoo Linux 3.3.5.20050130-r1, ssp-3.3.5.20050130-1, pie-8.7.7.1)) #1 SMP Wed Jul 27 10:33:06 CEST 2005 ... scsi0 : Adaptec AIC79XX PCI-X SCSI HBA DRIVER, Rev 1.3.11 <Adaptec AIC7902 Ultra320 SCSI adapter> aic7902: Ultra320 Wide Channel A, SCSI Id=7, PCI-X 67-100Mhz, 512 SCBs (scsi0:A:1): 160.000MB/s transfers (80.000MHz DT, 16bit) Vendor: IFT Model: IFT-7200 Rev: 231T Type: Direct-Access ANSI SCSI revision: 04 scsi0:A:1:0: Tagged Queuing enabled. Depth 48 (Kernel 2.6.11-hardened-r15, from /proc/scsi/aic79xx/0, the RAID) ... Target 1 Negotiation Settings User: 160.000MB/s transfers (80.000MHz DT|IU|QAS, 16bit) Goal: 160.000MB/s transfers (80.000MHz DT, 16bit) Curr: 160.000MB/s transfers (80.000MHz DT, 16bit) Transmission Errors 0 Channel A Target 1 Lun 0 Settings Commands Queued 45033 Commands Active 0 Command Openings 48 Max Tagged Openings 48 Device Queue Frozen Count 0 ... but with my next kernel 2.6.14-hardened-r3 the speed negotiation failed (from dmesg): Linux version 2.6.14-hardened-r3 (root@kresse) (gcc version 3.4.4 (Gentoo 3.4.4-r1, ssp-3.4.4-1.0, pie-8.7.8)) #1 SMP PREEMPT Tue Jan 17 15:16:47 CET 2006 ... scsi0 : Adaptec AIC79XX PCI-X SCSI HBA DRIVER, Rev 1.3.11 <Adaptec AIC7902 Ultra320 SCSI adapter> aic7902: Ultra320 Wide Channel A, SCSI Id=7, PCI-X 67-100Mhz, 512 SCBs Vendor: IFT Model: IFT-7200 Rev: 231T Type: Direct-Access ANSI SCSI revision: 04 target0:0:1: asynchronous. scsi0:A:1:0: Tagged Queuing enabled. Depth 48 target0:0:1: Beginning Domain Validation target0:0:1: wide asynchronous. target0:0:1: Domain Validation skipping write tests target0:0:1: Ending Domain Validation (kernel 2.6.14-hardened-r3, from /proc/scsi/aic79xx/0, the RAID) ... Target 1 Negotiation Settings User: 320.000MB/s transfers (160.000MHz RDSTRM|DT|IU|QAS, 16bit) Goal: 3.300MB/s transfers Curr: 3.300MB/s transfers Channel A Target 1 Lun 0 Settings Commands Queued 46461 Commands Active 0 Command Openings 48 Max Tagged Openings 48 Device Queue Frozen Count 0 ... Today I tried kernel 2.6.16-rc1 (vanilla kernel without gentoo patches) and the problem remains (from dmesg): Linux version 2.6.16-rc1 (root@kresse) (gcc version 3.4.4 (Gentoo 3.4.4-r1, ssp-3.4.4-1.0, pie-8.7.8)) #1 SMP PREEMPT Mon Jan 23 15:31:09 CET 2006 BIOS-provided physical RAM map: ... scsi0 : Adaptec AIC79XX PCI-X SCSI HBA DRIVER, Rev 3.0 <Adaptec AIC7902 Ultra320 SCSI adapter> aic7902: Ultra320 Wide Channel A, SCSI Id=7, PCI-X 67-100Mhz, 512 SCBs Vendor: IFT Model: IFT-7200 Rev: 231T Type: Direct-Access ANSI SCSI revision: 04 target0:0:1: asynchronous scsi0:A:1:0: Tagged Queuing enabled. Depth 48 target0:0:1: Beginning Domain Validation target0:0:1: wide asynchronous target0:0:1: Domain Validation skipping write tests target0:0:1: Ending Domain Validation (kernel 2.6.16-rc1, from /proc/scsi/aic79xx/0, the RAID) ... Target 1 Negotiation Settings User: 160.000MB/s transfers (80.000MHz RDSTRM|DT|IU|QAS, 16bit) Goal: 3.300MB/s transfers Curr: 3.300MB/s transfers Channel A Target 1 Lun 0 Settings Commands Queued 16064 Commands Active 0 Command Openings 48 Max Tagged Openings 48 Device Queue Frozen Count 0 ... (See also the bug I filed in the gentoo bugzilla http://bugs.gentoo.org/show_bug.cgi?id=119431) Steps to reproduce: Compiling kernel-2.6.16-rc1 withe the attached config. Booting this kernel. Checking dmesg and /proc/scsi/aic79xx/0 for the speed.
Created attachment 7136 [details] kernel-config-x86-2.6.16-rc1
Created attachment 7137 [details] complete dmesg output of vanilla 2.6.16-rc1
Created attachment 7138 [details] complete /proc/scsi/aic79xx/0 of vanilla 2.6.16-rc1
Today I tried kernel 2.6.17-rc5 (vanilla kernel without gentoo patches) and with two changes in the Adaptec BIOS (both are required for success): - changing speed for ID 1 (the SCSI ID of the RAID) from 320 to 160 - disabled Domain Validation speed negotiation between scsi driver aic79xx and raid was successfull (from dmesg): Linux version 2.6.17-rc5 (root@kresse) (gcc version 3.4.6 (Gentoo 3.4.6-r1, ssp-3.4.5-1.0, pie-8.7.9)) #1 SMP PREEMPT Wed Jun 7 18:03:19 CEST 2006 ... scsi0 : Adaptec AIC79XX PCI-X SCSI HBA DRIVER, Rev 3.0 <Adaptec AIC7902 Ultra320 SCSI adapter> aic7902: Ultra320 Wide Channel A, SCSI Id=7, PCI-X 67-100Mhz, 512 SCBs Vendor: IFT Model: IFT-7200 Rev: 231T Type: Direct-Access ANSI SCSI revision: 04 target0:0:1: asynchronous scsi0:A:1:0: Tagged Queuing enabled. Depth 48 target0:0:1: Beginning Domain Validation target0:0:1: wide asynchronous target0:0:1: FAST-80 WIDE SCSI 160.0 MB/s DT (12.5 ns, offset 62) target0:0:1: Domain Validation skipping write tests target0:0:1: Ending Domain Validation ... For the kernel config, complete dmesg output and /proc/scsi/aic79xx/0 see the attachments.
Created attachment 8273 [details] kernel-config-x86-2.6.17-rc5
Created attachment 8274 [details] complete dmesg output of vanilla 2.6.17-rc5
Created attachment 8275 [details] complete /proc/scsi/aic79xx/0 of vanilla 2.6.17-rc5
So where is the Problem? If you disable Domain Validation from the BIOS it'll only affect the BIOS scan, not the Linux driver. And yes, there are broken backplanes which do _not_ support 320MB/s transfers, mostly the external ones. For those we can't really adjust DV properly but they rather have to be set via the BIOS (those values will be read from the linux driver). So we can close this issue, right?
Right! But let me one thing point out: I also tried Gentoo's 2.6.14-hardened-r8 with the two changes in the Adaptec BIOS but had no success.
That's because I fixed the driver in the meantime :-)