[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] xen kernel: build failure
>>> On 23.11.11 at 17:31, Jean Guyader <jean.guyader@xxxxxxxxx> wrote: > On 25 October 2011 13:35, Keir Fraser <keir.xen@xxxxxxxxx> wrote: >> On 25/10/2011 12:08, "Christoph Egger" <Christoph.Egger@xxxxxxx> wrote: >> >>> >>> Hi, >>> >>> Compiling the xen kernel fails with: >>> >>> xen/arch/x86/domain.c: In function 'alloc_domain_struct' >>> xen/arch/x86/domain.c:191: error: negative width in bit-field '<anonymous>' >> >> Problem is that struct domain has grown bigger than a page for some reason, >> in your build environment. >> >> I can't reproduce this. >> >>> Removing the line >>> >>> BUILD_BUG_ON(sizeof(*d) > PAGE_SIZE); >>> >>> makes xen kernel compile again. >> >> But not actually work properly. We only allocate a single page for the >> domain struct. If the struct is bigger than a page, you'll get memory >> corruption at run time. >> > > Is there a reason for that? Of course there is: Post-boot there shouldn't be any allocations of order greater than zero. This is a generally advisable thing, given that Xen can't reclaim memory arbitrarily from domains, and in particular also necessary for tmem. > What would be the recommended to add something > into the struct domain now if we can't make it bigger than a page. Put a pointer to your data (or larger parts that are already there) instead of the data itself into struct domain, and allocate it separately. (You may have seen a patch from Olaf Hering late yesterday or earlier today that moved the mem_event pieces out of there for this very reason.) _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |