From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:52962) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RDZ4i-0006OY-UO for qemu-devel@nongnu.org; Tue, 11 Oct 2011 05:56:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RDZ4i-0006tL-2k for qemu-devel@nongnu.org; Tue, 11 Oct 2011 05:56:40 -0400 Received: from mx1.redhat.com ([209.132.183.28]:56985) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RDZ4h-0006tG-Qf for qemu-devel@nongnu.org; Tue, 11 Oct 2011 05:56:40 -0400 Date: Tue, 11 Oct 2011 11:56:36 +0200 From: Gleb Natapov Message-ID: <20111011095636.GV30105@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> <050FFBD4-BF45-4425-865B-24E7C228B592@suse.de> <4E94111C.403@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4E94111C.403@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:49:16AM +0200, Avi Kivity wrote: > >Whatever we do, the interface will never be as fast as DMA. We will always have to do sanity / permission checks for every IO operation, can batch up only so many IO requests and in QEMU again have to call our callbacks in a loop. > > We can batch per page, which makes the overhead negligible. > Current code batch userspace exit per 1024 bytes IIRC and changing it to page didn't show significant improvement (also IIRC). But after io data is copied into the kernel emulator process it byte by byte. Possible optimization, which I didn't tried, is to check that destination memory is not mmio and write back the whole buffer if it is the case. -- Gleb.