From owner-freebsd-current Sun Mar 16 21:35:06 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id VAA21091 for current-outgoing; Sun, 16 Mar 1997 21:35:06 -0800 (PST) Received: from kithrup.com (kithrup.com [205.179.156.40]) by freefall.freebsd.org (8.8.5/8.8.5) with SMTP id VAA21085 for ; Sun, 16 Mar 1997 21:35:01 -0800 (PST) Received: (from sef@localhost) by kithrup.com (8.6.8/8.6.6) id VAA10736; Sun, 16 Mar 1997 21:34:48 -0800 Date: Sun, 16 Mar 1997 21:34:48 -0800 From: Sean Eric Fagan Message-Id: <199703170534.VAA10736@kithrup.com> To: jlemon@americantv.com Subject: Re: Gotcha in moving to post 4.4 lite2 merge ``world''. Newsgroups: kithrup.freebsd.current In-Reply-To: <19970316223415.24505.kithrup.freebsd.current@right.pcs> References: <199703161933.LAA09028@kithrup.com>; from Sean Eric Fagan on Mar 03, 1997 at 11:33:52AM -0800 Organization: Kithrup Enterprises, Ltd. Cc: current@freebsd.org Sender: owner-current@freebsd.org X-Loop: FreeBSD.org Precedence: bulk >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. msmith and I saw this early on, when we were using return_from_vm86() instead of the normal code path. For a while, I was hacking around it by calling userret() manually -- however, that shouldn't be an issue now, since you (jlemon) fixed the kernel stack layout, allowing us to simply return via normal channels. I've never been able to follow the low-level code through; Bruce is the only one I know of who knows it as well as I want to. Obviously, this note doesn't have a suggestion or a solution. :( Sean.