From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1K1q4I-0001N2-LI for qemu-devel@nongnu.org; Thu, 29 May 2008 17:53:54 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1K1q4H-0001M5-2g for qemu-devel@nongnu.org; Thu, 29 May 2008 17:53:54 -0400 Received: from [199.232.76.173] (port=48457 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1K1q4G-0001Lo-Op for qemu-devel@nongnu.org; Thu, 29 May 2008 17:53:52 -0400 Received: from relay3-v.mail.gandi.net ([217.70.178.77]:51291) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1K1q4G-00039N-97 for qemu-devel@nongnu.org; Thu, 29 May 2008 17:53:52 -0400 Received: from localhost (mfilter1-v.gandi.net [217.70.178.35]) by relay3-v.mail.gandi.net (Postfix) with ESMTP id 8533BBA16 for ; Thu, 29 May 2008 23:53:51 +0200 (CEST) Received: from relay3-v.mail.gandi.net ([217.70.178.77]) by localhost (mfilter1-v.gandi.net [217.70.178.35]) (amavisd-new, port 10024) with ESMTP id f2exxMbMnUH4 for ; Thu, 29 May 2008 23:53:50 +0200 (CEST) Received: from [84.102.211.115] (115.211.102-84.rev.gaoland.net [84.102.211.115]) by relay3-v.mail.gandi.net (Postfix) with ESMTP id 9D288BA14 for ; Thu, 29 May 2008 23:53:35 +0200 (CEST) Message-ID: <483F25A2.1090108@bellard.org> Date: Thu, 29 May 2008 23:52:34 +0200 From: Fabrice Bellard MIME-Version: 1.0 Subject: Re: [Qemu-devel] Re: KQEMU code organization References: <483C3D55.2000508@siemens.com> <483C8705.307@bellard.org> <483D81FA.5070202@siemens.com> <483D8A2E.5070907@bellard.org> <483D8E9A.40509@siemens.com> <483EA1AD.1010901@bellard.org> <20080529161322.GB21610@shareable.org> <483ED935.2060802@codemonkey.ws> In-Reply-To: <483ED935.2060802@codemonkey.ws> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit 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 Anthony Liguori wrote: > [...] > FWIW, the l1_phys_map table is a current hurdle in getting performance. > When we use proper accessors to access the virtio_ring, we end up taking > a significant performance hit (around 20% on iperf). I have some simple > patches that implement a page_desc cache that cache the RAM regions in a > linear array. That helps get most of it back. > > I'd really like to remove the l1_phys_map entirely and replace it with a > sorted list of regions. I think this would have an overall performance > improvement since its much more cache friendly. One thing keeping this > from happening is the fact that the data structure is passed up to the > kernel for kqemu. Eliminating that dependency would be a very good thing! If the l1_phys_map is a performance bottleneck it means that the internals of QEMU are not properly used. In QEMU/kqemu, it is not accessed to do I/Os : a cache is used thru tlb_table[]. I don't see why KVM cannot use a similar system. Fabrice.