lkml.org 
[lkml]   [1998]   [Dec]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: More data on ide-cd "playing music" death
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/

\
 
 \ /
  Last update: 2005-03-22 13:45    [W:0.095 / U:0.084 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site