|
|
|
|
|
|
|
|
|
|
xen-devel
[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
|
|
|
|
|