*BSD News Article 19264


Return to BSD News archive

Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!elroy.jpl.nasa.gov!swrinde!gatech!prism!gt8134b
From: gt8134b@prism.gatech.EDU (Howlin' Bob)
Newsgroups: comp.os.386bsd.development
Subject: Re: V86 mode
Message-ID: <107892@hydra.gatech.EDU>
Date: 7 Aug 93 20:50:58 GMT
References: <107725@hydra.gatech.EDU> <23tqbk$3tt@europa.eng.gtefsd.com> <CBDIC3.Gp4@hip-hop.suvl.ca.us>
Organization: Georgia Institute of Technology
Lines: 52

In <CBDIC3.Gp4@hip-hop.suvl.ca.us> dfox@hip-hop.suvl.ca.us (David Fox) writes:

>David C. Niemi (niemidc@oasis.gtefsd.com) wrote:
>: The V86-mode emulators I have seen tend to suck about 10% of the CPU each (on a 386).
>: Is this inherent in V86 mode, or is it a deficiency of the implementation?

>I am sure some of the performance hit you get with dosemu and v86 mode in
>general is because the system is already in protected mode, and there is
>significant anction to switch between the two modes, and linux is continually
>switching between the two when running dosemu.  I don't think the problem is
>unavoidable, because in part that is how the intel hardware does things.

Eh?  I'm afraid I don't understand what your last sentence means.
If you mean that all the performance loss in dosemu isn't necessary,
I agree.  One big problem with dosemu is that the Linux kernel isn't
structured around efficient V86-mode handling.  OS/2 and Windows DOS
boxes will always perform better than dosemu.  I might one day change
the kernel so that it's a bit more lenient on V86 mode, but I don't
see myself (or Linus) sacrificing kernel cleanliness, structure, or
efficiency for dosemu.

>BTW, I tried dosemu on a 386SX running linux, and the DOS programs running
>underneath were really too slow to use.

Could you please be a little more specific, like telling me what version of
dosemu, what progams you ran, and what display mode you were in?  These
all make a big difference.  If you were in tty display mode, then dosemu
has to periodically scan the display memory, translate it into termcap
escape sequences and ASCII, then stuff it onto the tty.  If you're in console
mode, then things should run a good bit better.  Also, some programs run
slower than others for reasons other than dosemu's inherent performance:
some depend on the delivery of timer interrupts to control delay loops,
which is a problem I'm still wrestling with.  It's pretty hard to simulate
a 400Hz timer interrupt for a hypothetical game XY on a system with a 
100Hz clock.  Of course, programs that stick with the standard 18.2 Hz
clock rate should work without extra delay, taking task switching latency
into account.

I find a lot of programs very usable on my 486-33.  Some programs apparently
run as fast as they do under DOS (note that I said "apparently.")  


Besides, I find most anything on a 386SX too slow to use. :-)


Robert

-- 
Robert Sanders
Georgia Institute of Technology, Atlanta Georgia, 30332
uucp:	  ...!{decvax,hplabs,ncar,purdue,rutgers}!gatech!prism!gt8134b
Internet: gt8134b@prism.gatech.edu