From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1ELFor-0006QI-9u for qemu-devel@nongnu.org; Fri, 30 Sep 2005 04:00:37 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1ELFon-0006PS-QW for qemu-devel@nongnu.org; Fri, 30 Sep 2005 04:00:36 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1ELFir-00051E-0Y for qemu-devel@nongnu.org; Fri, 30 Sep 2005 03:54:27 -0400 Received: from [206.46.252.48] (helo=vms048pub.verizon.net) by monty-python.gnu.org with esmtp (Exim 4.34) id 1ELFiT-0001w3-Gw for qemu-devel@nongnu.org; Fri, 30 Sep 2005 03:54:02 -0400 Received: from [192.168.0.102] ([151.203.245.110]) by vms048.mailsrvcs.net (Sun Java System Messaging Server 6.2 HotFix 0.04 (built Dec 24 2004)) with ESMTPA id <0INM00L7QDXMOX21@vms048.mailsrvcs.net> for qemu-devel@nongnu.org; Fri, 30 Sep 2005 02:53:47 -0500 (CDT) Date: Fri, 30 Sep 2005 03:53:08 -0400 From: John Coiner Message-id: <433CEEE4.806@stanfordalumni.org> MIME-version: 1.0 Content-type: text/plain; charset=us-ascii; format=flowed Content-transfer-encoding: 7bit Subject: [Qemu-devel] [patch] Concurrent IO Support Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Folks, Here's a patch which allows guest CPU cycles to run concurrent with IO syscalls: http://people.brandeis.edu/~jcoiner/qemu_idedma/qemu_dma_patch.html It's actually two patches -- a patch which enables DMA support (the same one posted here a few days ago) and a second patch which applies on top of the first. The second patch is the big one, because there was a little bit of refactoring and a few chunks of new code needed to get concurrent IO going. If you try this, please let me know what your experience is. This patch makes the IDE code a little more gnarly, so it's only worth applying if people notice the speed-up. Under both CPU load and IO load, the patch improves the performance of each, at least on my system. I haven't seen it make anything slower yet. Troy and Henrik: thanks for suggesting AIO. That is probably the way to go. This patch uses pthreads, because I was more comfortable with them. The Linux Posix AIO stuff looked a little young. In the future, though, it should be pretty easy to convert this implementation to AIO. Regards, --John