2003-07-13 13:51:48

by Adam Kessel

[permalink] [raw]
Subject: DVD/CD Read Problem: cdrom_decode_status: status=0x51 {DriveReady SeekComplete Error}

I get the following errors and an unkillable process when trying to play
DVDs, using the latest 2.5.75:

Jul 13 00:15:03 joehill kernel: hdc: cdrom_decode_status: status=0x51 { DriveReady SeekComplete Error }
Jul 13 00:15:03 joehill kernel: hdc: cdrom_decode_status: error=0x30LastFailedSense 0x03

and sometimes:

Jul 13 00:15:03 joehill kernel: hdc: ide_intr: huh? expected NULL handler on exit

This problem has been discussed several times before on this list[1], but with
no resolution or fixes that I can find.

I don't believe this is a userspace issue. Other OS's are able to deal with
playing video DVDs by skipping read errors quickly. There should be some one
way to tell the kernel not to keep retrying for certain (i.e., non-data)
CD/DVDs. I can't see any possible way to do this in application space, though.

I've tried building the kernel with CONFIG_IDEDISK_MULTI_MODE as per some
suggestions on this list. This may have made a small difference, although it
might have also just been a lucky run.

I also tried setting ERROR_MAX and ERROR_RESET to 0 in ide-cd.c, which did
shorten the "hanging" duration, but didn't fix it entirely, and also seems like
a bad way to fix this problem.

I'm not sure why it's getting errors at all, incidentally, as this occurs
with brand new DVDs out of the shrink wrap, and a relatively new DVD
player (HP F2015B, manufactured by Quanta).

--Adam Kessel

[1] Most recently in April of this year:

"Bug in linux kernel when playing DVDs."
http://www.ussg.iu.edu/hypermail/linux/kernel/0304.3/0769.html

And in March:

"Help please: DVD ROM read difficulty"
http://www.ussg.iu.edu/hypermail/linux/kernel/0303.0/1570.html


2003-07-13 14:07:39

by Alan

[permalink] [raw]
Subject: Re: DVD/CD Read Problem: cdrom_decode_status: status=0x51 {DriveReady SeekComplete Error}

On Sul, 2003-07-13 at 15:06, Adam Kessel wrote:
> I don't believe this is a userspace issue. Other OS's are able to deal with
> playing video DVDs by skipping read errors quickly. There should be some one
> way to tell the kernel not to keep retrying for certain (i.e., non-data)
> CD/DVDs. I can't see any possible way to do this in application space, though.

It is mostly a user space issue. A DVD drive takes a couple of seconds
to decide bad things have happened. A way to lower retries is definitely
sensible but thats different.

The unexpected NULL on the 2.5 case points to IDE layer bugs too btw.

Userspace should be using a thread pulling data at least ten or fifteen
seconds ahead of the UI, even with the retries toned down.