From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1K2NyO-0004qZ-A7 for qemu-devel@nongnu.org; Sat, 31 May 2008 06:06:04 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1K2NyN-0004pp-2e for qemu-devel@nongnu.org; Sat, 31 May 2008 06:06:03 -0400 Received: from [199.232.76.173] (port=38200 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1K2NyM-0004pm-V2 for qemu-devel@nongnu.org; Sat, 31 May 2008 06:06:03 -0400 Received: from bzq-179-150-194.static.bezeqint.net ([212.179.150.194]:35315 helo=il.qumranet.com) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1K2NyM-0006Oz-OL for qemu-devel@nongnu.org; Sat, 31 May 2008 06:06:02 -0400 Message-ID: <48412309.50809@qumranet.com> Date: Sat, 31 May 2008 13:06:01 +0300 From: Avi Kivity 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> <483F25A2.1090108@bellard.org> In-Reply-To: <483F25A2.1090108@bellard.org> Content-Type: text/plain; charset=windows-1255; format=flowed 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, Fabrice Bellard Fabrice Bellard wrote: > 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. > > In that case, replacing l1_phys_map by a region list is a good thing. l1_phys_map consumes a large amount of memory. -- Do not meddle in the internals of kernels, for they are subtle and quick to panic.