From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:51815) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RDYzC-0004Y1-2H for qemu-devel@nongnu.org; Tue, 11 Oct 2011 05:50:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RDYz7-0005Zr-0A for qemu-devel@nongnu.org; Tue, 11 Oct 2011 05:50:58 -0400 Received: from mx1.redhat.com ([209.132.183.28]:2560) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RDYz6-0005Zl-PE for qemu-devel@nongnu.org; Tue, 11 Oct 2011 05:50:52 -0400 Date: Tue, 11 Oct 2011 11:50:48 +0200 From: Gleb Natapov Message-ID: <20111011095048.GU30105@redhat.com> References: <20111010170803.GV9408@redhat.com> <4E933F2D.7090703@codemonkey.ws> <20111011082315.GI14627@redhat.com> <4E940919.7010901@redhat.com> <5C80782F-C30A-4F35-93FD-0397A1040AFF@suse.de> <4E940BB6.2000400@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4E940BB6.2000400@redhat.com> Subject: Re: [Qemu-devel] Slow kernel/initrd loading via fw_cfg; Was Re: Hack integrating SeaBios / LinuxBoot option rom with QEMU trace backends List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Avi Kivity Cc: "Richard W.M. Jones" , Alexander Graf , qemu-devel On Tue, Oct 11, 2011 at 11:26:14AM +0200, Avi Kivity wrote: > rep/ins is exactly like dma+wait for this use case: provide an > address, get a memory image in return. There's no need to add > another interface, we should just optimize the existing one. > rep/ins cannot be optimized to be as efficient as dma and remain to be correct at the same time. There are various corner cases that simplified "fast" implementation will likely miss. Like DF flag settings, delaying interrupts for too much, doing ins/outs to/from iomem (this is may be not a big problem unless userspace finds a way to trigger it). There are ways that current implementation can be optimized still though. But loading MBs of data through fw_cfg interface is just abusing it. You wouldn't use pio on real HW to move megabytes of data and expect good performance. -- Gleb.