*BSD News Article 19509


Return to BSD News archive

Path: sserve!newshost.anu.edu.au!munnari.oz.au!foxhound.dsto.gov.au!fang.dsto.gov.au!myall.awadi.com.au!myall!blymn
From: blymn@awadi.com.au (Brett Lymn)
Newsgroups: comp.os.386bsd.development
Subject: Re: V86 mode & the BIOS (was Need advice: Which OS to port to?)
Date: 15 Aug 1993 06:30:11 GMT
Organization: AWA Defence Industries Pty. Ltd.
Lines: 30
Message-ID: <BLYMN.93Aug15160011@siren.awadi.com.au>
References: <3390@vall.dsv.su.se> <CB11pL.D12@imag.fr> <107181@hydra.gatech.EDU>
	<1993Aug4.073826.24956@fcom.cc.utah.edu> <107725@hydra.gatech.EDU>
	<245jrfINNrc0@bonnie.tcd-dresden.de> <108457@hydra.gatech.EDU>
	<1993Aug12.110032.16307@cnplss5.cnps.philips.nl>
NNTP-Posting-Host: siren.awadi.com.au
In-reply-to: rooij@bashful.isp.cft.philips.nl's message of Thu, 12 Aug 1993 11:00:32 GMT

>>>>> On Thu, 12 Aug 1993 11:00:32 GMT, rooij@bashful.isp.cft.philips.nl (Guido van Rooij) said:

Guido> gt8134b@prism.gatech.EDU (Howlin' Bob) writes:

>As for slow task switching, the 386 doesn't access the I/O permissions
>bitmap until an I/O instruction occurs.  The size of the bitmap has
>no effect on task switching performance.

Guido> The reason this was brought up is the fact that on task switching you
Guido> also need somehow to get the io permission bitmap in the TSS. Since
Guido> 386bsd does not use the builtin taskswitching of the 386, theis bitmap
Guido> has to be memcpy'd into the TSS, resullting in slow task switches.

I do not think that we need to copy the i/o bitmap at all.  There are
a couple of alternatives.  One is modify the TSS location on a task
switch to point at a different i/o bitmap.  Each task need not have
it's own i/o bitmap, they can use the default one until they request a
change - then the bitmap could be copied and updated as requested
(sort of a copy on write scheme).

The other alternative is to actually use a TSS for each process and do
a jump through the TSS.  According to Bill Jolitz the only reason for
the scheme we have at the moment is it only saves 8 registers instead
of 20, the scheme is supposed to be faster than doing a jmp through a
TSS.  In fact if you look at the pcb structure it already has all the
TSS structure there so making use of it would not change any kernel
data structures.

--
Brett Lymn