Re: More data on ide-cd "playing music" death

Romano Giannetti (romano@dea.icai.upco.es)
Tue, 1 Dec 1998 19:04:43 +0100


On Tue, Dec 01, 1998 at 05:22:38PM +0100, Jens Axboe wrote:
> Romano Giannetti wrote:

> > BAD NEWS, Jens: with debug=0 I can trigger the bug... well, I think. I
> > was listening music and the PC freezed completely. Nothing in the log.
> > Black screen (under X), no console switching, not Alt SysRq s. Only
> > Alt SysRq b did work and reboot the system.
> > It seems that the reset hosed up completely the I/O.
>
> Do you have anything else on the secondary controller? Did the system
> respons to any of the other sysrq's, specifically sysrq+p? This might
> indicate that Andre's suggestion regarding variable timeouts would
> be useful. I hope to get my hands on a "newer" CD-ROM so I can do
> some testing on my own.
>

No and no, respectively; cdrom is the only device on hda1, and system
seemed dead. I was in X, so I cannot say if a) SysRq-p was not
working, or b) it was working and simply the klogd/syslogd could not
access disks. I could try to lock the system without X, later, before
going home (I have a deadline for a paper and ... I need latex up and
running :).

> > Ah. A thing I noticed yesterday. It seems that, when I triggered the
> > bug (plain 2.1.130), the programs locked in the D state were in
> > down_failed or something like this. I guess that the problem is that
> > when we loose an interrupt, we should notify it and try to continue;
> > but with the original code after that every time we see another
> > interrupt we report a lost one. Is it possible (wild guess) that
> > simply we forgot to increment/decrement/unlock something?
>
> Andre, what do we currently do with a lost interrupt?

I noticed that sometime in ide-cd.c we do a cdrom_end_request(), and
sometime not. What I was thinking (please bear with me, I really did
not understand the code) is that: if in ide.c, in ide_timer_expiry(),
we trigger

if(drive_is_ready(drive)) {/*lost interrupt*/}

than with handler(drive) I think we end calling cdrom_pc_intr(); now,
if nothing is done to "ack" the new situation, at the next timer
expiration we have a ready drive, no interrupt, and so on... well I'm
saying idiocies, probably :), so I shut up.

The thing that really is strange is that when I am using the CD as a
CDROM (not playing) it successfully resets itself...

Back to the paperwork (grrr),
Romano

-- 
Romano Giannetti, Professor  -  Univ. Pontificia Comillas (Madrid, Spain)
Electronic Engineer - phone +34 915 422 800 ext 2410  fax +34 915 596 569

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/