* pdc202xx_old serious bug with DMA on 2.6.x series
@ 2004-06-14 22:50 Adolfo González Blázquez
2004-06-14 23:18 ` Bartlomiej Zolnierkiewicz
0 siblings, 1 reply; 13+ messages in thread
From: Adolfo González Blázquez @ 2004-06-14 22:50 UTC (permalink / raw)
To: Linux Kernel
Hi!
Lot of users are reporting seriour problems with pdc202xx_old ide pci
driver. Enabling DMA on any device related with this driver makes the
system unusable.
This seems to happen in all the 2.6.x kernel series.
More info on Kerneltrap: http://kerneltrap.org/node/view/3040
More info on Bugzilla: http://bugzilla.kernel.org/show_bug.cgi?id=2494
I hope someone can fix this, 'cause there's a lot of people using these
ide controllers.
Adolfo González
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: pdc202xx_old serious bug with DMA on 2.6.x series
2004-06-14 22:50 pdc202xx_old serious bug with DMA on 2.6.x series Adolfo González Blázquez
@ 2004-06-14 23:18 ` Bartlomiej Zolnierkiewicz
2004-06-14 23:20 ` Adolfo González Blázquez
2004-06-15 13:26 ` Mikael Pettersson
0 siblings, 2 replies; 13+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2004-06-14 23:18 UTC (permalink / raw)
To: Adolfo González Blázquez; +Cc: Linux Kernel
On Tuesday 15 of June 2004 00:50, Adolfo González Blázquez wrote:
> Hi!
Hi,
> Lot of users are reporting seriour problems with pdc202xx_old ide pci
> driver. Enabling DMA on any device related with this driver makes the
> system unusable.
>
> This seems to happen in all the 2.6.x kernel series.
Doing binary search on 2.4->2.6 kernels would help greatly
(narrowing problem to a specific kernel versions).
> More info on Kerneltrap: http://kerneltrap.org/node/view/3040
> More info on Bugzilla: http://bugzilla.kernel.org/show_bug.cgi?id=2494
>
> I hope someone can fix this, 'cause there's a lot of people using these
> ide controllers.
It seems everybody wants it fixed but nobody is willing to help...
> Adolfo González
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: pdc202xx_old serious bug with DMA on 2.6.x series
2004-06-14 23:18 ` Bartlomiej Zolnierkiewicz
@ 2004-06-14 23:20 ` Adolfo González Blázquez
[not found] ` <20040615111552.GA12458@logos.cnet>
2004-06-15 13:26 ` Mikael Pettersson
1 sibling, 1 reply; 13+ messages in thread
From: Adolfo González Blázquez @ 2004-06-14 23:20 UTC (permalink / raw)
To: Linux Kernel
El mar, 15-06-2004 a las 01:18, Bartlomiej Zolnierkiewicz escribió:
> On Tuesday 15 of June 2004 00:50, Adolfo González Blázquez wrote:
> > Hi!
>
> Hi,
>
> > Lot of users are reporting seriour problems with pdc202xx_old ide pci
> > driver. Enabling DMA on any device related with this driver makes the
> > system unusable.
> >
> > This seems to happen in all the 2.6.x kernel series.
>
> Doing binary search on 2.4->2.6 kernels would help greatly
> (narrowing problem to a specific kernel versions).
If it helps, I tried 2.6.2, 2.6.4, 2.6.5, and 2.6.7-rc3, and all have
the bug.
>
> > More info on Kerneltrap: http://kerneltrap.org/node/view/3040
> > More info on Bugzilla: http://bugzilla.kernel.org/show_bug.cgi?id=2494
> >
> > I hope someone can fix this, 'cause there's a lot of people using these
> > ide controllers.
>
> It seems everybody wants it fixed but nobody is willing to help...
>
> > Adolfo González
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: pdc202xx_old serious bug with DMA on 2.6.x series
@ 2004-06-15 5:38 Vid Strpic
0 siblings, 0 replies; 13+ messages in thread
From: Vid Strpic @ 2004-06-15 5:38 UTC (permalink / raw)
To: Adolfo González Blázquez; +Cc: Linux Kernel
[-- Attachment #1: Type: text/plain, Size: 1310 bytes --]
On Tue, Jun 15, 2004 at 01:20:03AM +0200, Adolfo González Blázquez wrote:
> El mar, 15-06-2004 a las 01:18, Bartlomiej Zolnierkiewicz escribió:
> > On Tuesday 15 of June 2004 00:50, Adolfo González Blázquez wrote:
> > > Lot of users are reporting seriour problems with pdc202xx_old ide pci
> > > driver. Enabling DMA on any device related with this driver makes the
> > > system unusable.
> > > This seems to happen in all the 2.6.x kernel series.
> > Doing binary search on 2.4->2.6 kernels would help greatly
> > (narrowing problem to a specific kernel versions).
> If it helps, I tried 2.6.2, 2.6.4, 2.6.5, and 2.6.7-rc3, and all have
> the bug.
I have the similar problem, but it only shows when doing really big file
transfers (several tens of gigabytes), not in normal usage.. DMA is
activated.
Linux moria 2.6.6 #1 Sun Jun 13 11:33:06 CEST 2004 i686 unknown unknown GNU/Linux
00:0f.0 RAID bus controller: Promise Technology, Inc. 20265 (rev 02)
This is onboard controller on a MSI mobo.. IRQ sharing is active.
11: 2150005 XT-PIC ide2, ide3, ehci_hcd, uhci_hcd, CMI8738-MC6, eth0
--
vms@bofhlet.net, IRC:*@Martin, /bin/zsh. C|N>K
Linux moria 2.6.6 #1 Sun Jun 13 11:33:06 CEST 2004 i686
07:35:20 up 1 day, 19:53, 1 user, load average: 0.35, 0.59, 0.63
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: pdc202xx_old serious bug with DMA on 2.6.x series
[not found] ` <20040615111552.GA12458@logos.cnet>
@ 2004-06-15 11:33 ` Adolfo González Blázquez
[not found] ` <200406191846.32983.bzolnier@elka.pw.edu.pl>
0 siblings, 1 reply; 13+ messages in thread
From: Adolfo González Blázquez @ 2004-06-15 11:33 UTC (permalink / raw)
To: Marcelo Tosatti; +Cc: B.Zolnierkiewicz, Linux Kernel
El mar, 15-06-2004 a las 13:15, Marcelo Tosatti escribió:
> On Tue, Jun 15, 2004 at 01:20:03AM +0200, Adolfo González Blázquez wrote:
> > El mar, 15-06-2004 a las 01:18, Bartlomiej Zolnierkiewicz escribió:
> > > On Tuesday 15 of June 2004 00:50, Adolfo González Blázquez wrote:
> > > > Hi!
> > >
> > > Hi,
> > >
> > > > Lot of users are reporting seriour problems with pdc202xx_old ide pci
> > > > driver. Enabling DMA on any device related with this driver makes the
> > > > system unusable.
> > > >
> > > > This seems to happen in all the 2.6.x kernel series.
> > >
> > > Doing binary search on 2.4->2.6 kernels would help greatly
> > > (narrowing problem to a specific kernel versions).
> >
> > If it helps, I tried 2.6.2, 2.6.4, 2.6.5, and 2.6.7-rc3, and all have
> > the bug.
>
> And which kernels does not exhibit the problem?
The 2.4 series it's ok, I'm gonna try with different 2.5.x kernels to
see if i can discover when the bug was introduced
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: pdc202xx_old serious bug with DMA on 2.6.x series
2004-06-14 23:18 ` Bartlomiej Zolnierkiewicz
2004-06-14 23:20 ` Adolfo González Blázquez
@ 2004-06-15 13:26 ` Mikael Pettersson
1 sibling, 0 replies; 13+ messages in thread
From: Mikael Pettersson @ 2004-06-15 13:26 UTC (permalink / raw)
To: Bartlomiej Zolnierkiewicz
Cc: Adolfo González Blázquez, Linux Kernel
Bartlomiej Zolnierkiewicz writes:
> On Tuesday 15 of June 2004 00:50, Adolfo González Blázquez wrote:
> > Hi!
>
> Hi,
>
> > Lot of users are reporting seriour problems with pdc202xx_old ide pci
> > driver. Enabling DMA on any device related with this driver makes the
> > system unusable.
> >
> > This seems to happen in all the 2.6.x kernel series.
>
> Doing binary search on 2.4->2.6 kernels would help greatly
> (narrowing problem to a specific kernel versions).
>
> > More info on Kerneltrap: http://kerneltrap.org/node/view/3040
> > More info on Bugzilla: http://bugzilla.kernel.org/show_bug.cgi?id=2494
> >
> > I hope someone can fix this, 'cause there's a lot of people using these
> > ide controllers.
>
> It seems everybody wants it fixed but nobody is willing to help...
FWIW, I run an ASUS P3B-F (440BX chipset) with a 20267 add-on
card and a WD Caviar WD800JB UDMA100 disk as a server spooling
News and other high-volume data. Even when moving GBs of data
around as fast as the disk can read or write it, the system
has never been less than rock solid with the 2.6 kernels.
Of course, ACPI is disabled and the 20267 is not sharing
interrupts with anything else.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: pdc202xx_old serious bug with DMA on 2.6.x series
[not found] ` <200406191846.32983.bzolnier@elka.pw.edu.pl>
@ 2004-06-19 23:00 ` Adolfo González Blázquez
2004-06-20 0:47 ` Bartlomiej Zolnierkiewicz
0 siblings, 1 reply; 13+ messages in thread
From: Adolfo González Blázquez @ 2004-06-19 23:00 UTC (permalink / raw)
To: Bartlomiej Zolnierkiewicz; +Cc: Linux Kernel
Hi,
Sorry for the delay... I tried 2.5.50 and 2.5.75, and, at least for my
machine, everything seems to be perfect. Then i tried every 2.6 kernel.
All of them have the same buggy behaviour.
These are the differences between 2.5.75 and 2.6.0 pdc202xx_old.c (sorry
if this is not the correct format, im new here :)
Hope this will help.
Adolfo González
###################################################################
--- linux-2.5.75/drivers/ide/pci/pdc202xx_old.c 2003-07-10
22:15:03.000000000 +0200
+++ linux-2.6.0/drivers/ide/pci/pdc202xx_old.c 2003-12-18
03:59:53.000000000 +0100
@@ -46,7 +46,6 @@
#include <asm/io.h>
#include <asm/irq.h>
-#include "ide_modes.h"
#include "pdc202xx_old.h"
#define PDC202_DEBUG_CABLE 0
@@ -519,13 +518,15 @@
} else {
goto fast_ata_pio;
}
+ return hwif->ide_dma_on(drive);
} else if ((id->capability & 8) || (id->field_valid & 2)) {
fast_ata_pio:
no_dma_set:
hwif->tuneproc(drive, 5);
return hwif->ide_dma_off_quietly(drive);
}
- return hwif->ide_dma_on(drive);
+ /* IORDY not supported */
+ return 0;
}
static int pdc202xx_quirkproc (ide_drive_t *drive)
@@ -749,9 +750,6 @@
hwif->tuneproc = &config_chipset_for_pio;
hwif->quirkproc = &pdc202xx_quirkproc;
- if (hwif->pci_dev->device == PCI_DEVICE_ID_PROMISE_20265)
- hwif->addressing = (hwif->channel) ? 0 : 1;
-
if (hwif->pci_dev->device != PCI_DEVICE_ID_PROMISE_20246) {
hwif->busproc = &pdc202xx_tristate;
hwif->resetproc = &pdc202xx_reset;
@@ -928,7 +926,7 @@
return 0;
}
-static struct pci_device_id pdc202xx_pci_tbl[] __devinitdata = {
+static struct pci_device_id pdc202xx_pci_tbl[] = {
{ PCI_VENDOR_ID_PROMISE, PCI_DEVICE_ID_PROMISE_20246, PCI_ANY_ID,
PCI_ANY_ID, 0, 0, 0},
{ PCI_VENDOR_ID_PROMISE, PCI_DEVICE_ID_PROMISE_20262, PCI_ANY_ID,
PCI_ANY_ID, 0, 0, 1},
{ PCI_VENDOR_ID_PROMISE, PCI_DEVICE_ID_PROMISE_20263, PCI_ANY_ID,
PCI_ANY_ID, 0, 0, 2},
###################################################################
El sáb, 19-06-2004 a las 18:46, Bartlomiej Zolnierkiewicz escribió:
> Hi,
>
> Any news about this issue?
>
> On Tuesday 15 of June 2004 13:33, you wrote:
> > El mar, 15-06-2004 a las 13:15, Marcelo Tosatti escribió:
> > > On Tue, Jun 15, 2004 at 01:20:03AM +0200, Adolfo González Blázquez wrote:
> > > > El mar, 15-06-2004 a las 01:18, Bartlomiej Zolnierkiewicz escribió:
> > > > > On Tuesday 15 of June 2004 00:50, Adolfo González Blázquez wrote:
> > > > > > Hi!
> > > > >
> > > > > Hi,
> > > > >
> > > > > > Lot of users are reporting seriour problems with pdc202xx_old ide
> > > > > > pci driver. Enabling DMA on any device related with this driver
> > > > > > makes the system unusable.
> > > > > >
> > > > > > This seems to happen in all the 2.6.x kernel series.
> > > > >
> > > > > Doing binary search on 2.4->2.6 kernels would help greatly
> > > > > (narrowing problem to a specific kernel versions).
> > > >
> > > > If it helps, I tried 2.6.2, 2.6.4, 2.6.5, and 2.6.7-rc3, and all have
> > > > the bug.
> > >
> > > And which kernels does not exhibit the problem?
> >
> > The 2.4 series it's ok, I'm gonna try with different 2.5.x kernels to
> > see if i can discover when the bug was introduced
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: pdc202xx_old serious bug with DMA on 2.6.x series
2004-06-19 23:00 ` Adolfo González Blázquez
@ 2004-06-20 0:47 ` Bartlomiej Zolnierkiewicz
2004-06-20 8:55 ` Adolfo González Blázquez
` (2 more replies)
0 siblings, 3 replies; 13+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2004-06-20 0:47 UTC (permalink / raw)
To: Adolfo González Blázquez; +Cc: Linux Kernel
On Sunday 20 of June 2004 01:00, Adolfo González Blázquez wrote:
> Hi,
>
> Sorry for the delay... I tried 2.5.50 and 2.5.75, and, at least for my
> machine, everything seems to be perfect. Then i tried every 2.6 kernel.
> All of them have the same buggy behaviour.
First of all thanks for doing this.
> These are the differences between 2.5.75 and 2.6.0 pdc202xx_old.c (sorry
> if this is not the correct format, im new here :)
>
> Hope this will help.
>
> Adolfo González
>
> ###################################################################
>
> --- linux-2.5.75/drivers/ide/pci/pdc202xx_old.c 2003-07-10
> 22:15:03.000000000 +0200
> +++ linux-2.6.0/drivers/ide/pci/pdc202xx_old.c 2003-12-18
> 03:59:53.000000000 +0100
> @@ -46,7 +46,6 @@
> #include <asm/io.h>
> #include <asm/irq.h>
>
> -#include "ide_modes.h"
> #include "pdc202xx_old.h"
>
> #define PDC202_DEBUG_CABLE 0
> @@ -519,13 +518,15 @@
> } else {
> goto fast_ata_pio;
> }
> + return hwif->ide_dma_on(drive);
> } else if ((id->capability & 8) || (id->field_valid & 2)) {
> fast_ata_pio:
> no_dma_set:
> hwif->tuneproc(drive, 5);
> return hwif->ide_dma_off_quietly(drive);
> }
> - return hwif->ide_dma_on(drive);
> + /* IORDY not supported */
> + return 0;
> }
>
> static int pdc202xx_quirkproc (ide_drive_t *drive)
> @@ -749,9 +750,6 @@
> hwif->tuneproc = &config_chipset_for_pio;
> hwif->quirkproc = &pdc202xx_quirkproc;
>
> - if (hwif->pci_dev->device == PCI_DEVICE_ID_PROMISE_20265)
> - hwif->addressing = (hwif->channel) ? 0 : 1;
> -
> if (hwif->pci_dev->device != PCI_DEVICE_ID_PROMISE_20246) {
> hwif->busproc = &pdc202xx_tristate;
> hwif->resetproc = &pdc202xx_reset;
In 2.6.0-test5 kernel we allowed LBA48 for PDC20265
(after few people reported that it works okay now)
but the same patch is also in 2.4 kernels.
There is one important 2.4 vs 2.6 difference here
- in 2.6 if the drive is using LBA48 we allow up
to 1024KiB large requests (you can check if this is
a problem by replacing "65536" by "256" in ide-probe.c).
The other likely candidate for breakage is kernel
2.6.0-test2 which contains DMA timeout fixes.
I can make some patches later in the meantime
somebody may test 2.6.0-test[1,2,4,5].
Cheers.
> @@ -928,7 +926,7 @@
> return 0;
> }
>
> -static struct pci_device_id pdc202xx_pci_tbl[] __devinitdata = {
> +static struct pci_device_id pdc202xx_pci_tbl[] = {
> { PCI_VENDOR_ID_PROMISE, PCI_DEVICE_ID_PROMISE_20246, PCI_ANY_ID,
> PCI_ANY_ID, 0, 0, 0},
> { PCI_VENDOR_ID_PROMISE, PCI_DEVICE_ID_PROMISE_20262, PCI_ANY_ID,
> PCI_ANY_ID, 0, 0, 1},
> { PCI_VENDOR_ID_PROMISE, PCI_DEVICE_ID_PROMISE_20263, PCI_ANY_ID,
> PCI_ANY_ID, 0, 0, 2},
>
> ###################################################################
>
> El sáb, 19-06-2004 a las 18:46, Bartlomiej Zolnierkiewicz escribió:
> > Hi,
> >
> > Any news about this issue?
> >
> > On Tuesday 15 of June 2004 13:33, you wrote:
> > > El mar, 15-06-2004 a las 13:15, Marcelo Tosatti escribió:
> > > > On Tue, Jun 15, 2004 at 01:20:03AM +0200, Adolfo González Blázquez wrote:
> > > > > El mar, 15-06-2004 a las 01:18, Bartlomiej Zolnierkiewicz escribió:
> > > > > > On Tuesday 15 of June 2004 00:50, Adolfo González Blázquez wrote:
> > > > > > > Hi!
> > > > > >
> > > > > > Hi,
> > > > > >
> > > > > > > Lot of users are reporting seriour problems with pdc202xx_old
> > > > > > > ide pci driver. Enabling DMA on any device related with this
> > > > > > > driver makes the system unusable.
> > > > > > >
> > > > > > > This seems to happen in all the 2.6.x kernel series.
> > > > > >
> > > > > > Doing binary search on 2.4->2.6 kernels would help greatly
> > > > > > (narrowing problem to a specific kernel versions).
> > > > >
> > > > > If it helps, I tried 2.6.2, 2.6.4, 2.6.5, and 2.6.7-rc3, and all
> > > > > have the bug.
> > > >
> > > > And which kernels does not exhibit the problem?
> > >
> > > The 2.4 series it's ok, I'm gonna try with different 2.5.x kernels to
> > > see if i can discover when the bug was introduced
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: pdc202xx_old serious bug with DMA on 2.6.x series
2004-06-20 0:47 ` Bartlomiej Zolnierkiewicz
@ 2004-06-20 8:55 ` Adolfo González Blázquez
2004-06-20 23:30 ` Adolfo González Blázquez
2004-06-21 1:41 ` Adolfo González Blázquez
2 siblings, 0 replies; 13+ messages in thread
From: Adolfo González Blázquez @ 2004-06-20 8:55 UTC (permalink / raw)
To: Bartlomiej Zolnierkiewicz; +Cc: Linux Kernel
These are the errors i get everytime i want to copy a file:
hde: dma_timer_expiry: dma status == 0x60
hde: DMA timeout retry
PDC202XX: Primary channel reset
PDC202XX: Secondary channel reset
hde: timeout waiting for DMA
hde: dma_timer_expiry: dma status == 0x61
hde: DMA timeout error
...
So, i think, it should be related to the changes on dma timeout
(2.6.0-test2) you say.
I'm gonna try 2.6.0-test* series, to see what happens...
Gracias!
El dom, 20-06-2004 a las 02:47, Bartlomiej Zolnierkiewicz escribió:
> On Sunday 20 of June 2004 01:00, Adolfo González Blázquez wrote:
> > Hi,
> >
> > Sorry for the delay... I tried 2.5.50 and 2.5.75, and, at least for my
> > machine, everything seems to be perfect. Then i tried every 2.6 kernel.
> > All of them have the same buggy behaviour.
>
> First of all thanks for doing this.
>
> > These are the differences between 2.5.75 and 2.6.0 pdc202xx_old.c (sorry
> > if this is not the correct format, im new here :)
> >
> > Hope this will help.
> >
> > Adolfo González
> >
> > ###################################################################
> >
> > --- linux-2.5.75/drivers/ide/pci/pdc202xx_old.c 2003-07-10
> > 22:15:03.000000000 +0200
> > +++ linux-2.6.0/drivers/ide/pci/pdc202xx_old.c 2003-12-18
> > 03:59:53.000000000 +0100
> > @@ -46,7 +46,6 @@
> > #include <asm/io.h>
> > #include <asm/irq.h>
> >
> > -#include "ide_modes.h"
> > #include "pdc202xx_old.h"
> >
> > #define PDC202_DEBUG_CABLE 0
> > @@ -519,13 +518,15 @@
> > } else {
> > goto fast_ata_pio;
> > }
> > + return hwif->ide_dma_on(drive);
> > } else if ((id->capability & 8) || (id->field_valid & 2)) {
> > fast_ata_pio:
> > no_dma_set:
> > hwif->tuneproc(drive, 5);
> > return hwif->ide_dma_off_quietly(drive);
> > }
> > - return hwif->ide_dma_on(drive);
> > + /* IORDY not supported */
> > + return 0;
> > }
> >
> > static int pdc202xx_quirkproc (ide_drive_t *drive)
> > @@ -749,9 +750,6 @@
> > hwif->tuneproc = &config_chipset_for_pio;
> > hwif->quirkproc = &pdc202xx_quirkproc;
> >
> > - if (hwif->pci_dev->device == PCI_DEVICE_ID_PROMISE_20265)
> > - hwif->addressing = (hwif->channel) ? 0 : 1;
> > -
> > if (hwif->pci_dev->device != PCI_DEVICE_ID_PROMISE_20246) {
> > hwif->busproc = &pdc202xx_tristate;
> > hwif->resetproc = &pdc202xx_reset;
>
> In 2.6.0-test5 kernel we allowed LBA48 for PDC20265
> (after few people reported that it works okay now)
> but the same patch is also in 2.4 kernels.
>
> There is one important 2.4 vs 2.6 difference here
> - in 2.6 if the drive is using LBA48 we allow up
> to 1024KiB large requests (you can check if this is
> a problem by replacing "65536" by "256" in ide-probe.c).
>
> The other likely candidate for breakage is kernel
> 2.6.0-test2 which contains DMA timeout fixes.
>
> I can make some patches later in the meantime
> somebody may test 2.6.0-test[1,2,4,5].
>
> Cheers.
>
> > @@ -928,7 +926,7 @@
> > return 0;
> > }
> >
> > -static struct pci_device_id pdc202xx_pci_tbl[] __devinitdata = {
> > +static struct pci_device_id pdc202xx_pci_tbl[] = {
> > { PCI_VENDOR_ID_PROMISE, PCI_DEVICE_ID_PROMISE_20246, PCI_ANY_ID,
> > PCI_ANY_ID, 0, 0, 0},
> > { PCI_VENDOR_ID_PROMISE, PCI_DEVICE_ID_PROMISE_20262, PCI_ANY_ID,
> > PCI_ANY_ID, 0, 0, 1},
> > { PCI_VENDOR_ID_PROMISE, PCI_DEVICE_ID_PROMISE_20263, PCI_ANY_ID,
> > PCI_ANY_ID, 0, 0, 2},
> >
> > ###################################################################
> >
> > El sáb, 19-06-2004 a las 18:46, Bartlomiej Zolnierkiewicz escribió:
> > > Hi,
> > >
> > > Any news about this issue?
> > >
> > > On Tuesday 15 of June 2004 13:33, you wrote:
> > > > El mar, 15-06-2004 a las 13:15, Marcelo Tosatti escribió:
> > > > > On Tue, Jun 15, 2004 at 01:20:03AM +0200, Adolfo González Blázquez wrote:
> > > > > > El mar, 15-06-2004 a las 01:18, Bartlomiej Zolnierkiewicz escribió:
> > > > > > > On Tuesday 15 of June 2004 00:50, Adolfo González Blázquez wrote:
> > > > > > > > Hi!
> > > > > > >
> > > > > > > Hi,
> > > > > > >
> > > > > > > > Lot of users are reporting seriour problems with pdc202xx_old
> > > > > > > > ide pci driver. Enabling DMA on any device related with this
> > > > > > > > driver makes the system unusable.
> > > > > > > >
> > > > > > > > This seems to happen in all the 2.6.x kernel series.
> > > > > > >
> > > > > > > Doing binary search on 2.4->2.6 kernels would help greatly
> > > > > > > (narrowing problem to a specific kernel versions).
> > > > > >
> > > > > > If it helps, I tried 2.6.2, 2.6.4, 2.6.5, and 2.6.7-rc3, and all
> > > > > > have the bug.
> > > > >
> > > > > And which kernels does not exhibit the problem?
> > > >
> > > > The 2.4 series it's ok, I'm gonna try with different 2.5.x kernels to
> > > > see if i can discover when the bug was introduced
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: pdc202xx_old serious bug with DMA on 2.6.x series
2004-06-20 0:47 ` Bartlomiej Zolnierkiewicz
2004-06-20 8:55 ` Adolfo González Blázquez
@ 2004-06-20 23:30 ` Adolfo González Blázquez
2004-06-21 1:41 ` Adolfo González Blázquez
2 siblings, 0 replies; 13+ messages in thread
From: Adolfo González Blázquez @ 2004-06-20 23:30 UTC (permalink / raw)
To: Bartlomiej Zolnierkiewicz; +Cc: Linux Kernel
Hi again,
The bus was introduced on 2.6.0-test5.
I tried test1, test2, test3, test4. All OK.
Then test5, test6 BUGGY.
Hope this boooring task will help... more than spanish players on
eurocup... bad day :(
El dom, 20-06-2004 a las 02:47, Bartlomiej Zolnierkiewicz escribió:
> On Sunday 20 of June 2004 01:00, Adolfo González Blázquez wrote:
> > Hi,
> >
> > Sorry for the delay... I tried 2.5.50 and 2.5.75, and, at least for my
> > machine, everything seems to be perfect. Then i tried every 2.6 kernel.
> > All of them have the same buggy behaviour.
>
> First of all thanks for doing this.
>
> > These are the differences between 2.5.75 and 2.6.0 pdc202xx_old.c (sorry
> > if this is not the correct format, im new here :)
> >
> > Hope this will help.
> >
> > Adolfo González
> >
> > ###################################################################
> >
> > --- linux-2.5.75/drivers/ide/pci/pdc202xx_old.c 2003-07-10
> > 22:15:03.000000000 +0200
> > +++ linux-2.6.0/drivers/ide/pci/pdc202xx_old.c 2003-12-18
> > 03:59:53.000000000 +0100
> > @@ -46,7 +46,6 @@
> > #include <asm/io.h>
> > #include <asm/irq.h>
> >
> > -#include "ide_modes.h"
> > #include "pdc202xx_old.h"
> >
> > #define PDC202_DEBUG_CABLE 0
> > @@ -519,13 +518,15 @@
> > } else {
> > goto fast_ata_pio;
> > }
> > + return hwif->ide_dma_on(drive);
> > } else if ((id->capability & 8) || (id->field_valid & 2)) {
> > fast_ata_pio:
> > no_dma_set:
> > hwif->tuneproc(drive, 5);
> > return hwif->ide_dma_off_quietly(drive);
> > }
> > - return hwif->ide_dma_on(drive);
> > + /* IORDY not supported */
> > + return 0;
> > }
> >
> > static int pdc202xx_quirkproc (ide_drive_t *drive)
> > @@ -749,9 +750,6 @@
> > hwif->tuneproc = &config_chipset_for_pio;
> > hwif->quirkproc = &pdc202xx_quirkproc;
> >
> > - if (hwif->pci_dev->device == PCI_DEVICE_ID_PROMISE_20265)
> > - hwif->addressing = (hwif->channel) ? 0 : 1;
> > -
> > if (hwif->pci_dev->device != PCI_DEVICE_ID_PROMISE_20246) {
> > hwif->busproc = &pdc202xx_tristate;
> > hwif->resetproc = &pdc202xx_reset;
>
> In 2.6.0-test5 kernel we allowed LBA48 for PDC20265
> (after few people reported that it works okay now)
> but the same patch is also in 2.4 kernels.
>
> There is one important 2.4 vs 2.6 difference here
> - in 2.6 if the drive is using LBA48 we allow up
> to 1024KiB large requests (you can check if this is
> a problem by replacing "65536" by "256" in ide-probe.c).
>
> The other likely candidate for breakage is kernel
> 2.6.0-test2 which contains DMA timeout fixes.
>
> I can make some patches later in the meantime
> somebody may test 2.6.0-test[1,2,4,5].
>
> Cheers.
>
> > @@ -928,7 +926,7 @@
> > return 0;
> > }
> >
> > -static struct pci_device_id pdc202xx_pci_tbl[] __devinitdata = {
> > +static struct pci_device_id pdc202xx_pci_tbl[] = {
> > { PCI_VENDOR_ID_PROMISE, PCI_DEVICE_ID_PROMISE_20246, PCI_ANY_ID,
> > PCI_ANY_ID, 0, 0, 0},
> > { PCI_VENDOR_ID_PROMISE, PCI_DEVICE_ID_PROMISE_20262, PCI_ANY_ID,
> > PCI_ANY_ID, 0, 0, 1},
> > { PCI_VENDOR_ID_PROMISE, PCI_DEVICE_ID_PROMISE_20263, PCI_ANY_ID,
> > PCI_ANY_ID, 0, 0, 2},
> >
> > ###################################################################
> >
> > El sáb, 19-06-2004 a las 18:46, Bartlomiej Zolnierkiewicz escribió:
> > > Hi,
> > >
> > > Any news about this issue?
> > >
> > > On Tuesday 15 of June 2004 13:33, you wrote:
> > > > El mar, 15-06-2004 a las 13:15, Marcelo Tosatti escribió:
> > > > > On Tue, Jun 15, 2004 at 01:20:03AM +0200, Adolfo González Blázquez wrote:
> > > > > > El mar, 15-06-2004 a las 01:18, Bartlomiej Zolnierkiewicz escribió:
> > > > > > > On Tuesday 15 of June 2004 00:50, Adolfo González Blázquez wrote:
> > > > > > > > Hi!
> > > > > > >
> > > > > > > Hi,
> > > > > > >
> > > > > > > > Lot of users are reporting seriour problems with pdc202xx_old
> > > > > > > > ide pci driver. Enabling DMA on any device related with this
> > > > > > > > driver makes the system unusable.
> > > > > > > >
> > > > > > > > This seems to happen in all the 2.6.x kernel series.
> > > > > > >
> > > > > > > Doing binary search on 2.4->2.6 kernels would help greatly
> > > > > > > (narrowing problem to a specific kernel versions).
> > > > > >
> > > > > > If it helps, I tried 2.6.2, 2.6.4, 2.6.5, and 2.6.7-rc3, and all
> > > > > > have the bug.
> > > > >
> > > > > And which kernels does not exhibit the problem?
> > > >
> > > > The 2.4 series it's ok, I'm gonna try with different 2.5.x kernels to
> > > > see if i can discover when the bug was introduced
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: pdc202xx_old serious bug with DMA on 2.6.x series
2004-06-20 0:47 ` Bartlomiej Zolnierkiewicz
2004-06-20 8:55 ` Adolfo González Blázquez
2004-06-20 23:30 ` Adolfo González Blázquez
@ 2004-06-21 1:41 ` Adolfo González Blázquez
2004-06-21 14:14 ` Bartlomiej Zolnierkiewicz
2 siblings, 1 reply; 13+ messages in thread
From: Adolfo González Blázquez @ 2004-06-21 1:41 UTC (permalink / raw)
To: Bartlomiej Zolnierkiewicz; +Cc: Linux Kernel
Well, it seems that problem is solved! I'm now using 2.6.7 without
problems. Got same perfomance on hard disks as with 2.4.x series.
Disabling LBA48 for pdc20265 just made it work. This is the simple patch
I applied:
diff --unified --recursive --new-file
linux-2.6.7/drivers/ide/pci/pdc202xx_old.c
linux/drivers/ide/pci/pdc202xx_old.c
--- linux-2.6.7/drivers/ide/pci/pdc202xx_old.c 2004-06-16
07:20:17.000000000 +0200
+++ linux/drivers/ide/pci/pdc202xx_old.c 2004-06-21
02:53:33.000000000 +0200
@@ -721,6 +721,10 @@
hwif->tuneproc = &config_chipset_for_pio;
hwif->quirkproc = &pdc202xx_quirkproc;
+ /* This was present on 2.6.0-test4, maybe here is the bug */
+ if (hwif->pci_dev->device == PCI_DEVICE_ID_PROMISE_20265)
+ hwif->no_lba48 = (hwif->channel) ? 0 : 1;
+
if (hwif->pci_dev->device != PCI_DEVICE_ID_PROMISE_20246) {
hwif->busproc = &pdc202xx_tristate;
hwif->resetproc = &pdc202xx_reset;
One example about perfomance:
fito@soho:~$ uname -a
Linux soho 2.6.7-soho #1 Mon Jun 21 03:01:22 CEST 2004 i686 GNU/Linux
fito@soho:~$ time cp /win/Backup/Linux\
Downloads/Isos/yarrow-i386-disc3.iso .
real 0m36.771s
user 0m0.166s
sys 0m9.635s
fito@soho:~$ uname -a
Linux soho 2.4.25-soho #1 jue mar 18 16:30:49 CET 2004 i686 GNU/Linux
fito@soho:~$ time cp /win/Backup/Linux\
Downloads/Isos/yarrow-i386-disc3.iso .
real 0m41.789s
user 0m0.240s
sys 0m7.230s
Hope this patch help!!
Adolfo González Blázquez
PD: I know this is not the "standard" way to send patches, but i'm new
to linux and don't now the correct way...
El dom, 20-06-2004 a las 02:47, Bartlomiej Zolnierkiewicz escribió:
> On Sunday 20 of June 2004 01:00, Adolfo González Blázquez wrote:
> > Hi,
> >
> > Sorry for the delay... I tried 2.5.50 and 2.5.75, and, at least for my
> > machine, everything seems to be perfect. Then i tried every 2.6 kernel.
> > All of them have the same buggy behaviour.
>
> First of all thanks for doing this.
>
> > These are the differences between 2.5.75 and 2.6.0 pdc202xx_old.c (sorry
> > if this is not the correct format, im new here :)
> >
> > Hope this will help.
> >
> > Adolfo González
> >
> > ###################################################################
> >
> > --- linux-2.5.75/drivers/ide/pci/pdc202xx_old.c 2003-07-10
> > 22:15:03.000000000 +0200
> > +++ linux-2.6.0/drivers/ide/pci/pdc202xx_old.c 2003-12-18
> > 03:59:53.000000000 +0100
> > @@ -46,7 +46,6 @@
> > #include <asm/io.h>
> > #include <asm/irq.h>
> >
> > -#include "ide_modes.h"
> > #include "pdc202xx_old.h"
> >
> > #define PDC202_DEBUG_CABLE 0
> > @@ -519,13 +518,15 @@
> > } else {
> > goto fast_ata_pio;
> > }
> > + return hwif->ide_dma_on(drive);
> > } else if ((id->capability & 8) || (id->field_valid & 2)) {
> > fast_ata_pio:
> > no_dma_set:
> > hwif->tuneproc(drive, 5);
> > return hwif->ide_dma_off_quietly(drive);
> > }
> > - return hwif->ide_dma_on(drive);
> > + /* IORDY not supported */
> > + return 0;
> > }
> >
> > static int pdc202xx_quirkproc (ide_drive_t *drive)
> > @@ -749,9 +750,6 @@
> > hwif->tuneproc = &config_chipset_for_pio;
> > hwif->quirkproc = &pdc202xx_quirkproc;
> >
> > - if (hwif->pci_dev->device == PCI_DEVICE_ID_PROMISE_20265)
> > - hwif->addressing = (hwif->channel) ? 0 : 1;
> > -
> > if (hwif->pci_dev->device != PCI_DEVICE_ID_PROMISE_20246) {
> > hwif->busproc = &pdc202xx_tristate;
> > hwif->resetproc = &pdc202xx_reset;
>
> In 2.6.0-test5 kernel we allowed LBA48 for PDC20265
> (after few people reported that it works okay now)
> but the same patch is also in 2.4 kernels.
>
> There is one important 2.4 vs 2.6 difference here
> - in 2.6 if the drive is using LBA48 we allow up
> to 1024KiB large requests (you can check if this is
> a problem by replacing "65536" by "256" in ide-probe.c).
>
> The other likely candidate for breakage is kernel
> 2.6.0-test2 which contains DMA timeout fixes.
>
> I can make some patches later in the meantime
> somebody may test 2.6.0-test[1,2,4,5].
>
> Cheers.
>
> > @@ -928,7 +926,7 @@
> > return 0;
> > }
> >
> > -static struct pci_device_id pdc202xx_pci_tbl[] __devinitdata = {
> > +static struct pci_device_id pdc202xx_pci_tbl[] = {
> > { PCI_VENDOR_ID_PROMISE, PCI_DEVICE_ID_PROMISE_20246, PCI_ANY_ID,
> > PCI_ANY_ID, 0, 0, 0},
> > { PCI_VENDOR_ID_PROMISE, PCI_DEVICE_ID_PROMISE_20262, PCI_ANY_ID,
> > PCI_ANY_ID, 0, 0, 1},
> > { PCI_VENDOR_ID_PROMISE, PCI_DEVICE_ID_PROMISE_20263, PCI_ANY_ID,
> > PCI_ANY_ID, 0, 0, 2},
> >
> > ###################################################################
> >
> > El sáb, 19-06-2004 a las 18:46, Bartlomiej Zolnierkiewicz escribió:
> > > Hi,
> > >
> > > Any news about this issue?
> > >
> > > On Tuesday 15 of June 2004 13:33, you wrote:
> > > > El mar, 15-06-2004 a las 13:15, Marcelo Tosatti escribió:
> > > > > On Tue, Jun 15, 2004 at 01:20:03AM +0200, Adolfo González Blázquez wrote:
> > > > > > El mar, 15-06-2004 a las 01:18, Bartlomiej Zolnierkiewicz escribió:
> > > > > > > On Tuesday 15 of June 2004 00:50, Adolfo González Blázquez wrote:
> > > > > > > > Hi!
> > > > > > >
> > > > > > > Hi,
> > > > > > >
> > > > > > > > Lot of users are reporting seriour problems with pdc202xx_old
> > > > > > > > ide pci driver. Enabling DMA on any device related with this
> > > > > > > > driver makes the system unusable.
> > > > > > > >
> > > > > > > > This seems to happen in all the 2.6.x kernel series.
> > > > > > >
> > > > > > > Doing binary search on 2.4->2.6 kernels would help greatly
> > > > > > > (narrowing problem to a specific kernel versions).
> > > > > >
> > > > > > If it helps, I tried 2.6.2, 2.6.4, 2.6.5, and 2.6.7-rc3, and all
> > > > > > have the bug.
> > > > >
> > > > > And which kernels does not exhibit the problem?
> > > >
> > > > The 2.4 series it's ok, I'm gonna try with different 2.5.x kernels to
> > > > see if i can discover when the bug was introduced
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: pdc202xx_old serious bug with DMA on 2.6.x series
2004-06-21 1:41 ` Adolfo González Blázquez
@ 2004-06-21 14:14 ` Bartlomiej Zolnierkiewicz
2004-06-21 15:19 ` Adolfo González Blázquez
0 siblings, 1 reply; 13+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2004-06-21 14:14 UTC (permalink / raw)
To: Adolfo González Blázquez; +Cc: Linux Kernel
On Mon, 21 Jun 2004, Adolfo [ISO-8859-1] González Blázquez wrote:
> Well, it seems that problem is solved! I'm now using 2.6.7 without
> problems. Got same perfomance on hard disks as with 2.4.x series.
>
> Disabling LBA48 for pdc20265 just made it work. This is the simple patch
> I applied:
OK, thanks. It works but similar patch went into 2.4.23 and you are
using 2.4.25 without a problems. Can you try this patch instead?
--- linux-2.6.7/drivers/ide/ide-probe.c 2004-06-21 15:25:51.000000000 +0200
+++ linux/drivers/ide/ide-probe.c 2004-06-21 15:29:19.901710936 +0200
@@ -897,7 +897,7 @@
blk_queue_segment_boundary(q, 0xffff);
if (!hwif->rqsize)
- hwif->rqsize = hwif->no_lba48 ? 256 : 65536;
+ hwif->rqsize = 256;
if (hwif->rqsize < max_sectors)
max_sectors = hwif->rqsize;
blk_queue_max_sectors(q, max_sectors);
> diff --unified --recursive --new-file
> linux-2.6.7/drivers/ide/pci/pdc202xx_old.c
> linux/drivers/ide/pci/pdc202xx_old.c
> --- linux-2.6.7/drivers/ide/pci/pdc202xx_old.c 2004-06-16
> 07:20:17.000000000 +0200
> +++ linux/drivers/ide/pci/pdc202xx_old.c 2004-06-21
> 02:53:33.000000000 +0200
> @@ -721,6 +721,10 @@
> hwif->tuneproc = &config_chipset_for_pio;
> hwif->quirkproc = &pdc202xx_quirkproc;
>
> + /* This was present on 2.6.0-test4, maybe here is the bug */
> + if (hwif->pci_dev->device == PCI_DEVICE_ID_PROMISE_20265)
> + hwif->no_lba48 = (hwif->channel) ? 0 : 1;
> +
> if (hwif->pci_dev->device != PCI_DEVICE_ID_PROMISE_20246) {
> hwif->busproc = &pdc202xx_tristate;
> hwif->resetproc = &pdc202xx_reset;
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: pdc202xx_old serious bug with DMA on 2.6.x series
2004-06-21 14:14 ` Bartlomiej Zolnierkiewicz
@ 2004-06-21 15:19 ` Adolfo González Blázquez
0 siblings, 0 replies; 13+ messages in thread
From: Adolfo González Blázquez @ 2004-06-21 15:19 UTC (permalink / raw)
To: Bartlomiej Zolnierkiewicz; +Cc: Linux Kernel
Your patch works perfect! I hope this is the end of this issue.
Maybe you can answer other question i have about pdc202xx_old driver.
Altough the pdc bios shows it is on mode udma5, /proc/ide/pdc202xx shows
the controller is on dma mode UDMA4. hdparm shows disks are on udma5.
This is a bug or is normal behaviour?
Thanks again for your help!!
This is what proc says about pdc202xx:
fito@soho:~$ cat /proc/ide/pdc202xx
Ultra100 on M/B Chipset.
------------------------------- General Status
---------------------------------
Burst Mode : enabled
Host Mode : Normal
Bus Clocking : 66 External
IO pad select : 10 mA
Status Polling Period : 0
Interrupt Check Status Polling Delay : 0
--------------- Primary Channel ---------------- Secondary Channel
-------------
enabled enabled
66 Clocking disabled disabled
Mode PCI Mode PCI
FIFO Empty FIFO Empty
--------------- drive0 --------- drive1 -------- drive0 ----------
drive1 ------
DMA enabled: yes yes no no
DMA Mode: UDMA 4 UDMA 4 NOTSET
NOTSET
PIO Mode: PIO 4 PIO 4 NOTSET
NOTSET
El lun, 21-06-2004 a las 16:14, Bartlomiej Zolnierkiewicz escribió:
> On Mon, 21 Jun 2004, Adolfo [ISO-8859-1] González Blázquez wrote:
>
> > Well, it seems that problem is solved! I'm now using 2.6.7 without
> > problems. Got same perfomance on hard disks as with 2.4.x series.
> >
> > Disabling LBA48 for pdc20265 just made it work. This is the simple patch
> > I applied:
>
> OK, thanks. It works but similar patch went into 2.4.23 and you are
> using 2.4.25 without a problems. Can you try this patch instead?
>
> --- linux-2.6.7/drivers/ide/ide-probe.c 2004-06-21 15:25:51.000000000 +0200
> +++ linux/drivers/ide/ide-probe.c 2004-06-21 15:29:19.901710936 +0200
> @@ -897,7 +897,7 @@
> blk_queue_segment_boundary(q, 0xffff);
>
> if (!hwif->rqsize)
> - hwif->rqsize = hwif->no_lba48 ? 256 : 65536;
> + hwif->rqsize = 256;
> if (hwif->rqsize < max_sectors)
> max_sectors = hwif->rqsize;
> blk_queue_max_sectors(q, max_sectors);
>
> > diff --unified --recursive --new-file
> > linux-2.6.7/drivers/ide/pci/pdc202xx_old.c
> > linux/drivers/ide/pci/pdc202xx_old.c
> > --- linux-2.6.7/drivers/ide/pci/pdc202xx_old.c 2004-06-16
> > 07:20:17.000000000 +0200
> > +++ linux/drivers/ide/pci/pdc202xx_old.c 2004-06-21
> > 02:53:33.000000000 +0200
> > @@ -721,6 +721,10 @@
> > hwif->tuneproc = &config_chipset_for_pio;
> > hwif->quirkproc = &pdc202xx_quirkproc;
> >
> > + /* This was present on 2.6.0-test4, maybe here is the bug */
> > + if (hwif->pci_dev->device == PCI_DEVICE_ID_PROMISE_20265)
> > + hwif->no_lba48 = (hwif->channel) ? 0 : 1;
> > +
> > if (hwif->pci_dev->device != PCI_DEVICE_ID_PROMISE_20246) {
> > hwif->busproc = &pdc202xx_tristate;
> > hwif->resetproc = &pdc202xx_reset;
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2004-06-21 15:19 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-06-14 22:50 pdc202xx_old serious bug with DMA on 2.6.x series Adolfo González Blázquez
2004-06-14 23:18 ` Bartlomiej Zolnierkiewicz
2004-06-14 23:20 ` Adolfo González Blázquez
[not found] ` <20040615111552.GA12458@logos.cnet>
2004-06-15 11:33 ` Adolfo González Blázquez
[not found] ` <200406191846.32983.bzolnier@elka.pw.edu.pl>
2004-06-19 23:00 ` Adolfo González Blázquez
2004-06-20 0:47 ` Bartlomiej Zolnierkiewicz
2004-06-20 8:55 ` Adolfo González Blázquez
2004-06-20 23:30 ` Adolfo González Blázquez
2004-06-21 1:41 ` Adolfo González Blázquez
2004-06-21 14:14 ` Bartlomiej Zolnierkiewicz
2004-06-21 15:19 ` Adolfo González Blázquez
2004-06-15 13:26 ` Mikael Pettersson
-- strict thread matches above, loose matches on Subject: below --
2004-06-15 5:38 Vid Strpic
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox