From patchwork Tue Jun 8 19:15:20 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Williamson X-Patchwork-Id: 55017 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 34CD1B7D61 for ; Wed, 9 Jun 2010 05:20:34 +1000 (EST) Received: from localhost ([127.0.0.1]:51616 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OM4Lf-0001AW-1q for incoming@patchwork.ozlabs.org; Tue, 08 Jun 2010 15:20:31 -0400 Received: from [140.186.70.92] (port=55012 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OM4Gr-0006VL-L7 for qemu-devel@nongnu.org; Tue, 08 Jun 2010 15:15:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OM4Gp-0005Mc-9a for qemu-devel@nongnu.org; Tue, 08 Jun 2010 15:15:33 -0400 Received: from qmta08.westchester.pa.mail.comcast.net ([76.96.62.80]:44211) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OM4Gp-0005MJ-5x for qemu-devel@nongnu.org; Tue, 08 Jun 2010 15:15:31 -0400 Received: from omta09.westchester.pa.mail.comcast.net ([76.96.62.20]) by qmta08.westchester.pa.mail.comcast.net with comcast id TP2Y1e0040SCNGk58XFXMs; Tue, 08 Jun 2010 19:15:31 +0000 Received: from localhost.localdomain ([75.71.122.219]) by omta09.westchester.pa.mail.comcast.net with comcast id TXFW1e00E4k7Kz73VXFWst; Tue, 08 Jun 2010 19:15:31 +0000 From: Alex Williamson To: qemu-devel@nongnu.org, anthony@codemonkey.ws Date: Tue, 08 Jun 2010 13:15:20 -0600 Message-ID: <20100608191520.4451.1193.stgit@localhost.localdomain> In-Reply-To: <20100608191447.4451.47795.stgit@localhost.localdomain> References: <20100608191447.4451.47795.stgit@localhost.localdomain> User-Agent: StGIT/0.14.3 MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. Cc: chrisw@redhat.com, alex.williamson@redhat.com, kvm@vger.kernel.org, quintela@redhat.com Subject: [Qemu-devel] [RFC PATCH 1/6] qemu_ram_alloc: Remove duplicate code X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org No reason not to call qemu_ram_map() once we have the allocation and remove duplicate code. Signed-off-by: Alex Williamson Acked-by: Chris Wright --- exec.c | 37 ++++++++++--------------------------- 1 files changed, 10 insertions(+), 27 deletions(-) diff --git a/exec.c b/exec.c index 7b0e1c5..c60f9e7 100644 --- a/exec.c +++ b/exec.c @@ -2816,18 +2816,17 @@ ram_addr_t qemu_ram_map(ram_addr_t size, void *host) ram_addr_t qemu_ram_alloc(ram_addr_t size) { - RAMBlock *new_block; + void *host; size = TARGET_PAGE_ALIGN(size); - new_block = qemu_malloc(sizeof(*new_block)); if (mem_path) { #if defined (__linux__) && !defined(TARGET_S390X) - new_block->host = file_ram_alloc(size, mem_path); - if (!new_block->host) { - new_block->host = qemu_vmalloc(size); + host = file_ram_alloc(size, mem_path); + if (!host) { + host = qemu_vmalloc(size); #ifdef MADV_MERGEABLE - madvise(new_block->host, size, MADV_MERGEABLE); + madvise(host, size, MADV_MERGEABLE); #endif } #else @@ -2837,33 +2836,17 @@ ram_addr_t qemu_ram_alloc(ram_addr_t size) } else { #if defined(TARGET_S390X) && defined(CONFIG_KVM) /* XXX S390 KVM requires the topmost vma of the RAM to be < 256GB */ - new_block->host = mmap((void*)0x1000000, size, - PROT_EXEC|PROT_READ|PROT_WRITE, - MAP_SHARED | MAP_ANONYMOUS, -1, 0); + host = mmap((void*)0x1000000, size, PROT_EXEC|PROT_READ|PROT_WRITE, + MAP_SHARED | MAP_ANONYMOUS, -1, 0); #else - new_block->host = qemu_vmalloc(size); + host = qemu_vmalloc(size); #endif #ifdef MADV_MERGEABLE - madvise(new_block->host, size, MADV_MERGEABLE); + madvise(host, size, MADV_MERGEABLE); #endif } - new_block->offset = last_ram_offset; - new_block->length = size; - - new_block->next = ram_blocks; - ram_blocks = new_block; - - phys_ram_dirty = qemu_realloc(phys_ram_dirty, - (last_ram_offset + size) >> TARGET_PAGE_BITS); - memset(phys_ram_dirty + (last_ram_offset >> TARGET_PAGE_BITS), - 0xff, size >> TARGET_PAGE_BITS); - - last_ram_offset += size; - if (kvm_enabled()) - kvm_setup_guest_memory(new_block->host, size); - - return new_block->offset; + return qemu_ram_map(size, host); } void qemu_ram_free(ram_addr_t addr)