2008-02-23 17:48:24

by Vegard Nossum

[permalink] [raw]
Subject: ata1.00: failed to IDENTIFY (I/O error, err_mask=0x4)

Hi,

I am experiencing a strange problem with 2.6.23.15-137.fc8 (Fedora 8)
kernel. Everything works fine, but if I provide the "nosmp" option to
the kernel, I get some (S)ATA errors and the system does not boot.

Here is a screenshot:
http://folk.uio.no/vegardno/DSCF2543.JPG

Handwritten summary:
scsi0 : ahci
scsi1 : ahci
ata1: SATA max UDMA/133 cmd 0xf884c100 ctl 0x00000000 bmdma 0x000...
ata2: SATA max UDMA/133 cmd 0xf884c180 ctl 0x00000000 bmdma 0x000...
ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata1.00: qc timeout (cmd 0xec)
ata1.00: failed to IDENTIFY (I/O error, err_mask=0x4)
ata1: port is slow to respond, please be patient (Status 0x80)
ata1: COMRESET failed (errno=-16)
ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
...

I don't see the connection between (no-)smp and ata. Something with
interrupt routing/IPI, missing irq ack? Booting another !SMP kernel
works fine. The problem also exists in 2.6.24-rc2.


Kind regards,
Vegard Nossum


2008-02-23 18:42:15

by Alan

[permalink] [raw]
Subject: Re: ata1.00: failed to IDENTIFY (I/O error, err_mask=0x4)

O> I don't see the connection between (no-)smp and ata. Something with
> interrupt routing/IPI, missing irq ack? Booting another !SMP kernel
> works fine. The problem also exists in 2.6.24-rc2.

Almost certainly interrupt routing try smp but with noapic and see if it
fails as well ?

2008-02-23 18:46:48

by Vegard Nossum

[permalink] [raw]
Subject: Re: ata1.00: failed to IDENTIFY (I/O error, err_mask=0x4)

On Sat, Feb 23, 2008 at 7:31 PM, Alan Cox <[email protected]> wrote:
> O> I don't see the connection between (no-)smp and ata. Something with
>
> > interrupt routing/IPI, missing irq ack? Booting another !SMP kernel
> > works fine. The problem also exists in 2.6.24-rc2.
>
> Almost certainly interrupt routing try smp but with noapic and see if it
> fails as well ?

Just a quick follow-up. On regular bootups, I get this message:

ata1: SATA max UDMA/133 cmd 0xf8850100 ctl 0x00000000 bmdma 0x00000000 irq 218
ata2: SATA max UDMA/133 cmd 0xf8850180 ctl 0x00000000 bmdma 0x00000000 irq 218

while the nosmp one gets this (the screenshot cut the irq part):

ata1: SATA max UDMA/133 abar m2048@0x9b304000 port 0x9b304100 irq 223
ata2: SATA max UDMA/133 abar m2048@0x9b304000 port 0x9b304100 irq 223

Don't know if the irq # change is significant or not. Will try noapic now.


Vegard

2008-02-23 18:52:49

by Vegard Nossum

[permalink] [raw]
Subject: Re: ata1.00: failed to IDENTIFY (I/O error, err_mask=0x4)

On Sat, Feb 23, 2008 at 7:31 PM, Alan Cox <[email protected]> wrote:
> O> I don't see the connection between (no-)smp and ata. Something with
>
> > interrupt routing/IPI, missing irq ack? Booting another !SMP kernel
> > works fine. The problem also exists in 2.6.24-rc2.
>
> Almost certainly interrupt routing try smp but with noapic and see if it
> fails as well ?

noapic works fine.


V

2008-02-25 20:03:57

by Chuck Ebbert

[permalink] [raw]
Subject: Re: ata1.00: failed to IDENTIFY (I/O error, err_mask=0x4)

On 02/23/2008 12:48 PM, Vegard Nossum wrote:
>
> I don't see the connection between (no-)smp and ata. Something with
> interrupt routing/IPI, missing irq ack? Booting another !SMP kernel
> works fine. The problem also exists in 2.6.24-rc2.
>

"nosmp" disables the IO-APIC which will change interrupt handling.

If you just want to enable a single CPU, use "maxcpus=1".