Messages in this thread | | | Date | Tue, 1 Dec 1998 19:04:43 +0100 | From | Romano Giannetti <> | Subject | Re: 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/
| |