Skip to contentSkip to conversation

aic7xxx regression occuring after 2.6.12 final

DISCUSSION Tony Vroon 3 participants 13 messages Jun 29, 2005 – Jul 2, 2005

Subsystems (2)
lore
Share & tools
lore

Tony Vroon

author
#0 lore raw

Hiya,

For my Adaptec 29160 card; I see a regression after 2.6.12 final. To be exact, these releases work for me:
2.6.12
2.6.12.1

These releases do not work for me:
2.6.12-mm1
2.6.12-mm2
2.6.12-git7
2.6.13-rc1

On a working kernel; I see the following:
ACPI: PCI Interrupt Link [APC3] enabled at IRQ 18
ACPI: PCI Interrupt 0000:01:08.0[A] -> Link [APC3] -> GSI 18 (level, high) -> IRQ 18
scsi0 : Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 6.2.36

        <Adaptec 29160 Ultra160 SCSI adapter>
        aic7892: Ultra160 Wide Channel A, SCSI Id=7, 32/253 SCBs

Vendor: FUJITSU Model: MAP3367NP Rev: 0106
Type: Direct-Access ANSI SCSI revision: 03
scsi0:A:0:0: Tagged Queuing enabled. Depth 253
target0:0:0: Beginning Domain Validation
WIDTH IS 1
(scsi0:A:0): 6.600MB/s transfers (16bit)
(scsi0:A:0): 160.000MB/s transfers (80.000MHz DT, offset 127, 16bit)
target0:0:0: Ending Domain Validation

On a failing kernel, I see:
ACPI: PCI Interrupt Link [APC3] enabled at IRQ 18
ACPI: PCI Interrupt 0000:01:08.0[A] -> Link [APC3] -> GSI 18 (level, high) -> IRQ 18
scsi0 : Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 6.2.36

        <Adaptec 29160 Ultra160 SCSI adapter>
        aic7892: Ultra160 Wide Channel A, SCSI Id=7, 32/253 SCBs

target0:0:0: asynchronous
Vendor: FUJITSU Model: MAP3367NP Rev: 0106
Type: Direct-Access ANSI SCSI revision: 03
scsi0:A:0:0: Tagged Queuing enabled. Depth 253
target0:0:0: Beginning Domain Validation target0:0:0: wide asynchronous
(scsi0:A:0): refuses tagged commands. Performing non-tagged I/O
target0:0:0: asynchronous
[The PC hangs at this point]

lspci output for the adapter:
0000:01:08.0 SCSI storage controller: Adaptec AIC-7892A U160/m (rev 02)
Subsystem: Adaptec 29160 Ultra160 SCSI Controller
Flags: bus master, 66Mhz, medium devsel, latency 32, IRQ 18 BIST result: 00
I/O ports at d800 [disabled] [size=256]
Memory at db000000 (64-bit, non-prefetchable) [size=4K]
Capabilities: [dc] Power Management version 2

Please let me know if there are specific patches I need to apply or revert to debug this. I have more drives on this controller; to be exact I have 2 U320-capable drives and one U160-capable drive on wide channel A; and 3 removable media units (CD-R, DVD, CD-ROM) on the 50-pin SCSI-bus.

Thanks,
Tony.
(Please CC replies to me as I am not subscribed to LKML or linux-scsi)

author
#1 lore raw
Quoted 10 lines · Tony Vroon

For my Adaptec 29160 card; I see a regression after 2.6.12 final. To be exact, these releases work for me:
2.6.12
2.6.12.1

These releases do not work for me:
2.6.12-mm1
2.6.12-mm2
2.6.12-git7
2.6.13-rc1

I can add 2.6.13-rc1-mm1 to that list.

Quoted 1 line

On a working kernel; I see the following:

I'd like to extend this so all devices on this adapter are visible, perhaps it helps in debugging this case. Note that I also lowered the tagged queuing depth to the default of 32. This had no effect.:
ACPI: PCI Interrupt Link [APC3] enabled at IRQ 18
ACPI: PCI Interrupt 0000:01:08.0[A] -> Link [APC3] -> GSI 18 (level, high) -> IRQ 18
scsi0 : Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 6.2.36

        <Adaptec 29160 Ultra160 SCSI adapter>
        aic7892: Ultra160 Wide Channel A, SCSI Id=7, 32/253 SCBs

Vendor: FUJITSU Model: MAP3367NP Rev: 0106
Type: Direct-Access ANSI SCSI revision: 03
scsi0:A:0:0: Tagged Queuing enabled. Depth 32
target0:0:0: Beginning Domain Validation
WIDTH IS 1
(scsi0:A:0): 6.600MB/s transfers (16bit)
(scsi0:A:0): 160.000MB/s transfers (80.000MHz DT, offset 127, 16bit)
target0:0:0: Ending Domain Validation
(scsi0:A:1:0): refuses WIDE negotiation. Using 8bit transfers
Vendor: YAMAHA Model: CRW2100S Rev: 1.0N
Type: CD-ROM ANSI SCSI revision: 02
target0:0:1: Beginning Domain Validation
target0:0:1: Domain Validation skipping write tests
(scsi0:A:1): 20.000MB/s transfers (20.000MHz, offset 7)
target0:0:1: Ending Domain Validation
(scsi0:A:2:0): refuses WIDE negotiation. Using 8bit transfers
Vendor: PIONEER Model: DVD-ROM DVD-305 Rev: 1.03
Type: CD-ROM ANSI SCSI revision: 02
target0:0:2: Beginning Domain Validation
target0:0:2: Domain Validation skipping write tests
(scsi0:A:2): 20.000MB/s transfers (20.000MHz, offset 16)
target0:0:2: Ending Domain Validation
Vendor: PLEXTOR Model: CD-ROM PX-40TS Rev: 1.11
Type: CD-ROM ANSI SCSI revision: 02
target0:0:3: Beginning Domain Validation
target0:0:3: Domain Validation skipping write tests
(scsi0:A:3): 20.000MB/s transfers (20.000MHz, offset 15)
target0:0:3: Ending Domain Validation
Vendor: QUANTUM Model: ATLAS10K3_36_SCA Rev: 020W
Type: Direct-Access ANSI SCSI revision: 03
scsi0:A:5:0: Tagged Queuing enabled. Depth 32
target0:0:5: Beginning Domain Validation
WIDTH IS 1
(scsi0:A:5): 6.600MB/s transfers (16bit)
(scsi0:A:5): 160.000MB/s transfers (80.000MHz DT, offset 127, 16bit)
target0:0:5: Ending Domain Validation
Vendor: SEAGATE Model: ST373405LC Rev: 0003
Type: Direct-Access ANSI SCSI revision: 03
scsi0:A:6:0: Tagged Queuing enabled. Depth 32
target0:0:6: Beginning Domain Validation
WIDTH IS 1(scsi0:A:6): 6.600MB/s transfers (16bit) (scsi0:A:6): 160.000MB/s transfers (80.000MHz DT, offset 63, 16bit)
target0:0:6: Ending Domain Validation
SCSI device sda: 71775284 512-byte hdwr sectors (36749 MB) SCSI device sda: drive cache: write back
SCSI device sda: 71775284 512-byte hdwr sectors (36749 MB) SCSI device sda: drive cache: write back
sda: sda1 sda2 sda3
Attached scsi disk sda at scsi0, channel 0, id 0, lun 0 SCSI device sdb: 71833096 512-byte hdwr sectors (36779 MB) SCSI device sdb: drive cache: write back
SCSI device sdb: 71833096 512-byte hdwr sectors (36779 MB) SCSI device sdb: drive cache: write back
sdb: sdb1
Attached scsi disk sdb at scsi0, channel 0, id 5, lun 0 CSI device sdc: 143374738 512-byte hdwr sectors (73408 MB) SCSI device sdc: drive cache: write back
SCSI device sdc: 143374738 512-byte hdwr sectors (73408 MB) SCSI device sdc: drive cache: write back
sdc: sdc1
Attached scsi disk sdc at scsi0, channel 0, id 6, lun 0
sr0: scsi3-mmc drive: 40x/40x writer cd/rw xa/form2 cdda tray Uniform CD-ROM driver Revision: 3.20
Attached scsi CD-ROM sr0 at scsi0, channel 0, id 1, lun 0
sr1: scsi3-mmc drive: 16x/40x cd/rw xa/form2 cdda tray Attached scsi CD-ROM sr1 at scsi0, channel 0, id 2, lun 0
sr2: scsi-1 drive
Attached scsi CD-ROM sr2 at scsi0, channel 0, id 3, lun 0

Attached scsi generic sg0 at scsi0, channel 0, id 0, lun 0,  type 0
Attached scsi generic sg1 at scsi0, channel 0, id 1, lun 0,  type 5
Attached scsi generic sg2 at scsi0, channel 0, id 2, lun 0,  type 5
Attached scsi generic sg3 at scsi0, channel 0, id 3, lun 0,  type 5
Attached scsi generic sg4 at scsi0, channel 0, id 5, lun 0,  type 0
Attached scsi generic sg5 at scsi0, channel 0, id 6, lun 0,  type 0
Quoted 1 line

On a failing kernel, I see:

I still see this on 2.6.13-rc1-mm1:

ACPI: PCI Interrupt Link [APC3] enabled at IRQ 18
ACPI: PCI Interrupt 0000:01:08.0[A] -> Link [APC3] -> GSI 18 (level,high) -> IRQ 18 scsi0 : Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 6.2.36

        <Adaptec 29160 Ultra160 SCSI adapter>
        aic7892: Ultra160 Wide Channel A, SCSI Id=7, 32/253 SCBs

target0:0:0: asynchronous
Vendor: FUJITSU Model: MAP3367NP Rev: 0106
Type: Direct-Access ANSI SCSI revision: 03
scsi0:A:0:0: Tagged Queuing enabled. Depth 32
target0:0:0: Beginning Domain Validation target0:0:0: wide asynchronous
(scsi0:A:0): refuses tagged commands. Performing non-tagged I/O
target0:0:0: asynchronous
[The PC hangs at this point]

Quoted 11 lines

lspci output for the adapter:
0000:01:08.0 SCSI storage controller: Adaptec AIC-7892A U160/m (rev 02)
Subsystem: Adaptec 29160 Ultra160 SCSI Controller
Flags: bus master, 66Mhz, medium devsel, latency 32, IRQ 18 BIST result: 00
I/O ports at d800 [disabled] [size=256]
Memory at db000000 (64-bit, non-prefetchable) [size=4K]
Capabilities: [dc] Power Management version 2

Please let me know if there are specific patches I need to apply or revert to debug this.

This stands. I would like to debug this, but a few recommendations of what to do and where to start would be appreciated.

Quoted 4 lines

I have more drives on this controller; to be exact
I have 2 U320-capable drives and one U160-capable drive on wide channel A; and 3 removable media units (CD-R, DVD, CD-ROM) on the 50-pin SCSI-bus.

Thanks,
Tony.
(Please CC replies to me as I am not subscribed to LKML or linux-scsi)

#2 lore raw
Quoted 9 lines · Tony Vroon

target0:0:0: asynchronous
Vendor: FUJITSU Model: MAP3367NP Rev: 0106
Type: Direct-Access ANSI SCSI revision: 03
scsi0:A:0:0: Tagged Queuing enabled. Depth 32
target0:0:0: Beginning Domain Validation target0:0:0: wide asynchronous
(scsi0:A:0): refuses tagged commands. Performing non-tagged I/O
target0:0:0: asynchronous
[The PC hangs at this point]

Well, my best guess is that this is a double bug. I think the aic7xxx_core is processing the reject wrongly and the device is rejecting a QAS or IU negotiation attempt.

So, see if the attached patch helps.

Thanks,

James

drivers/scsi/scsi_transport_spi.c +8 -5
@@ -787,7 +787,8 @@ spi_dv_device_internal(struct scsi_devic
 	}
 
 	/* test width */
-	if (i->f->set_width && spi_max_width(starget) && sdev->wdtr) {
+	if (i->f->set_width && spi_max_width(starget) &&
+	    scsi_device_wide(sdev)) {
 		i->f->set_width(starget, 1);
 
 		if (spi_dv_device_compare_inquiry(sdev, buffer,
@@ -803,14 +804,14 @@ spi_dv_device_internal(struct scsi_devic
 		return;
 
 	/* device can't handle synchronous */
-	if (!sdev->ppr && !sdev->sdtr)
+	if (!scsi_device_sync(sdev) && !scsi_device_dt(sdev))
 		return;
 
 	/* see if the device has an echo buffer.  If it does we can
 	 * do the SPI pattern write tests */
 
 	len = 0;
-	if (sdev->ppr)
+	if (scsi_device_dt(sdev))
 		len = spi_dv_device_get_echo_buffer(sdev, buffer);
 
  retry:
@@ -820,9 +821,11 @@ spi_dv_device_internal(struct scsi_devic
 	DV_SET(period, spi_min_period(starget));
 	/* try QAS requests; this should be harmless to set if the
 	 * target supports it */
-	DV_SET(qas, 1);
+	if (scsi_device_qas(sdev))
+		DV_SET(qas, 1);
 	/* Also try IU transfers */
-	DV_SET(iu, 1);
+	if (scsi_device_ius(sdev))
+		DV_SET(iu, 1);
 	if (spi_min_period(starget) < 9) {
 		/* This u320 (or u640). Ignore the coupled parameters
 		 * like DT and IU, but set the optional ones */
author
#3 lore raw
Quoted 5 lines · James Bottomley

Well, my best guess is that this is a double bug. I think the aic7xxx_core is processing the reject wrongly and the device is rejecting a QAS or IU negotiation attempt.

So, see if the attached patch helps.

Unfortunately I see no visible changes in the output; the system hangs at the same point.
What does that asynchronous line mean? I see that on all kernels that do not boot properly. 2.6.12; 2.6.12.1 and 2.6.12.2 do not display it, and boot just fine.

target0:0:0: asynchronous

It appears even before vendor & model information is displayed for the Fujitsu drive.

Quoted 1 line

James

Tony.

#4 lore raw
Quoted 5 lines · Tony Vroon

What does that asynchronous line mean? I see that on all kernels that do not boot properly. 2.6.12; 2.6.12.1 and 2.6.12.2 do not display it, and boot just fine.

target0:0:0: asynchronous

It means the target is sending data asynchronously (the slowest and safest speed).

Could you try booting with aic7xxx=verbose to see what the device thinks its negotiating?

Thanks,

James

author
#5 lore raw
Quoted 2 lines · James Bottomley

Could you try booting with aic7xxx=verbose to see what the device thinks its negotiating?

scsi0: Slave Alloc 0
(scsi0:A:0:0): Sending WDTR 0
(scsi0:A:0:0): Received WDTR 0 filtered to 0
target0:0:0: FAST-5 SCSI 1.0 MB/s ST (1020 ns, offset 255)
scsi0: target 0 using 8bit transfers (scsi0:A:0:0): Sending SDTR period 45, offset 0 (scsi0:A:0:0): Received SDTR period 45, offset 0 Filtered to period 0, offset 0
target0:0:0: asynchronous
scsi0: target 0 using asynchronous transfers [vendor information follows; Fujitsu MAP 36.7GB drive]

Quoted 1 line

James

Tony.

#6 lore raw
Quoted 2 lines · Tony Vroon

wscsi0: target 0 using asynchronous transfers [vendor information follows; Fujitsu MAP 36.7GB drive]

There should be more debugging information after this as the device goes through domain validation, isn't there?

James

author
#7 lore raw
Quoted 2 lines · James Bottomley

There should be more debugging information after this as the device goes through domain validation, isn't there?

There is, but I have to write this out manually. I have only one PC available. Got myself more paper and a better pen. Here it is:

scsi0 : Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 6.2.36

        <Adaptec 29160 Ultra160 SCSI adapter>
        aic7892: Ultra160 Wide Channel A, SCSI Id=7, 32/253 SCBs

scsi0: Slave Alloc 0
(scsi0:A:0:0): Sending WDTR 0
(scsi0:A:0:0): Received WDTR 0 filtered to 0
target0:0:0: FAST-5 SCSI 1.0 MB/s ST (1020 ns, offset 255)
scsi0: target 0 using 8bit transfers
(scsi0:A:0:0): Sending SDTR period 45, offset 0 (scsi0:A:0:0): Received SDTR period 45, offset 0
Filtered to period 0, offset 0
target0:0:0: asynchronous.
scsi0: target 0 using asynchronous transfers
Vendor: FUJITSU Model: MAP3367NP Rev: 0106
Type: Direct-Access ANSI SCSI revision: 03
scsi0: Slave Configure 0
target0:0:0: asynchronous.
scsi0:A:0:0:0: Tagged Queuing enabled. Depth 32
target0:0:0: Beginning Domain Validation
(scsi0:A:0:0): Sending WDTR 1
(scsi0:A:0:0): Received WDTR 1 filtered to 1
target0:0:0: FAST-5 WIDE SCSI 2.0 MB/s ST (1020 ns, offset 255)
scsi0: target 0 using 16bit transfers
(scsi0:A:0:0): Sending SDTR period 45, offset 0 (scsi0:A:0:0): Received SDTR period 45, offset 0
Filtered to period 0, offset 0
target0:0:0: wide asynchronous
scsi0: target 0 using asynchronous transfers
(scsi0:A:0:0): Sending PPR bus_width 1, period 9, offset 7f, ppr_options 7
(scsi0:A:0:0): Received PPR bus_width 1, period 9, offset 7f, ppr_options 7
Filtered to width 0, period 0, offset 0, options 0
target0:0:0: asynchronous.
scsi0: target 0 using 8bit transfers
(scsi0:A:0:0): refuses tagged comands. Performing non-tagged I/O
target0:0:0: asynchronous
*PC hangs here*

Quoted 1 line

James

Tony.

#8 lore raw
Quoted 5 lines · Tony Vroon

(scsi0:A:0:0): Sending PPR bus_width 1, period 9, offset 7f, ppr_options 7
(scsi0:A:0:0): Received PPR bus_width 1, period 9, offset 7f, ppr_options 7
Filtered to width 0, period 0, offset 0, options 0

Well, I think this is it. The drive is actually offering IU and QAS. That's fun; I've never seen a u160 drive that could do those before. Although the aic7xxx driver is apparently coded to allow this, it looks like the code paths have never been exercised.

So, although I think this patch will fix up the first error, there's probably a long line behind it ...

James

(quoted diff) +0 -0

b/drivers/scsi/aic7xxx/aic7xxx_core.c

drivers/scsi/aic7xxx/aic7xxx_core.c +2 -1
@@ -3258,7 +3258,8 @@ ahc_parse_msg(struct ahc_softc *ahc, str
 			 * on any controller.  Transfer options are
 			 * only available if we are negotiating wide.
 			 */
-			ppr_options &= MSG_EXT_PPR_DT_REQ;
+			ppr_options &= MSG_EXT_PPR_DT_REQ |
+			  MSG_EXT_PPR_QAS_REQ | MSG_EXT_PPR_IU_REQ;
 			if (bus_width == 0)
 				ppr_options = 0;
 
author
#9 lore raw
Quoted 2 lines · James Bottomley

Well, I think this is it. The drive is actually offering IU and QAS. That's fun; I've never seen a u160 drive that could do those before.

The Fujitsu is a U320 unit, just like my Seagate. It's just the controller that's the limiting factor.

Quoted 4 lines

Although the aic7xxx driver is apparently coded to allow this, it looks like the code paths have never been exercised.
So, although I think this patch will fix up the first error, there's probably a long line behind it ...

As you predicted, it tried but gave up.

Output follows:
scsi0 : Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 6.2.36

        <Adaptec 29160 Ultra160 SCSI adapter>
        aic7892: Ultra160 Wide Channel A, SCSI Id=7, 32/253 SCBs

scsi0: Slave Alloc 0
(scsi0:A:0:0): Sending WDTR 0
(scsi0:A:0:0): Received WDTR 0 filtered to 0
target0:0:0: FAST-5 SCSI 1.0 MB/s ST (1020 ns, offset 255)
scsi0: target 0 using 8bit transfers
(scsi0:A:0:0): Sending SDTR period 45, offset 0 (scsi0:A:0:0): Received SDTR period 45, offset 0
Filtered to period 0, offset 0
target0:0:0: asynchronous.
scsi0: target 0 using asynchronous transfers
Vendor: FUJITSU Model: MAP3367NP Rev: 0106
Type: Direct-Access ANSI SCSI revision: 03
scsi0: Slave Configure 0
target0:0:0: asynchronous.
scsi0:A:0:0:0: Tagged Queuing enabled. Depth 32
target0:0:0: Beginning Domain Validation
(scsi0:A:0:0): Sending WDTR 1
(scsi0:A:0:0): Received WDTR 1 filtered to 1
target0:0:0: FAST-5 WIDE SCSI 2.0 MB/s ST (1020 ns, offset 255)
scsi0: target 0 using 16bit transfers
(scsi0:A:0:0): Sending SDTR period 45, offset 0 (scsi0:A:0:0): Received SDTR period 45, offset 0
Filtered to period 0, offset 0
target0:0:0: wide asynchronous
scsi0: target 0 using asynchronous transfers
(scsi0:A:0:0): Sending PPR bus_width 1, period 9, offset 7f, ppr_options 7
(scsi0:A:0:0): Received PPR bus_width 1, period 9, offset 7f, ppr_options 7
Filtered to width 1, period 9, offset 7f, options 7
target0:0:0: FAST-80 WIDE SCSI 160.0 Mscsi0: target 0 synchronous at
80.0MHz DT, offset = 0x7
(scsi0:A:0:0): Unexpected busfree in Message-in phease SEQADDR == 0x16b
target0:0:0: Write Buffer failure 70000
target0:0:0: Domain Validation Disabling Information Units
(scsi0:A:0:0): Sending PPR bus_width 1, period 9, offset 7f, ppr_options 6
(scsi0:A:0:0): refuses tagged comands. Performing non-tagged I/O
target0:0:0: FAST-80 WIDE SCSI 160.0 MB/s ST IU (12.5 ns, offset 127)
*PC hangs here*

#10 lore raw
Quoted 1 line · Tony Vroon

Output follows:

It got mangled somehow. Not sure what happened but it's corrupted near the end. Reposting:
scsi0 : Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 6.2.36

        <Adaptec 29160 Ultra160 SCSI adapter>
        aic7892: Ultra160 Wide Channel A, SCSI Id=7, 32/253 SCBs

scsi0: Slave Alloc 0
(scsi0:A:0:0): Sending WDTR 0
(scsi0:A:0:0): Received WDTR 0 filtered to 0
target0:0:0: FAST-5 SCSI 1.0 MB/s ST (1020 ns, offset 255)
scsi0: target 0 using 8bit transfers
(scsi0:A:0:0): Sending SDTR period 45, offset 0 (scsi0:A:0:0): Received SDTR period 45, offset 0
Filtered to period 0, offset 0
target0:0:0: asynchronous.
scsi0: target 0 using asynchronous transfers
Vendor: FUJITSU Model: MAP3367NP Rev: 0106
Type: Direct-Access ANSI SCSI revision: 03
scsi0: Slave Configure 0
target0:0:0: asynchronous.
scsi0:A:0:0:0: Tagged Queuing enabled. Depth 32
target0:0:0: Beginning Domain Validation
(scsi0:A:0:0): Sending WDTR 1
(scsi0:A:0:0): Received WDTR 1 filtered to 1
target0:0:0: FAST-5 WIDE SCSI 2.0 MB/s ST (1020 ns, offset 255)
scsi0: target 0 using 16bit transfers
(scsi0:A:0:0): Sending SDTR period 45, offset 0 (scsi0:A:0:0): Received SDTR period 45, offset 0
Filtered to period 0, offset 0
target0:0:0: wide asynchronous
csi0: target 0 using asynchronous transfers
(scsi0:A:0:0): Sending PPR bus_width 1, period 9, offset 7f, ppr_options 7
(scsi0:A:0:0): Received PPR bus_width 1, period 9, offset 7f, ppr_options 7
Filtered to width 1, period 9, offset 7f, options 7
target0:0:0: FAST-80 WIDE SCSI 160.0 MB/s ST IU (12.5ns, offset 127)
scsi0: target 0 synchronous at 80.0MHz DT, offset = 0x7 (scsi0:A:0:0): Unexpected busfree in Message-in phase SEQADDR == 0x16b
target0:0:0: Write Buffer failure 70000
target0:0:0: Domain Validation Disabling Information Units
(scsi0:A:0:0): Sending PPR bus_width 1, period 9, offset 7f, ppr_options 6
(scsi0:A:0:0): refuses tagged comands. Performing non-tagged I/O
target0:0:0: FAST-80 WIDE SCSI 160.0 MB/s ST IU (12.5 ns, offset 127)
*PC hangs here*

#11 lore raw
In reply to Tony Vroon
Quoted 1 line · Tony Vroon

As you predicted, it tried but gave up.

Well, I've looked more closely at this. There's no support in either the core or the sequencer for IU or QAS, so I think the safe course is just to strip them out of the transport parameters (I don't have the sequencer docs anyway, so there's no way I can correct the problem).

This should, therefore, get the whole lot booting again.

James

drivers/scsi/aic7xxx/aic7xxx_osm.c +8 -0
@@ -2633,6 +2633,11 @@ static void ahc_linux_set_dt(struct scsi
 	ahc_unlock(ahc, &flags);
 }
 
+#if 0
+/* FIXME: This code claims to support IU and QAS.  However, the actual
+ * sequencer code and aic7xxx_core have no support for these parameters and
+ * will get into a bad state if they're negotiated.  Do not enable this
+ * unless you know what you're doing */
 static void ahc_linux_set_qas(struct scsi_target *starget, int qas)
 {
 	struct Scsi_Host *shost = dev_to_shost(starget->dev.parent);
@@ -2688,6 +2693,7 @@ static void ahc_linux_set_iu(struct scsi
 			 ppr_options, AHC_TRANS_GOAL, FALSE);
 	ahc_unlock(ahc, &flags);
 }
+#endif
 
 static struct spi_function_template ahc_linux_transport_functions = {
 	.set_offset	= ahc_linux_set_offset,
@@ -2698,10 +2704,12 @@ static struct spi_function_template ahc_
 	.show_width	= 1,
 	.set_dt		= ahc_linux_set_dt,
 	.show_dt	= 1,
+#if 0
 	.set_iu		= ahc_linux_set_iu,
 	.show_iu	= 1,
 	.set_qas	= ahc_linux_set_qas,
 	.show_qas	= 1,
+#endif
 };
 
 
author
#12 lore raw
Quoted 1 line · James Bottomley

This should, therefore, get the whole lot booting again.

Confirmed. Thumbs up :)

For good measure, here is the relevant bit of dmesg output:
CPI: PCI Interrupt Link [APC3] enabled at IRQ 18
ACPI: PCI Interrupt 0000:01:08.0[A] -> Link [APC3] -> GSI 18 (level, high) -> IRQ 17
scsi0 : Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 6.2.36

        <Adaptec 29160 Ultra160 SCSI adapter>
        aic7892: Ultra160 Wide Channel A, SCSI Id=7, 32/253 SCBs

target0:0:0: asynchronous.
Vendor: FUJITSU Model: MAP3367NP Rev: 0106
Type: Direct-Access ANSI SCSI revision: 03
scsi0:A:0:0: Tagged Queuing enabled. Depth 32
target0:0:0: Beginning Domain Validation
target0:0:0: wide asynchronous.
target0:0:0: FAST-80 WIDE SCSI 160.0 MB/s ST (12.5 ns, offset 127) target0:0:0: Ending Domain Validation
(scsi0:A:1:0): refuses WIDE negotiation. Using 8bit transfers
target0:0:1: asynchronous.
Vendor: YAMAHA Model: CRW2100S Rev: 1.0N
Type: CD-ROM ANSI SCSI revision: 02
target0:0:1: Beginning Domain Validation
target0:0:1: Domain Validation skipping write tests target0:0:1: FAST-20 SCSI 20.0 MB/s ST (50 ns, offset 7) target0:0:1: Ending Domain Validation
(scsi0:A:2:0): refuses WIDE negotiation. Using 8bit transfers
target0:0:2: asynchronous.
Vendor: PIONEER Model: DVD-ROM DVD-305 Rev: 1.03
Type: CD-ROM ANSI SCSI revision: 02
target0:0:2: Beginning Domain Validation
target0:0:2: Domain Validation skipping write tests target0:0:2: FAST-20 SCSI 20.0 MB/s ST (50 ns, offset 16) target0:0:2: Ending Domain Validation
target0:0:3: asynchronous.
Vendor: PLEXTOR Model: CD-ROM PX-40TS Rev: 1.11
Type: CD-ROM ANSI SCSI revision: 02
target0:0:3: Beginning Domain Validation
target0:0:3: Domain Validation skipping write tests target0:0:3: FAST-20 SCSI 20.0 MB/s ST (50 ns, offset 15) target0:0:3: Ending Domain Validation
target0:0:5: asynchronous.
Vendor: QUANTUM Model: ATLAS10K3_36_SCA Rev: 020W
Type: Direct-Access ANSI SCSI revision: 03
scsi0:A:5:0: Tagged Queuing enabled. Depth 32
target0:0:5: Beginning Domain Validation
target0:0:5: wide asynchronous.
target0:0:5: FAST-80 WIDE SCSI 160.0 MB/s ST (12.5 ns, offset 127) target0:0:5: Ending Domain Validation
scsi0:A:6:0: Tagged Queuing enabled. Depth 32
target0:0:6: Beginning Domain Validation
target0:0:6: wide asynchronous.
target0:0:6: FAST-80 WIDE SCSI 160.0 MB/s ST (12.5 ns, offset 63) target0:0:6: Ending Domain Validation
SCSI device sda: 71775284 512-byte hdwr sectors (36749 MB) SCSI device sda: drive cache: write back
SCSI device sda: 71775284 512-byte hdwr sectors (36749 MB) SCSI device sda: drive cache: write back
sda: sda1 sda2 sda3
Attached scsi disk sda at scsi0, channel 0, id 0, lun 0 SCSI device sdb: 71833096 512-byte hdwr sectors (36779 MB) SCSI device sdb: drive cache: write back
SCSI device sdb: 71833096 512-byte hdwr sectors (36779 MB) SCSI device sdb: drive cache: write back
sdb: sdb1
Attached scsi disk sdb at scsi0, channel 0, id 5, lun 0 ttached scsi disk sdb at scsi0, channel 0, id 5, lun 0 SCSI device sdc: 143374738 512-byte hdwr sectors (73408 MB) SCSI device sdc: drive cache: write back
SCSI device sdc: 143374738 512-byte hdwr sectors (73408 MB) SCSI device sdc: drive cache: write back
sdc: sdc1
Attached scsi disk sdc at scsi0, channel 0, id 6, lun 0
sr0: scsi3-mmc drive: 40x/40x writer cd/rw xa/form2 cdda tray Uniform CD-ROM driver Revision: 3.20
Attached scsi CD-ROM sr0 at scsi0, channel 0, id 1, lun 0
sr1: scsi3-mmc drive: 16x/40x cd/rw xa/form2 cdda tray Attached scsi CD-ROM sr1 at scsi0, channel 0, id 2, lun 0
sr2: scsi-1 drive
Attached scsi CD-ROM sr2 at scsi0, channel 0, id 3, lun 0

Attached scsi generic sg0 at scsi0, channel 0, id 0, lun 0,  type 0
Attached scsi generic sg1 at scsi0, channel 0, id 1, lun 0,  type 5
Attached scsi generic sg2 at scsi0, channel 0, id 2, lun 0,  type 5
Attached scsi generic sg3 at scsi0, channel 0, id 3, lun 0,  type 5
Attached scsi generic sg4 at scsi0, channel 0, id 5, lun 0,  type 0
Attached scsi generic sg5 at scsi0, channel 0, id 6, lun 0,  type 0