Re: SATA probe delay on boot

From: Brien
Date: Thu Sep 04 2003 - 06:07:26 EST


On Thu, 4 Sep 2003 01:53:07 +0200, Bartlomiej
Zolnierkiewicz wrote:

Bartlomiej,

I applied this patch on 2.6.0-test4-bk5 just now, and
this is the (I think relative(?) -- tell me if you want
something else) section of dmesg output:

SiI3112 Serial ATA: IDE controller at PCI slot
0000:00:10.0
SiI3112 Serial ATA: chipset revision 2
SiI3112 Serial ATA: 100% native mode on irq 11
ide2: MMIO-DMA at 0xf8807000-0xf8807007, BIOS
settings: hde:pio, hdf:pio
ide3: MMIO-DMA at 0xf8807008-0xf880700f, BIOS
settings: hdg:pio, hdh:pio
probing for hde: present=0, media=32, probetype=ATA
hde: WDC WD360GD-00FNA0, ATA DISK drive
probing for hdf: present=0, media=32, probetype=ATA
probing for hdf: present=0, media=32, probetype=ATAPI
ide2 at 0xf8807080-0xf8807087,0xf880708a on irq 11
probing for hdg: present=0, media=32, probetype=ATA
hdg: no response (status = 0xfe)
probing for hdh: present=0, media=32, probetype=ATA
probing for hdh: present=0, media=32, probetype=ATAPI
probing for hdg: present=0, media=32, probetype=ATA
probing for hdg: present=0, media=32, probetype=ATAPI
hdg: no response (status = 0xfe), resetting drive
hdg: no response (status = 0xfe)
probing for hdh: present=0, media=32, probetype=ATA
probing for hdh: present=0, media=32, probetype=ATAPI
probing for hdi: present=0, media=32, probetype=ATA
probing for hdi: present=0, media=32, probetype=ATAPI
probing for hdj: present=0, media=32, probetype=ATA
probing for hdj: present=0, media=32, probetype=ATAPI
probing for hdk: present=0, media=32, probetype=ATA
probing for hdk: present=0, media=32, probetype=ATAPI
probing for hdl: present=0, media=32, probetype=ATA
probing for hdl: present=0, media=32, probetype=ATAPI

It doesn't seem right. And it actually takes 2-3 times
as long now.

Brien

> On Thursday 04 of September 2003 01:18,
admin@xxxxxxxxx
> wrote:
> > Hi,
>
> Hi,
>
> > I have a Sil3112A SATA controller, which linux works
> OK
> > with. It supports RAID (up to 4 devices), but I'm
> using
> > BASE option -- only 1 hard drive.
> >
> > My question is regarding a 15-20 second delay which
> > normally occurs every time I boot, unless I pass the
>
> Please try attached patch and send dmesg output (with
> patch applied).
> Patch is against current 2.6-bk tree, but should apply
> to any recent
> 2.4.x or 2.6.x kernels.
>
> diff -puN drivers/ide/ide-probe.c~ide-siimage-wait
> drivers/ide/ide-probe.c
> ---
>
linux-2.6.0-test4-bk5/drivers/ide/ide-probe.c~ide-siimage-wait 2003-09-04
01:34:02.285489272 +0200
> +++
>
linux-2.6.0-test4-bk5-root/drivers/ide/ide-probe.c 2003-09-04 01:47:58.145419248
+0200
> @@ -56,6 +56,8 @@
> #include <asm/uaccess.h>
> #include <asm/io.h>
>
> +#define DEBUG
> +
> /**
> * generic_id - add a generic drive id
> * @drive: drive to make an ID block for
> @@ -345,7 +347,16 @@ static int actual_try_to_identify
> (ide_d
> }
> /* give drive a breather */
> ide_delay_50ms();
> - } while ((hwif->INB(hd_status)) & BUSY_STAT);
> + s = hwif->INB(hd_status);
> + if (s == 0xff) {
> +#ifdef DEBUG
> + printk("%s: status == 0xff\n", drive->name);
> +#endif
> + return 1;
> + }
> + if ((s & BUSY_STAT) == 0)
> + break;
> + } while (1);
>
> /* wait for IRQ and DRQ_STAT */
> ide_delay_50ms();
>
> _
>
> > options ide3=0 - ide9=0 to fill up the device
table. I
> > think I have to do this because if I do only ide3=0
> > (where the device would be), it uses ide4, and so
on.
> I
> > have GRUB set up to do this automatically, but it's
> not
> > exactly adequate (,is it?). So I was wondering if
> > there're any other ways to get the same affect. Is
or
> > could there be an option to simply disable the
probing
> > of the one specific device/channel every time?
>
> "ide3=noprobe" doesnt work?
>
> --bartlomiej
>
> -

Brien
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/