Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 05 Jul 2002 23:24:31 -0700
From:      Terry Lambert <tlambert2@mindspring.com>
To:        David Xu <bsddiy@yahoo.com>
Cc:        Julian Elischer <julian@elischer.org>, Peter Wemm <peter@wemm.org>, FreeBSD current users <current@FreeBSD.ORG>
Subject:   Re: i386 trap code
Message-ID:  <3D268D1F.D96BC3F9@mindspring.com>
References:  <20020706030306.96129.qmail@web20905.mail.yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
David Xu wrote:
> >         testl   $PSL_VM,TF_EFLAGS(%esp) /* are we in vm86 mode? */
> >         jz      doreti_notvm86
> >         cmpl    $1,in_vm86call          /* are we in a vm86 call? */
> 
> sorry for a bit OT, does anyone see this in_vm86call crazy global variable?
> it prevents two CPUs to trap into VM86 model :(
> if you have interest in fixing this problem,  please have a look at PR :

This is on purpose.  Most BIOS implementations are non-reentrant,
and if you allocate resources in the bus space to BIOS based I/O,
you end up contending for it without locks.  This is "crossing the
beams" bad... 8-).


> http://www.freebsd.org/cgi/query-pr.cgi?pr=i386/38223
> 
> 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 saw the fix.  I like it, though it doesn't fix the handling
using an interrupt gate to take interrupts in VM86() mode (the
FreeBSD code doesn't do this at present, but it's a problem if
you run under VMWare, I think).

-- Terry

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




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