From owner-freebsd-current Fri Jul 5 22:58:42 2002 Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D3A7037B401 for ; Fri, 5 Jul 2002 22:58:39 -0700 (PDT) Received: from prism.flugsvamp.com (66-191-112-47.mad.wi.charter.com [66.191.112.47]) by mx1.FreeBSD.org (Postfix) with ESMTP id CC17643E31 for ; Fri, 5 Jul 2002 22:58:38 -0700 (PDT) (envelope-from jlemon@flugsvamp.com) Received: (from jlemon@localhost) by prism.flugsvamp.com (8.11.6/8.11.6) id g665vhm16951; Sat, 6 Jul 2002 00:57:43 -0500 (CDT) (envelope-from jlemon) Date: Sat, 6 Jul 2002 00:57:43 -0500 (CDT) From: Jonathan Lemon Message-Id: <200207060557.g665vhm16951@prism.flugsvamp.com> To: bsddiy@yahoo.com, current@freebsd.org Subject: Re: i386 trap code X-Newsgroups: local.mail.freebsd-current In-Reply-To: Organization: Cc: Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG In article you write: >sorry for a bit OT, does anyone see this in_vm86call crazy global variable? >it prevents two CPUs to trap into VM86 model :( Um, unfortunately, this is by design. Most (all?) BIOSen code are single threaded, and the vm86 code shares the entire ISA hole, including the read/write BIOS data area. Allowing more than one CPU to execute BIOS code at once is asking for trouble, since there is no way to know what memory locations are being shared. Now that vm86_lock serves the same function, we could check that lock instead of of the global flag. >I have also fixed the problem that VM86 call is preempted by interrupt >threads and causes system crash. newest patch can always be gotten from : >http://opensource.zjonline.com.cn/freebsd/vm86patch.tgz I haven't looked at vm86 for a long time, but the original code worked by preventing any ASTs from being taken until the BIOS returned. It's likely that this needs to be reworked for -current. -- Jonathan To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message