Date: Tue, 13 Aug 1996 17:48:21 +1000 From: Bruce Evans <bde@zeta.org.au> To: dfr@render.com, james@miller.cs.uwm.edu Cc: freebsd-current@FreeBSD.org, wangel@wgrobez1.remote.louisville.edu Subject: Re: locking up Message-ID: <199608130748.RAA31144@godzilla.zeta.org.au>
next in thread | raw e-mail | index | archive | help
>> > Sometimes, at no predetermined time, without warning, when switching VC's, >> > I'll lock up. FreeBSD doesn't lockup just the keyboard, and I can only fix >> > it by rebooting. >This happens to me whenever I break into DDB. The ipending thing fixes >it. I guess this motherboard manages to misplace the keyboard interrupt >while I am in the debugger :-(. I guess it is a timing bug in the console driver. If an ISA interrupt handler returns before completely servicing then interrupt, then it will never get anothr interrupt (because ISA interrupts are edge triggered and the old one hasn't gone away). Polling for keystrokes in the (ddb) console input routine apparently sometimes confuses the driver into thinking that an unserviced interrupt has been serviced. The bug is very obvious: scintr() doesn't loop like it needs to. scgetc() does loop, but it sometimes returns early. I used to think that the loop handled all cases, but this bug has been present since revision 1.1. Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199608130748.RAA31144>