From patchwork Wed Oct 21 19:16:54 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Graf X-Patchwork-Id: 36617 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 7ECC6B7B75 for ; Thu, 22 Oct 2009 06:21:18 +1100 (EST) Received: from localhost ([127.0.0.1]:52400 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1N0gkF-0004GQ-O3 for incoming@patchwork.ozlabs.org; Wed, 21 Oct 2009 15:21:15 -0400 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1N0ggI-0000Rj-0r for qemu-devel@nongnu.org; Wed, 21 Oct 2009 15:17:10 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1N0ggC-0000Ip-8k for qemu-devel@nongnu.org; Wed, 21 Oct 2009 15:17:08 -0400 Received: from [199.232.76.173] (port=46896 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1N0ggB-0000IA-Ly for qemu-devel@nongnu.org; Wed, 21 Oct 2009 15:17:03 -0400 Received: from cantor2.suse.de ([195.135.220.15]:34008 helo=mx2.suse.de) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1N0ggA-0007VH-VM for qemu-devel@nongnu.org; Wed, 21 Oct 2009 15:17:03 -0400 Received: from relay1.suse.de (mail2.suse.de [195.135.221.8]) by mx2.suse.de (Postfix) with ESMTP id F309386A2E; Wed, 21 Oct 2009 21:17:01 +0200 (CEST) From: Alexander Graf To: qemu-devel Date: Wed, 21 Oct 2009 21:16:54 +0200 Message-Id: <1256152621-18863-3-git-send-email-agraf@suse.de> X-Mailer: git-send-email 1.6.0.2 In-Reply-To: <1256152621-18863-2-git-send-email-agraf@suse.de> References: <1256152621-18863-1-git-send-email-agraf@suse.de> <1256152621-18863-2-git-send-email-agraf@suse.de> X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.4-2.6 Cc: Carsten Otte Subject: [Qemu-devel] [PATCH 2/9] Allocate physical memory in low virtual address space 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 KVM on S390x requires the virtual address space of the guest's RAM to be within the first 256GB. The general direction I'd like to see KVM on S390 move is that this requirement is losened, but for now that's what we're stuck with. So let's just hack up qemu_ram_alloc until KVM behaves nicely :-). Signed-off-by: Alexander Graf --- exec.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/exec.c b/exec.c index 076d26b..59150d0 100644 --- a/exec.c +++ b/exec.c @@ -2411,7 +2411,13 @@ ram_addr_t qemu_ram_alloc(ram_addr_t size) size = TARGET_PAGE_ALIGN(size); new_block = qemu_malloc(sizeof(*new_block)); +#if defined(TARGET_S390) && defined(CONFIG_KVM) + /* XXX S390 KVM requires the topmost vma of the RAM to be < 256GB */ + new_block->host = mmap(0x1000000, size, PROT_EXEC|PROT_READ|PROT_WRITE, + MAP_SHARED | MAP_ANONYMOUS, -1, 0); +#else new_block->host = qemu_vmalloc(size); +#endif #ifdef MADV_MERGEABLE madvise(new_block->host, size, MADV_MERGEABLE); #endif