2004-03-09 14:07:43

by Adrian Cox

[permalink] [raw]
Subject: cdromaudio patch gives up too easily

The patch for DMA based CD reading worked well for me until I tried to
read the audio from a badly damaged CDR. At this point the code dropped
back to the old mechanism and stayed that way for further CDs.

The logs below show what happened, running 2.6.4-rc2 with just that
patch:

cdrom: open failed.
hdc: packet command error: status=0x51 { DriveReady SeekComplete Error }
hdc: packet command error: error=0x30
ATAPI device hdc:
Error: Medium error -- (Sense key=0x03)
(reserved error code) -- (asc=0x57, ascq=0x00)
The failed "Prevent/Allow Medium Removal" packet command was:
"1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 "
cdrom: open failed.
hdc: packet command error: status=0x51 { DriveReady SeekComplete Error }
hdc: packet command error: error=0x30
ATAPI device hdc:
Error: Medium error -- (Sense key=0x03)
(reserved error code) -- (asc=0x57, ascq=0x00)
The failed "Prevent/Allow Medium Removal" packet command was:
"1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 "
cdrom: cdda rip sense 03/02/00
cdrom: dropping to old style cdda
hdc: packet command error: status=0x51 { DriveReady SeekComplete Error }
hdc: packet command error: error=0x30
ATAPI device hdc:
Error: Medium error -- (Sense key=0x03)
(reserved error code) -- (asc=0x02, ascq=0x00)
The failed "Read CD" packet command was:
"be 04 00 00 00 00 00 00 08 f8 00 00 00 00 00 00 "

... and the above pattern eventually becomes this:
ide-cd: cmd 0xbe timed out
hdc: irq timeout: status=0xd0 { Busy }
hdc: irq timeout: error=0xd0LastFailedSense 0x0d
hdc: ATAPI reset complete
ide-cd: cmd 0xbe timed out
hdc: irq timeout: status=0xd0 { Busy }
hdc: irq timeout: error=0xd0LastFailedSense 0x0d
hdc: ATAPI reset complete
ide-cd: cmd 0xbe timed out
hdc: irq timeout: status=0xd0 { Busy }
hdc: irq timeout: error=0xd0LastFailedSense 0x0d
hdc: status timeout: status=0xd0 { Busy }
hdc: status timeout: error=0xd0LastFailedSense 0x0d
hdc: drive not ready for command
hdc: ATAPI reset complete

At some point in the sequence I killed grip and ejected the CD.

- Adrian Cox



2004-03-09 14:16:22

by Jens Axboe

[permalink] [raw]
Subject: Re: cdromaudio patch gives up too easily

On Tue, Mar 09 2004, Adrian Cox wrote:
> The patch for DMA based CD reading worked well for me until I tried to
> read the audio from a badly damaged CDR. At this point the code dropped
> back to the old mechanism and stayed that way for further CDs.
>
> The logs below show what happened, running 2.6.4-rc2 with just that
> patch:
>
> cdrom: open failed.
> hdc: packet command error: status=0x51 { DriveReady SeekComplete Error }
> hdc: packet command error: error=0x30
> ATAPI device hdc:
> Error: Medium error -- (Sense key=0x03)
> (reserved error code) -- (asc=0x57, ascq=0x00)
> The failed "Prevent/Allow Medium Removal" packet command was:
> "1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 "
> cdrom: open failed.
> hdc: packet command error: status=0x51 { DriveReady SeekComplete Error }
> hdc: packet command error: error=0x30
> ATAPI device hdc:
> Error: Medium error -- (Sense key=0x03)
> (reserved error code) -- (asc=0x57, ascq=0x00)
> The failed "Prevent/Allow Medium Removal" packet command was:
> "1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 "
> cdrom: cdda rip sense 03/02/00
> cdrom: dropping to old style cdda

Ok, it's pretty harmful. I was just telling Andrew last week that I
wanted to add sense checking for whether we should fall back to pio or
not. Probably something as simple as checking for sense key 0x04 or 0x0b
and then skipping dma completely, all others keep going.

Thanks for testing, I'm pretty happy with the results you got. They are
just a bit too conservative, rather that than throwing up.

--
Jens Axboe

2004-03-09 14:36:04

by Jens Axboe

[permalink] [raw]
Subject: Re: cdromaudio patch gives up too easily

On Tue, Mar 09 2004, Jens Axboe wrote:
> On Tue, Mar 09 2004, Adrian Cox wrote:
> > The patch for DMA based CD reading worked well for me until I tried to
> > read the audio from a badly damaged CDR. At this point the code dropped
> > back to the old mechanism and stayed that way for further CDs.
> >
> > The logs below show what happened, running 2.6.4-rc2 with just that
> > patch:
> >
> > cdrom: open failed.
> > hdc: packet command error: status=0x51 { DriveReady SeekComplete Error }
> > hdc: packet command error: error=0x30
> > ATAPI device hdc:
> > Error: Medium error -- (Sense key=0x03)
> > (reserved error code) -- (asc=0x57, ascq=0x00)
> > The failed "Prevent/Allow Medium Removal" packet command was:
> > "1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 "
> > cdrom: open failed.
> > hdc: packet command error: status=0x51 { DriveReady SeekComplete Error }
> > hdc: packet command error: error=0x30
> > ATAPI device hdc:
> > Error: Medium error -- (Sense key=0x03)
> > (reserved error code) -- (asc=0x57, ascq=0x00)
> > The failed "Prevent/Allow Medium Removal" packet command was:
> > "1e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 "
> > cdrom: cdda rip sense 03/02/00
> > cdrom: dropping to old style cdda
>
> Ok, it's pretty harmful. I was just telling Andrew last week that I

Harmless, of course :-)

--
Jens Axboe