This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


[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?)


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