From mboxrd@z Thu Jan 1 00:00:00 1970 From: Glauber de Oliveira Costa Subject: [PATCH] Make ballooning work with maxmem > mem (i386 version) Date: Fri, 10 Nov 2006 11:24:07 -0200 Message-ID: <20061110132407.GC32562@redhat.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="1UWUbFP1cBYEclgG" 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 --1UWUbFP1cBYEclgG 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 have been already discovered (patch sent some days ago) for x86_64. i386 suffers from the same problem. This patch fixes it. -- Glauber de Oliveira Costa Red Hat Inc. "Free as in Freedom" --1UWUbFP1cBYEclgG Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename="xen-balloon-i386.patch" # HG changeset patch # User Glauber de Oliveira Costa # Node ID 2e2e6a3f9b2d0ad21c666dfbdc075f918e0bc7be # Parent 20204db0891b0b7c10959822e3283656c3600500 [LINUX] Extend physical mapping to maxmem instead of mem - i386 version 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. This have already been found out to be broken and fixed in x86_64 Signed-off-by: Glauber de Oliveira Costa diff -r 20204db0891b -r 2e2e6a3f9b2d linux-2.6-xen-sparse/include/asm-i386/mach-xen/setup_arch_post.h --- a/linux-2.6-xen-sparse/include/asm-i386/mach-xen/setup_arch_post.h Thu Nov 2 18:52:04 2006 +++ b/linux-2.6-xen-sparse/include/asm-i386/mach-xen/setup_arch_post.h Fri Nov 10 13:14:14 2006 @@ -13,6 +13,7 @@ { int rc; struct xen_memory_map memmap; + unsigned long arg = DOMID_SELF; /* * This is rather large for a stack variable but this early in * the boot process we know we have plenty slack space. @@ -26,6 +27,11 @@ if ( rc == -ENOSYS ) { memmap.nr_entries = 1; map[0].addr = 0ULL; + rc = HYPERVISOR_memory_op(XENMEM_maximum_reservation, &arg); + if ( rc < 0 ) + map[0].size = PFN_PHYS(xen_start_info->nr_pages); + else + map[0].size = PFN_PHYS(rc); map[0].size = PFN_PHYS(xen_start_info->nr_pages); /* 8MB slack (to balance backend allocations). */ map[0].size += 8ULL << 20; --1UWUbFP1cBYEclgG 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 --1UWUbFP1cBYEclgG--