Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 16 Mar 1997 22:34:15 -0600
From:      Jonathan Lemon <jlemon@americantv.com>
To:        Sean Eric Fagan <sef@Kithrup.COM>
Cc:        current@FreeBSD.org
Subject:   Re: Gotcha in moving to post 4.4 lite2 merge ``world''.
Message-ID:  <19970316223415.24505@right.PCS>
In-Reply-To: <199703161933.LAA09028@kithrup.com>; from Sean Eric Fagan on Mar 03, 1997 at 11:33:52AM -0800
References:  <199703160024.QAA13864@kithrup.com>; <199703161933.LAA09028@kithrup.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mar 03, 1997 at 11:33:52AM -0800, Sean Eric Fagan wrote:
> 3.  As jlemon points out himself, it can lock up the system.  (Not
> completely lock up, but only interrupt-driven services run.  And, sadly, X
> is not interrupt driven. :()  We're not sure what's going on here; my
> suspicion is an infinite loop in the kernel, doscmd getting a cli passed
> through, and/or we're somehow bypassing the normal code path that allows the
> kernel to switch processes.

What's happening (in the test case I'm working on) is that the vm86() 
process is going into an infinite loop, and somehow or the other, an AST
interrupt is not being generated.

Interrupts are enabled, the kernel is getting called, the AST flag in 
_ipending is set, but when _doreti gets hit, it just jumps back into vm86
mode instead of calling trap().  Right now, I can recover by writing
a garbage %ds on the frame, and forcing a call into trap() via a doreti fault.

Any feedback or ideas on how this could happen are happily accepted.
--
Jonathan



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19970316223415.24505>