From patchwork Fri Jun 11 14:16:00 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Williamson X-Patchwork-Id: 55329 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 94C001007D2 for ; Sat, 12 Jun 2010 00:17:56 +1000 (EST) Received: from localhost ([127.0.0.1]:35006 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1ON53A-0005ZK-VU for incoming@patchwork.ozlabs.org; Fri, 11 Jun 2010 10:17:37 -0400 Received: from [140.186.70.92] (port=41930 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1ON51p-0005X7-AS for qemu-devel@nongnu.org; Fri, 11 Jun 2010 10:16:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1ON51m-0003ad-PG for qemu-devel@nongnu.org; Fri, 11 Jun 2010 10:16:12 -0400 Received: from qmta08.westchester.pa.mail.comcast.net ([76.96.62.80]:50513) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1ON51m-0003aO-MZ for qemu-devel@nongnu.org; Fri, 11 Jun 2010 10:16:10 -0400 Received: from omta04.westchester.pa.mail.comcast.net ([76.96.62.35]) by qmta08.westchester.pa.mail.comcast.net with comcast id UaJD1e0050ldTLk58eGBCs; Fri, 11 Jun 2010 14:16:11 +0000 Received: from localhost.localdomain ([75.71.122.219]) by omta04.westchester.pa.mail.comcast.net with comcast id UeGA1e0044k7Kz73QeGAZ3; Fri, 11 Jun 2010 14:16:11 +0000 From: Alex Williamson To: qemu-devel@nongnu.org, anthony@codemonkey.ws Date: Fri, 11 Jun 2010 08:16:00 -0600 Message-ID: <20100611141600.19378.13711.stgit@localhost.localdomain> In-Reply-To: <20100611141500.19378.43942.stgit@localhost.localdomain> References: <20100611141500.19378.43942.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 Subject: [Qemu-devel] [PATCH 1/2] 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)