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

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

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.

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 ?


Xen-ia64-devel mailing list



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