From mboxrd@z Thu Jan 1 00:00:00 1970 From: Glauber de Oliveira Costa Subject: [PATCH] Make ballooning work with maxmem > mem Date: Wed, 8 Nov 2006 14:24:45 -0200 Message-ID: <20061108162445.GA24503@redhat.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="xHFwDpU9dbj6ez1V" Return-path: Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org --xHFwDpU9dbj6ez1V Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Trying to start a guest with maxmem > mem and then balloon up to a value greater than mem is currently failing. This patch fixes it. -- Glauber de Oliveira Costa Red Hat Inc. "Free as in Freedom" --xHFwDpU9dbj6ez1V Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename="xen-balloon.patch" # HG changeset patch # User gcosta@redhat.com # Date 1163006677 18000 # Node ID 8347687597a4da4ed323e58e640da89b25bb2c49 # Parent 20204db0891b0b7c10959822e3283656c3600500 [LINUX] Extend physical mapping to maxmem instead of mem As currently physical mapping only reaches the initial reservation, we're unable to balloon up to more than mem (even when maxmem > mem) in any situation. Signed-off-by: Glauber de Oliveira Costa diff -r 20204db0891b -r 8347687597a4 linux-2.6-xen-sparse/arch/x86_64/kernel/e820-xen.c --- a/linux-2.6-xen-sparse/arch/x86_64/kernel/e820-xen.c Thu Nov 02 18:52:04 2006 +0000 +++ b/linux-2.6-xen-sparse/arch/x86_64/kernel/e820-xen.c Wed Nov 08 12:24:37 2006 -0500 @@ -583,6 +583,7 @@ void __init setup_memory_region(void) * the boot process we know we have plenty slack space. */ struct e820entry map[E820MAX]; + unsigned long arg = DOMID_SELF; memmap.nr_entries = E820MAX; set_xen_guest_handle(memmap.buffer, map); @@ -591,7 +592,11 @@ void __init setup_memory_region(void) if ( rc == -ENOSYS ) { memmap.nr_entries = 1; map[0].addr = 0ULL; - map[0].size = xen_start_info->nr_pages << PAGE_SHIFT; + rc = HYPERVISOR_memory_op(XENMEM_maximum_reservation, &arg); + if ( rc < 0 ) + map[0].size = xen_start_info->nr_pages << PAGE_SHIFT; + else + map[0].size = rc << PAGE_SHIFT; /* 8MB slack (to balance backend allocations). */ map[0].size += 8 << 20; map[0].type = E820_RAM; --xHFwDpU9dbj6ez1V Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --xHFwDpU9dbj6ez1V--