From patchwork Thu Jun 13 07:02:17 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Markus Armbruster X-Patchwork-Id: 250989 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 507A62C0099 for ; Thu, 13 Jun 2013 17:03:28 +1000 (EST) Received: from localhost ([::1]:36403 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Un1Z7-0003ZN-Ln for incoming@patchwork.ozlabs.org; Thu, 13 Jun 2013 03:03:25 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52475) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Un1YB-0002y5-2G for qemu-devel@nongnu.org; Thu, 13 Jun 2013 03:02:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Un1Y8-00032w-D6 for qemu-devel@nongnu.org; Thu, 13 Jun 2013 03:02:26 -0400 Received: from oxygen.pond.sub.org ([2a01:4f8:121:10e4::3]:39475) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Un1Y8-00032b-5y for qemu-devel@nongnu.org; Thu, 13 Jun 2013 03:02:24 -0400 Received: from blackfin.pond.sub.org (p5B32AA2B.dip0.t-ipconnect.de [91.50.170.43]) by oxygen.pond.sub.org (Postfix) with ESMTPA id 11C4BA247C; Thu, 13 Jun 2013 09:02:22 +0200 (CEST) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id A8230200B9; Thu, 13 Jun 2013 09:02:19 +0200 (CEST) From: Markus Armbruster To: qemu-devel@nongnu.org Date: Thu, 13 Jun 2013 09:02:17 +0200 Message-Id: <1371106939-6968-7-git-send-email-armbru@redhat.com> X-Mailer: git-send-email 1.7.11.7 In-Reply-To: <1371106939-6968-1-git-send-email-armbru@redhat.com> References: <1371106939-6968-1-git-send-email-armbru@redhat.com> X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2a01:4f8:121:10e4::3 Cc: mtosatti@redhat.com, borntraeger@de.ibm.com, pbonzini@redhat.com, agraf@suse.de, stefano.stabellini@eu.citrix.com Subject: [Qemu-devel] [PATCH RFC 6/8] exec: Clean up unnecessary S390 ifdeffery X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Another issue missed in commit fdec991 is -mem-path: it needs to be rejected only for old S390 KVM, not for any S390. Not that I personally care, but the ifdeffery in qemu_ram_alloc_from_ptr() annoys me. Note that this doesn't actually make -mem-path work, as the kernel doesn't (yet?) support large pages in the host for KVM guests. Clean it up anyway. Thanks to Christian Borntraeger for pointing out the S390 kernel limitations. Signed-off-by: Markus Armbruster --- exec.c | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/exec.c b/exec.c index 8810d33..9f0355b 100644 --- a/exec.c +++ b/exec.c @@ -849,7 +849,7 @@ void qemu_mutex_unlock_ramlist(void) qemu_mutex_unlock(&ram_list.mutex); } -#if defined(__linux__) && !defined(TARGET_S390X) +#ifdef __linux__ #include @@ -952,6 +952,14 @@ static void *file_ram_alloc(RAMBlock *block, block->fd = fd; return area; } +#else +static void *file_ram_alloc(RAMBlock *block, + ram_addr_t memory, + const char *path) +{ + fprintf(stderr, "-mem-path not supported on this host\n"); + exit(1); +} #endif static ram_addr_t find_ram_offset(ram_addr_t size) @@ -1088,22 +1096,21 @@ ram_addr_t qemu_ram_alloc_from_ptr(ram_addr_t size, void *host, exit(1); } xen_ram_alloc(new_block->offset, size, mr); + } else if (kvm_enabled() && kvm_arch_ram_alloc) { + /* some s390/kvm configurations have special constraints */ + if (mem_path) { + fprintf(stderr, + "-mem-path not supported with this version of KVM\n"); + exit(1); + } + new_block->host = kvm_arch_ram_alloc(size); + memory_try_enable_merging(new_block->host, size); } else { if (mem_path) { -#if defined (__linux__) && !defined(TARGET_S390X) new_block->host = file_ram_alloc(new_block, size, mem_path); -#else - fprintf(stderr, "-mem-path option unsupported\n"); - exit(1); -#endif } if (!new_block->host) { - if (kvm_enabled() && kvm_arch_ram_alloc) { - /* some s390/kvm configurations have special constraints */ - new_block->host = kvm_arch_ram_alloc(size); - } else { - new_block->host = qemu_anon_ram_alloc(size); - } + new_block->host = qemu_anon_ram_alloc(size); memory_try_enable_merging(new_block->host, size); } }