2004-01-30 22:38:19

by Mark Haverkamp

[permalink] [raw]
Subject: ide taskfile and cdrom hang


We have some test machines here at OSDL that have a problem with the ide
cdrom driver hanging when we cat the /proc/ide/hda/identify file. After
30 seconds the console displays: "hda: lost interrupt" which reoccurs
every 30 seconds forever. We noticed it on 2.6.2-rc2-mm1 but It looks
like this has been a problem for a while. Our test machines just changed
their configuration to use make defconfig. I found that if
CONFIG_IDE_TASKFILE_IO is N then the hang doesn't occur. Is this a
common problem or are there just certain drives that won't work with
taskfile i/o enabled? I've included my .config, lspci as attachments.
The cdrom model is CD-224E.

--
Mark Haverkamp <[email protected]>


Attachments:
.config (20.32 kB)
lspci (968.00 B)
Download all attachments

2004-01-31 00:46:44

by Andi Kleen

[permalink] [raw]
Subject: Re: ide taskfile and cdrom hang

Mark Haverkamp <[email protected]> writes:

> We have some test machines here at OSDL that have a problem with the ide
> cdrom driver hanging when we cat the /proc/ide/hda/identify file. After
> 30 seconds the console displays: "hda: lost interrupt" which reoccurs
> every 30 seconds forever. We noticed it on 2.6.2-rc2-mm1 but It looks
> like this has been a problem for a while. Our test machines just changed
> their configuration to use make defconfig. I found that if
> CONFIG_IDE_TASKFILE_IO is N then the hang doesn't occur. Is this a
> common problem or are there just certain drives that won't work with
> taskfile i/o enabled? I've included my .config, lspci as attachments.
> The cdrom model is CD-224E.

I looked at this some time ago together with BenH and Bart. The problem
seems to be that the taskfile statemachine for identify is quite broken.
(even when it didn't hang it usually returned only garbage on other
CD ROMs).

The CD ROM doesn't answer the request for some reason and then the
Linux taskfile code goes into an endless loop sending retries.

Bart had a patch to at least cure the hang by erroring out.

-Andi