[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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |