[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-ia64-devel] Re: [PATCH][RFC][IA64] Accelerate IDE PIO on HVM/IA64



Hi, Tristan

Thanks for your comments.

* In any case, I have to allocate another page for IDE PIO buffer.
  Actually this patch works well on any size of buffer. The size is
  just trade-off with the performance. FYI, 2048 bytes seems to be
  enough for CDROM.

* The location where data is being written has already been enclosed
  with the memory barrier. Since shared memory is used for the
  communication between hypervisor and qemu-dm. So I think it's safe.

  Actually it isn't guest's MP safe but I think guest OS must take
  responsibility for it. (Who reads the I/O port simultaneously?)

Thanks,
Kouya

tgingold@xxxxxxx writes:
 > Quoting Kouya SHIMURA <kouya@xxxxxxxxxxxxxx>:
 > 
 > > This patch significantly accelerates IDE PIO on HVM/IA64:
 > > * reduces the installation time of Windows 2003 Server
 > >   from 10 hours(!) to 50min.
 > > * accelerates Windows CrashDumping speed from 40KB/sec
 > >   (It takes over three hours for 512MB guest) to 850KB/sec.
 > >
 > > All reason for above slowness is the overhead of IDE PIO.
 > > Of course Windows should use DMA mode but we can't handle it.
 > > (FYI. Once installed, Windows usually uses DMA mode)
 > >
 > > On the other hand, x86 arch is rescued from this issue since it has a
 > > CISC instruction and multiple PIO requests can be processed in qemu-dm
 > > at one transaction. So this patch gives no benefit for x86.
 > >
 > > There are some dirty hacks in this patch:
 > > * To begin with, is it permissive to delegate the part of process of
 > > qemu-dm to hypervisor?
 > > * Currently it uses remnant of buffered_iopage (for VGA).
 > >   Maybe I should prepare another page for IDE PIO.
 > > * May I use "#ifdef __ia64__" ?
 > > * and so on.
 > Hi,
 > 
 > clever idea!
 > 
 > Two remarks:
 > * you can't assume page size = 16KB.  Xen can be compiled with other page
 > sizes (and should work with other page sizes).  As an easy approach, you can
 > disable this optimization iff page size != 16KB (or use smaller buffers).
 > * To be written data are not flushed directly.  I suppose they are flushed
 > while status is checked.  Is it safe ?
 > 
 > Tristan.
 > 
 > _______________________________________________
 > Xen-devel mailing list
 > Xen-devel@xxxxxxxxxxxxxxxxxxx
 > http://lists.xensource.com/xen-devel


_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.