"Kevin P. Lawton" wrote:

> a re-write.  Anyways, ultimately I'd like to map in more
> then just the monitor virtualization handlers.  It'd be nice
> to conditionally map in components of the hardware emulation.
> Like imagine if a guest disk driver was reading non-DMA through
> the IO ports.  If we could put the non read()/write() oriented
> stuff in the monitor and just read from or write to a buffer,
> we crank up the performance incredibly.  We should have a way
> that creates the smallest monitor footprint in the guest address
> space, so we have the most flexibility.

Oh yeah, one follow up thought.  Kinda obvious, but whether
we have the function in the host or monitor spaces, we can
speed up IO emulation to the disk if we find the guest is
using a REP IO instruction.  If we wanted to be smart, we
could actually satisfy reads of an entire sector in one
shot by effecting a series of IOs all at once rather than
having the IO instruction trap out many times.

Disk emulation has potential to be very efficient.  We can't
do this with standard 640x480x16color VGA mode though, because
of those freekin latching modes.  Of course, special guest specific
drivers will take care of this.  (Or I suppose the guest could be
allowed to read/write directly to the real VGA ports/memory if
we got real spiffy)

-Kevin

Reply via email to