Re: how to slow down IDE ?

Harald Koenig (koenig@tat.physik.uni-tuebingen.de)
Mon, 6 Apr 1998 11:31:11 +0200


On Apr 03, MOLNAR Ingo wrote:

> On Fri, 3 Apr 1998, Harald Koenig wrote:
>
> > I need to slow down IDE accesses for a Toshiba notebook with unknown
> > PCI/IDE chipset
>
> does the attached 2.1.92 patch help? It puts a 10 usecs delay between
> individual port IO accesses, and a 1 millisec delay between sector
> accesses ... it's sure an overkill, change the defines if too slow.

thanks for the pointer!

yes, those values are overkill, they lowered transfer rate to ~120 kB/sec.

with DELAY_1==1 and DELAY_2==0 I got ~600kB/sec,
with DELAY_1==0 and DELAY_2==100 I got ~1200kB/sec,
with DELAY_1==0 and DELAY_2==0 I got ~1600kB/sec (this is just like
SUPPORT_SLOW_DATA_PORTS defined and drive->slow set with "idex=slow").

even with the last setting, the machine/disk works rock solid.
is this a known problem for IDE disks dying (or for IDE chipsets) ?

> --- linux/drivers/block/ide.c.orig Thu Apr 9 07:45:24 1998
> +++ linux/drivers/block/ide.c Thu Apr 9 07:48:24 1998
> @@ -309,16 +309,16 @@
> #endif /* SUPPORT_VLB_SYNC */
> insl(IDE_DATA_REG, buffer, wcount);
> } else {
> -#if SUPPORT_SLOW_DATA_PORTS
> - if (drive->slow) {
> - unsigned short *ptr = (unsigned short *) buffer;
> - while (wcount--) {
> - *ptr++ = inw_p(IDE_DATA_REG);
> - *ptr++ = inw_p(IDE_DATA_REG);
> - }
> - } else
> -#endif /* SUPPORT_SLOW_DATA_PORTS */
> - insw(IDE_DATA_REG, buffer, wcount<<1);
> +#define DELAY_1 10
> +#define DELAY_2 1000
> + unsigned short *ptr = (unsigned short *) buffer;
> + while (wcount--) {
> + *ptr++ = inw_p(IDE_DATA_REG);
> + udelay(DELAY_1);
> + *ptr++ = inw_p(IDE_DATA_REG);
> + udelay(DELAY_1);
> + }
> + udelay(DELAY_2);
> }
> }

Harald

--
All SCSI disks will from now on                     ___       _____
be required to send an email notice                0--,|    /OOOOOOO\
24 hours prior to complete hardware failure!      <_/  /  /OOOOOOOOOOO\
                                                    \  \/OOOOOOOOOOOOOOO\
                                                      \ OOOOOOOOOOOOOOOOO|//
Harald Koenig,                                         \/\/\/\/\/\/\/\/\/
Inst.f.Theoret.Astrophysik                              //  /     \\  \
koenig@tat.physik.uni-tuebingen.de                     ^^^^^       ^^^^^

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu