Skip to contentSkip to conversation

2.4.21-rc1-ac2 Promise IDE DMA won't work

DISCUSSION Tabris 5 participants 9 messages Apr 29, 2003 – Apr 30, 2003

lore
Share & tools
lore

Tabris

author
#0 lore raw

I looked thru marc's archives, and i'm not finding anything specific to this problem, tho I do believe it is probably a known issue.

ASUS A7v266-E
PDC20265
LITE-ON LTR-32123S

only device on the Promise IDE is the cd-rw drive. have four hard drives on the VIA IDE.

running kernel 2.4.21-rc1-ac2 + preempt + rmap15g + i2c-sensors

burning now works using cdrecord ATAPI (previous was 2.4.21-pre5-ac3 where the ide-scsi was too unstable)

at present, reading the cd drive takes 80+% of CPU system time...

I would like to be able to enable DMA. i tried doing it manually with hdparm. enabling 32-bit IO or enabling DMA would both make it just not work.
[root@tabriel root]# hdparm /dev/hdg

/dev/hdg:
HDIO_GET_MULTCOUNT failed: Invalid argument

 IO_support   =  0 (default 16-bit)
 unmaskirq    =  0 (off)
 using_dma    =  0 (off)
 keepsettings =  0 (off)
 readonly     =  1 (on)
 readahead    =  8 (on)

HDIO_GETGEO failed: Invalid argument
[root@tabriel root]#
[root@tabriel root]# hdparm -I /dev/hdg

/dev/hdg:

ATAPI CD-ROM, with removable media
Model Number: LITE-ON LTR-32123S
Serial Number:
Firmware Revision: XS0R
Standards:
Used: ATAPI for CD-ROMs, SFF-8020i, r2.5
Supported: CD-ROM ATAPI-2
Configuration:
DRQ response: 50us.
Packet size: 12 bytes
Capabilities:
LBA, IORDY(cannot be disabled)
DMA: *mdma0 mdma1 mdma2 udma0 udma1 udma2
Cycle time: min=120ns recommended=120ns
PIO: pio0 pio1 pio2 pio3 pio4
Cycle time: no flow control=227ns IORDY flow control=120ns
[root@tabriel root]#

any more info needed, just ask. any help much appreciated.

Signature · 2 lines
"Ignorance is the soil in which belief in miracles grows."
-- Robert G. Ingersoll
#1 lore raw

NO ATAPI DMA!

I will not write the driver core to attempt to support the various combinations. The ATAPI DMA engine space is used support 48bit. Use the onboard controller for ATAPI.

Quoted 55 lines · Tabris

I looked thru marc's archives, and i'm not finding anything specific to this problem, tho I do believe it is probably a known issue.

ASUS A7v266-E
PDC20265
LITE-ON LTR-32123S

only device on the Promise IDE is the cd-rw drive. have four hard drives on the VIA IDE.

running kernel 2.4.21-rc1-ac2 + preempt + rmap15g + i2c-sensors

burning now works using cdrecord ATAPI (previous was 2.4.21-pre5-ac3 where the ide-scsi was too unstable)

at present, reading the cd drive takes 80+% of CPU system time...

I would like to be able to enable DMA. i tried doing it manually with hdparm. enabling 32-bit IO or enabling DMA would both make it just not work.
[root@tabriel root]# hdparm /dev/hdg

/dev/hdg:
HDIO_GET_MULTCOUNT failed: Invalid argument

 IO_support   =  0 (default 16-bit)
 unmaskirq    =  0 (off)
 using_dma    =  0 (off)
 keepsettings =  0 (off)
 readonly     =  1 (on)
 readahead    =  8 (on)

HDIO_GETGEO failed: Invalid argument
[root@tabriel root]#
[root@tabriel root]# hdparm -I /dev/hdg

/dev/hdg:

ATAPI CD-ROM, with removable media
Model Number: LITE-ON LTR-32123S
Serial Number:
Firmware Revision: XS0R
Standards:
Used: ATAPI for CD-ROMs, SFF-8020i, r2.5
Supported: CD-ROM ATAPI-2
Configuration:
DRQ response: 50us.
Packet size: 12 bytes
Capabilities:
LBA, IORDY(cannot be disabled)
DMA: *mdma0 mdma1 mdma2 udma0 udma1 udma2
Cycle time: min=120ns recommended=120ns
PIO: pio0 pio1 pio2 pio3 pio4
Cycle time: no flow control=227ns IORDY flow control=120ns
[root@tabriel root]#

Quoted 13 lines

any more info needed, just ask. any help much appreciated.

Signature · 8 lines
"Ignorance is the soil in which belief in miracles grows."
-- Robert G. Ingersoll

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

Andre Hedrick
LAD Storage Consulting Group

author
#2 lore raw
Quoted 7 lines · Andre Hedrick

NO ATAPI DMA!

I will not write the driver core to attempt to support the various combinations. The ATAPI DMA engine space is used support 48bit. Use the onboard controller for ATAPI.
Andre Hedrick
LAD Storage Consulting Group

Can I object that it came built onto the board? okok... i'll take that as a no for now...

Tho i'm still not quite sure how it makes a diff to be honest, unless you mean that the Promise and HPT will never be supported for DMA?

and the only other thing i should say is that altho i'm not exactly a n00b, the average user WILL expect it to work.

can i expect this to be fixed by 2.6? (yeah, i know... 2.4-ac-ide code is similar to 2.5-ide code)
--
tabris

#3 lore raw
Quoted 15 lines · Tabris
Quoted 7 lines · Andre Hedrick

NO ATAPI DMA!

I will not write the driver core to attempt to support the various combinations. The ATAPI DMA engine space is used support 48bit. Use the onboard controller for ATAPI.
Andre Hedrick
LAD Storage Consulting Group

Can I object that it came built onto the board? okok... i'll take that as a no for now...

Tho i'm still not quite sure how it makes a diff to be honest, unless you mean that the Promise and HPT will never be supported for DMA?

Quoted 7 lines

and the only other thing i should say is that altho i'm not exactly a n00b, the average user WILL expect it to work.

can i expect this to be fixed by 2.6? (yeah, i know... 2.4-ac-ide code is similar to 2.5-ide code)
--
tabris

The point is that you should put your ATAPI device (in this case the cd-rom) on the VIA controllers, and place the hdd's on the promise controller, since dma is supported for hdd's...

This is also their intended primary functions by the manufacturers..., for example the HPT370 controller with bios version >1.1.x.xxx does not have ATAPI support (atleast officially, I haven't tried it)

Thomas

#4 lore raw
In reply to Tabris

The Promise chipset use a second DMA engine at offset 0x24 respective of the channel. Mixing an ATA and ATAPI on that channel is almost impossible to make the corner cases work. Next, if there us a 48-bit ATA plus ATAPI on the channel popping between the two enignes does not look sane at all because one has to swithc the location of the hwif->sgtable.

Quoted 15 lines · Tabris
Quoted 7 lines · Andre Hedrick

NO ATAPI DMA!

I will not write the driver core to attempt to support the various combinations. The ATAPI DMA engine space is used support 48bit. Use the onboard controller for ATAPI.
Andre Hedrick
LAD Storage Consulting Group

Can I object that it came built onto the board? okok... i'll take that as a no for now...

Tho i'm still not quite sure how it makes a diff to be honest, unless you mean that the Promise and HPT will never be supported for DMA?

Quoted 8 lines

and the only other thing i should say is that altho i'm not exactly a n00b, the average user WILL expect it to work.

can i expect this to be fixed by 2.6? (yeah, i know... 2.4-ac-ide code is similar to 2.5-ide code)
--
tabris

Andre Hedrick
LAD Storage Consulting Group

#5 lore raw
Quoted 5 lines · Andre Hedrick

The Promise chipset use a second DMA engine at offset 0x24 respective of the channel. Mixing an ATA and ATAPI on that channel is almost impossible to make the corner cases work. Next, if there us a 48-bit ATA plus ATAPI on the channel popping between the two enignes does not look sane at all because one has to swithc the location of the hwif->sgtable.

You can wrap that on the drivers for the disk stuff now but not cleanly for the other cases. Is there any reason we can't use the ATAPI engine for everything btw ?

author
#6 lore raw
In reply to Andre Hedrick
Quoted 6 lines · Andre Hedrick

The Promise chipset use a second DMA engine at offset 0x24 respective of the channel. Mixing an ATA and ATAPI on that channel is almost impossible to make the corner cases work. Next, if there us a 48-bit ATA plus ATAPI on the channel popping between the two enignes does not look sane at all because one has to swithc the location of the hwif->sgtable.

Ok... moved the HDDs from the VIA secondary to the PDC primary (tried moving both, but it seems that ide=reverse doesn't work), and the CD-R/W to the VIA secondary.

good news, regular reads seem to use the DMA engine. bad news, CDDA ripping (using cdparanoia) does not.

is this a known issue? (i thought that CDDA ripping had been fixed)

Haven't tested burning yet.

Hope this all helps, and doesn't annoy too much ;)

--
tabris
-
The day advanced as if to light some work of mine; it was morning, and lo! now it is evening, and nothing memorable is accomplished.

		-- H.D. Thoreau
#7 lore raw
Quoted 10 lines · Tabris
Quoted 6 lines · Andre Hedrick

The Promise chipset use a second DMA engine at offset 0x24 respective of the channel. Mixing an ATA and ATAPI on that channel is almost impossible to make the corner cases work. Next, if there us a 48-bit ATA plus ATAPI on the channel popping between the two enignes does not look sane at all because one has to swithc the location of the hwif->sgtable.

Quoted 6 lines

Ok... moved the HDDs from the VIA secondary to the PDC primary (tried moving both, but it seems that ide=reverse doesn't work), and the CD-R/W to the VIA secondary.

good news, regular reads seem to use the DMA engine. bad news, CDDA ripping (using cdparanoia) does not.

is this a known issue? (i thought that CDDA ripping had been fixed)

Have you tried Andrew Morton's ide-cd dma patch? It seems to have worked well for me, at least. A summary of what it does is included at the top of the patch.

http://www.zipworld.com.au/~akpm/linux/patches/2.4/2.4.20/ide-akpm.patch

Perhaps Alan might considier it for the -rc2 ac patch?

Cheers,
Nicholas

author
#8 lore raw
In reply to Tabris
Quoted 28 lines · Andre Hedrick
Quoted 7 lines

NO ATAPI DMA!

I will not write the driver core to attempt to support the various combinations. The ATAPI DMA engine space is used support 48bit. Use the onboard controller for ATAPI.
Andre Hedrick
LAD Storage Consulting Group

Can I object that it came built onto the board? okok... i'll take that as a no for now...

Quoted 10 lines

Tho i'm still not quite sure how it makes a diff to be honest, unless you mean that the Promise and HPT will never be supported for DMA?

and the only other thing i should say is that altho i'm not exactly a n00b, the average user WILL expect it to work.

can i expect this to be fixed by 2.6? (yeah, i know... 2.4-ac-ide code is similar to 2.5-ide code)
--
tabris

The point is that you should put your ATAPI device (in this case the cd-rom)
on the VIA controllers, and place the hdd's on the promise controller, since dma is supported for hdd's...

Quoted 6 lines

This is also their intended primary functions by the manufacturers..., for example the HPT370 controller with bios version >1.1.x.xxx does not have ATAPI support (atleast officially, I haven't tried it)

Thomas

So, are you telling me that DMA for both my hard drives, and my CD-R/Ws will work, if i put my HDs on the PDC20265 controller, and my CD-R/W on the VIA?

or will i lose DMA on the hard drives in this way, losing performance?

the second solution, tho one _I_ could probably live with, is still a problem, especially for those of us who want to sell GNU/Linux to our customers as a 'better' solution.

btw, please cc: me in your replies, as I no longer am able to subscribe to the linux-kernel list. this reply i had to hack by hand from marc.theaimsgroup

--
tabris
-
Why don't you fix your little problem... and light this candle?
-- Alan Shepherd, the first man into space, Gemini program