|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Xen 4.6.0-rc1 build with lock_profile=y crash_debug=y, frame_pointer=y and domain.c:241: error: negative width in bit-field â<anonymous>â
>>> On 25.08.15 at 21:54, <konrad.wilk@xxxxxxxxxx> wrote:
> On Tue, Aug 25, 2015 at 03:52:15PM -0400, Konrad Rzeszutek Wilk wrote:
>> On Tue, Aug 25, 2015 at 06:41:06PM +0100, Andrew Cooper wrote:
>> > On 25/08/15 18:09, Konrad Rzeszutek Wilk wrote:
>> > > --- a/xen/arch/x86/domain.c
>> > > +++ b/xen/arch/x86/domain.c
>> > > @@ -238,7 +238,9 @@ struct domain *alloc_domain_struct(void)
>> > > if ( unlikely(!bits) )
>> > > bits = _domain_struct_bits();
>> > >
>> > > +#ifndef LOCK_PROFILE
>> > > BUILD_BUG_ON(sizeof(*d) > PAGE_SIZE);
>> > > +#endif
>> > > d = alloc_xenheap_pages(0, MEMF_bits(bits));
>> > > if ( d != NULL )
>> > > clear_page(d);
>> > >
>> > > (not compile tested nor runtime tested)
>> >
>> > Either remove it locally for debugging, or use something like
>
> I forgot to mention that by removing it locally Xen ends up halting at:
>
> (XEN) Detected 3292.657 MHz processor.
Sure - as Andrew said on irc, neither simply removing it nor replacing
it by vmalloc() can actually work. At the very least you'd want the
above to become
#ifndef LOCK_PROFILE
BUILD_BUG_ON(sizeof(*d) > PAGE_SIZE);
d = alloc_xenheap_pages(0, MEMF_bits(bits));
#else
BUILD_BUG_ON(sizeof(*d) > 2 * PAGE_SIZE);
d = alloc_xenheap_pages(1, MEMF_bits(bits));
#endif
But preferably we'd find ways to shrink struct domain back to a size
where all build options work.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |