Re: cdrom: dropping to single frame dma

From: David N. Arnold
Date: Tue Aug 03 2004 - 19:38:08 EST


Jens Axboe wrote:
On Sun, Jul 25 2004, David Ford wrote:

I've been trying to rip my CDs onto my HD, and last night after about 7 CDs I realized I was getting junk and it was taking forever to rip a CD. I'm using 2.6.8-rc2 and I have two different CD-ROMs in my machine. Both are burners.

I got a single "cdrom: dropping to single frame dma" message which according to my research is part of the culprit.

See the thread on LKML back on 5/15/2004 titled "dma ripping", and again on 6/15 titled "cdrom ripping / dropping to dingle frame dma" -- yes that's a "d".

I'm guessing that Jens' patch for this didn't make it into the kernel.


Try this.

--- linux-2.6.8-rc2-mm1/drivers/cdrom/cdrom.c~ 2004-08-02 14:56:48.259992912 +0200
+++ linux-2.6.8-rc2-mm1/drivers/cdrom/cdrom.c 2004-08-02 15:20:58.326549288 +0200
@@ -2004,6 +2004,8 @@
struct packet_command cgc;
int nr, ret;
+ cdi->last_sense = 0;
+
memset(&cgc, 0, sizeof(cgc));
/*
@@ -2055,6 +2057,8 @@
if (!q)
return -ENXIO;
+ cdi->last_sense = 0;
+
while (nframes) {
nr = nframes;
if (cdi->cdda_method == CDDA_BPC_SINGLE)
@@ -2102,6 +2106,7 @@
nframes -= nr;
lba += nr;
+ ubuf += len;
}
return ret;


I don't know if it's a result of upgrading to 2.6.8-rc2 (from 2.6.5) or from the patch, but it has changed things. I still get

hdd: DMA timeout retry
hdd: timeout waiting for DMA
hdd: status timeout: status=0xd0 { Busy }
hdd: status timeout: error=0x00
hdd: drive not ready for command
hdd: ATAPI reset complete
cdrom: dropping to single frame dma

but ripping stays at its normal speed (5.0x instead of 0.6x) and the file produced is correct instead of skipping/silence.

It doesn't fix the true issue of why I'm getting DMA timeouts, but it does make ripping useable.

P.S. Does anyone know why this:

gst-launch-0.8 cdparanoia ! vorbisenc ! filesink location="music.ogg"

would cause a DMA timeout but this:

gst-launch-0.8 cdparanoia ! queue ! { vorbisenc ! filesink location="music.ogg" }

wouldn't?

Thanks,
Dave Arnold
-
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/