- "Kevin P. Lawton" <[EMAIL PROTECTED]>: Mon Jun  4 17:03:44 EDT 2001
    Changes to host-linux.c, thanks to suggestions from Jeff Garzik.
      Moved plex86 proc entry to /proc/driver, where it should be.
      Moved assignment of file_operations to declaration statement
        and used field labels (GCC specific).
      Elminated use of MOD_{DEC,INC}_USE_COUNT for kernel 2.4, and set
        file_operations::owner to THIS_MODULE instead.  This eliminates
        a race between the time dev->release is called and module
        unload is initiated on another CPU.
      Used {>>,<<} instead of {/,*} where possible for page size oriented
        calculations, in case the compiler doesn't optimize this for us.
    Manage a set of virtualized descriptors in the monitor GDT, one for
      each guest descriptor, and use those directly for native memory
      accesses in the emulation, rather than always loading a new
      GDT entry for each access.  Things can be optimized further.
    TODO next:
      Fix error on first invocation of plex86.
      Move some critical IO device emulation to VM monitor space for
        performance.  Mostly, the PIT/PIC and the hardware component
        of the VGA emulation.  JFYI, here's some instrumentation data
        I gathered from a Win95 boot in plex86.  I quote the number of
        VM to user space requests necessary.  The MemMapIOW is due to
        writes to the VGA memory (latched planar mode sucks).  TimeElapsed
        is mostly due to time delivery events to the PIT.  IOOut in
        large part due to PIC EOI and etc.  If I move PIT/PIC/VGA
        into the VM, these will disappear.  These redirects are expensive,
        so I expect to see performance increase nicely without them!
        The GUI component of the VGA emulation will stay in user space,
        of course.

          872068  MemMapIOWriteRequest
          800406  TimeElapsed
          324176  IOOutRequest
          283248  MemMapIOReadRequest
          153986  IOInRequest
           10449  IOInBatchRequest
            4029  IACRequest
              78  PrintBuf

-Kevin

-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Kevin Lawton                        [EMAIL PROTECTED]
MandrakeSoft, Inc.                  Plex86 developer
http://www.linux-mandrake.com/      http://www.plex86.org/

Reply via email to