Re: 2.6.24.X: SATA/AHCI related boot delay. - not with 2.6.24.3

From: Tejun Heo
Date: Tue Mar 18 2008 - 08:56:41 EST


Volker Armin Hemmann wrote:
> it was for a little bit more than 24h. I booted and rebooted several times to
> make sure - and everything was fine, but after a good night and on the Xth
> boot, the hang occured again - and since then it is there. Reliable on every
> boot :(
> (and the softreset failed message on reboots).
> Of course, I booted and rebooted several times. And it stays.
>
> Maybe it is the hardware. But I replaced the cables already and smart says the
> disk is ok.

Does the attached patch make any difference?

>>> Setting AHCI in bios still results in timeouts and harddisks not found.
>> Does pci=nomsi help?
>
> oh yes!
> It does. I changed the 'Sata operation mode' setting from 'non raid' to AHCI,
> booted with that option:
>
> the most obvious change are the different interrupts: 23 instead of 315
> (non-raid, without nosmi) or 218 (systemrescuecd 1.0, ahci setting, without
> nosmi)

Yeah, that sounds about right. Hmm... Can you post the result of "lspci
-nn"?

--
tejun
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index 6978469..5065404 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -402,6 +402,7 @@ static const struct ata_port_operations ahci_p5wdh_ops = {
static const struct ata_port_info ahci_port_info[] = {
/* board_ahci */
{
+ AHCI_HFLAGS (AHCI_HFLAG_NO_PMP),
.flags = AHCI_FLAG_COMMON,
.link_flags = AHCI_LFLAG_COMMON,
.pio_mask = 0x1f, /* pio0-4 */
@@ -1863,7 +1864,7 @@ static void ahci_error_handler(struct ata_port *ap)

/* perform recovery */
sata_pmp_do_eh(ap, ata_std_prereset, ahci_softreset,
- ahci_hardreset, ahci_postreset,
+ NULL/*ahci_hardreset*/, ahci_postreset,
sata_pmp_std_prereset, ahci_pmp_softreset,
sata_pmp_std_hardreset, sata_pmp_std_postreset);
}