From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bill Burns Subject: [PATCH] Allow Hypervisor build with more than 64 CPUs Date: Fri, 15 Aug 2008 15:26:27 -0400 Message-ID: <48A5D863.6000000@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Return-path: 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 List-Id: xen-devel@lists.xenproject.org Trying to build the Xen hypervisor with max_phys_cpus=128 for x86_64 fails. (Note that this was on a 3.1 base, but unstable appears to have the same issue). There is a build assertion due to the size of the page_info structure and the shadow_page_info structures get out of sync due to the presence of cpumask_t in the page info structure (which grows with more than 64 CPUs). The proposed fix is to tack on the following to the end of shadow_page_info structure. Kudo's to Eduardo Habkost for the workaround. Signed-off-by: Bill Burns --- xen/arch/x86/mm/shadow/private.h.orig 2007-12-06 12:48:38.000000000 -0500 +++ xen/arch/x86/mm/shadow/private.h 2008-08-12 12:52:49.000000000 -0400 @@ -243,6 +243,12 @@ struct shadow_page_info /* For non-pinnable shadows, a higher entry that points at us */ paddr_t up; }; +#if NR_CPUS > 64 + /* Need to add some padding to match struct page_info size, + * if cpumask_t is larger than a long + */ + u8 padding[sizeof(cpumask_t)-sizeof(long)]; +#endif };