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: 105015 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter.kernel.org (8.14.3/8.14.3) with ESMTP id o58JLQZ7025972 for ; Tue, 8 Jun 2010 19:21:26 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755354Ab0FHTVY (ORCPT ); Tue, 8 Jun 2010 15:21:24 -0400 Received: from qmta15.westchester.pa.mail.comcast.net ([76.96.59.228]:45436 "EHLO qmta15.westchester.pa.mail.comcast.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754724Ab0FHTVY (ORCPT ); Tue, 8 Jun 2010 15:21:24 -0400 Received: from omta09.westchester.pa.mail.comcast.net ([76.96.62.20]) by qmta15.westchester.pa.mail.comcast.net with comcast id TQGp1e0020SCNGk5FXFX2g; 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 Subject: [RFC PATCH 1/6] qemu_ram_alloc: Remove duplicate code To: qemu-devel@nongnu.org, anthony@codemonkey.ws Cc: kvm@vger.kernel.org, quintela@redhat.com, chrisw@redhat.com, alex.williamson@redhat.com 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 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.3 (demeter.kernel.org [140.211.167.41]); Tue, 08 Jun 2010 19:21:26 +0000 (UTC) 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)