Subject: Re: Delay on intialization ide subsystem(most likely)

From: Andrey Gusev <[email-masked]>
Date: Thu, 11 Jun 2009 00:38:34 +0400

On Mon, 8 Jun 2009 22:20:41 +0200
Bartlomiej Zolnierkiewicz <[email-masked]> wrote:

> On Saturday 30 May 2009 12:46:43 Andrey Gusev wrote:
> > On Wed, 20 May 2009 17:56:14 +0200
> > Bartlomiej Zolnierkiewicz <[email-masked]> wrote:
> > 
> > > On Friday 15 May 2009 22:40:07 Andrey Gusev wrote:
> > > > On Wed, 13 May 2009 20:46:33 +0200
> > > > Bartlomiej Zolnierkiewicz <[email-masked]> wrote:
> > > > 
> > > > > On Wednesday 13 May 2009 19:11:23 Andrey Gusev wrote:
> > > > > > On Wed, 13 May 2009 15:28:26 +0200
> > > > > > Bartlomiej Zolnierkiewicz <[email-masked]> wrote:
> > > > > > 
> > > > > > > On Tuesday 12 May 2009 21:50:24 Andrey Gusev wrote:
> > > > > > > > On Mon, 27 Apr 2009 23:21:48 +0200
> > > > > > > > Bartlomiej Zolnierkiewicz <[email-masked]> wrote:
> > > > > > > > 
> > > > > > > > > On Monday 27 April 2009 22:36:45 Andrey Gusev wrote:
> > > > > > > > > > On Sat, 25 Apr 2009 16:48:38 +0200
> > > > > > > > > > Bartlomiej Zolnierkiewicz <[email-masked]>
> > > > > > > > > > wrote:
> 
> Indeed.  The delay problem is a more generic kernel/hardware issue.
Ok, I can rather stable reproduce it on 2.6.29-rc6. I want to narrow it,
disabling almost all options in kernel configuration. Could some options
from 'kernel hacking' help me?
> 
> Thanks for testing.  Unfortunately none of fixes helped.. :/
> 
> > [   70.287747] sysfs: cannot create duplicate filename
> > '/class/ide_port/ide1' [   70.287841] ------------[ cut
> > here ]------------ [   70.287879] Badness at fs/sysfs/dir.c:487
> 
> This is caused by small mistake in one of fixes, follow-up fixup:
> 
> diff -u b/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c
> --- b/drivers/ide/ide-probe.c
> +++ b/drivers/ide/ide-probe.c
> @@ -708,6 +708,8 @@
>  		goto out;
>  	} else if (rc == -EBUSY)
>  		printk(KERN_ERR "%s: not ready before the probe\n",
> hwif->name);
> +	else
> +		rc = -ENODEV;
>  
>  	/*
>  	 * Second drive should only exist if first drive was found,

I try this small fix, traces in disappeared, but lost interrupts on the place:)
Some interesting thing from dmesg:

[    0.435806] irq: irq 251 on host /pci@f2000000/mac-io@17/interrupt-controller@40000 mapped to virtual irq 251
[    0.435824] irq: irq 252 on host /pci@f2000000/mac-io@17/interrupt-controller@40000 mapped to virtual irq 252
[    0.435840] irq: irq 253 on host /pci@f2000000/mac-io@17/interrupt-controller@40000 mapped to virtual irq 253
[    0.435856] irq: irq 254 on host /pci@f2000000/mac-io@17/interrupt-controller@40000 mapped to virtual irq 254
[    0.435867] CPU0: L2CR is 80080000
[    0.435880] CPU0: L3CR is 8f0b0000
[478142827.057095] CPU1: L2CR was 80000
[478142827.057133] CPU1: L2CR set to 80080000
[478142827.057139] CPU1: L3CR was 0
[478142827.057300] CPU1: L3CR set to 8f0b0000
[    0.437529] Processor 1 found.
[    0.437588] clockevent: decrementer mult[886] shift[16] cpu[1]

This is don't look good.

> 
> 
> > [   70.584122]  hdb:<3>ide-pmac lost interrupt, dma status: 8480
> 
> DMA status indicates that DMA transfer is still active according to
> the controller.  This one is really a platform/hardware specific
> issue.
> 

Notes for Ben, I checked only 2.6.26, but may be somebody checked 2.6.24
or this is interpolation.

Thanks,
Andrey