On Wed, 21 Apr 1999 [EMAIL PROTECTED] wrote:

> I've installed dosemu-0.99.10.0 on my RH5.2 box, the kernel
> upgraded to 2.2.5, and started xdos, with in the configuration file:
> 
> $_rdtsc = (on)          # if possible use Pentium cycle counter
> $_hogthreshold = (100)  # 0 == all CPU power to DOSEMU

$_hogthreshold = (1) gives all power to Linux (see doc/README.txt)
and with this I see a load of 0.05 on my machine, when idling on the DOS
prompt.

> $_com1 = "/dev/vmodem"        # e.g. "/dev/mouse" or "/dev/cua0"
> 
> This xdos seems to slow down the system much, even when at the DOS

xdos eats 'X-power' (counts to the CPU load of the server), because
it has to refresh the screen quite often, much more then other X
applications (except real video of course;-). The config value to play
with is

  $_X_updfreq = (5)

However, if you make the refresh rate big (value small), you eat more
X-power, if you make it too small (value big), you get a noticable delay
when the X-server has to wait for the X-application to finish some action.
It may depend on the X-server used though.

> prompt doing nothing: dragging a window on my K6-2 333Mhz 128Mb slows
> down alot [gfx card: Matrox G200], it looks like it spends a lot of
> time in kernel space since it is not traceable with top.

Yes, _quite_ a lot. Though it drops kernel priviledges and uses userspace
pagetables, it doesn't really return to the _32-bit_ userspace code while
in vm86(). It's a special case not 1:1 comparable with normal userspace.
And while in vm86() the CPU time apparently counts as 'kernel time'.

> [root@k6 fd]# ls -l /proc/1347/fd/12
> lrwx------   1 root     root           64 Apr 21 21:30 /proc/1347/fd/12 -> 
>/dev/vmodem
> 
> ..so it's polling the COM port for no reason. Someone knows why?

The reason is you configured to use it, and depending on what serial
drivers / TSRs you have,  there is no other way as to poll.

> SYS_166(0x1, 0x8106d44, 0x70000, 0xfff8fff1, 0x804bd00) = -1 ENOSYS (Function not 
>implemented)
> gettimeofday({924723197, 781803}, NULL) = 0
> 
> etc.
> 
> It seems like this SYS_166 is the offending system call. Anyone knows
> what SYS_166 is supposed to do?

It's the heart of vm86() ;-) and it's returning -1 on 99.99 % of its calls.
Why the strace / libc maintainers after over 2 years could not cope with
finally knowing what this 'strange' syscall 166 does, is out of the scope
of my knowledge ;-)

Hans
<[EMAIL PROTECTED]>

Reply via email to