ftp://ftp.plex86.org/pub/plex86/plex86-2000_0325d.tar.gz
This is mostly a release for people interested in
plex86 internals. I changed enough stuff, that I
decided to wait until this week sometime to
deal with CVS stuff. So just a tarball for now.
Following is from the ChangeLog. Mostly structural
changes, though I believe important ones. Previous mods
allowed code to be executed in either host or monitor space.
These mods let us access the VM structure and monitor data
structures from *either* space using the same code as well.
This gives us a lot of flexibility, and more performance
potential. For instance if the SBE code can also run
in the fault handler, we can handle (emulate) a lot
more faults/second since we can eliminate the 2 major
context switches to/from host and monitor spaces. And
we eliminate 2 major TLB flushes since we don't do the
CR3 reload either!!! Same situation for certain components
of IO emulation.
-Kevin
================================================================
plex86-2000_0325d:
- "Kevin P. Lawton" <[EMAIL PROTECTED]>:
Mapped VM (vm_t) structure into monitor space.
Rehashed the vm_t structure and other framework so that
we can access VM fields from either host or guest address
spaces. If you stick to accessing VM fields using only
pointers in the 'common' substructure, code will work in
either space. The 'addr' field is actually just a pointer
which is changed during a space transition, to point to
set of pointers for that space. This way, general code
doesn't need to know or care what space it executes in.
Functions in kernel/fault.c now pass the 'vm' pointer on
to functions in kernel/emulate.c. Also, all functions in
kernel/emulate.c pass the vm pointer. These functions should
execute in either space now.
Moved vm_nexus() from kernel/include/monitor.c to kernel/fault.c
so it won't be used outside of these functions. It is space
dependent, and shouldn't be used outside of this file anymore.
It is used to grab the vm pointer from the nexus upon fault,
and is not needed thereafter during the fault handling.
- "Janek Hiis" <[EMAIL PROTECTED]>
Added #ifdef in kernel/host-linux.c for move of i_mmap field,
in newer Linux kernels. 2.3.99?