From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Single memory slot Date: Thu, 15 Oct 2009 16:33:11 +0900 Message-ID: <4AD6D037.3060301@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: kvm-devel To: Marcelo Tosatti Return-path: Received: from mx1.redhat.com ([209.132.183.28]:51555 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757636AbZJOHdk (ORCPT ); Thu, 15 Oct 2009 03:33:40 -0400 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id n9F7XEI2000553 for ; Thu, 15 Oct 2009 03:33:14 -0400 Sender: kvm-owner@vger.kernel.org List-ID: One way to improve the gfn_to_pfn() memslot search is to register just one slot. This can only work on 64-bit, since even the smallest guests need 4GB of physical address space. Apart from speeding up gfn_to_page(), it would also speed up mmio which must iterate over all slots, so a lookup cache cannot help. This would require quite a bunch of changes: - modify gfn_to_pfn() to fail gracefully if the page is in the slot but unmapped (hole handling) - modify qemu to reserve the guest physical address space - modify qemu memory allocation to use MAP_FIXED to allocate memory - some hack for the vga aliases (mmap an fd multiple times?) - some hack for the vmx-specific pages (e.g. APIC-access page) Not sure it's worthwhile, but something to keep in mind if a simple cache or sort by size is insufficient due to mmio. -- I have a truly marvellous patch that fixes the bug which this signature is too narrow to contain.