[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] dom/xen heap and boot allocator (WAS Re: [xen-unstable-smoke test] 141333: regressions - FAIL)
Hi, On 9/15/19 3:09 PM, osstest service owner wrote: flight 141333 xen-unstable-smoke real [real] http://logs.test-lab.xenproject.org/osstest/logs/141333/ Regressions :-( Tests which did not succeed and are blocking, including tests which could not be run: test-armhf-armhf-xl 7 xen-boot fail REGR. vs. 141253 Osstest does not provide the stack trace as the crash happen before the console is setup, but I managed to reproduce it locally: (XEN) Assertion 'is_xen_heap_mfn(maddr_to_mfn(ma))' failed at /home/julieng/works/xen/xen/include/asm/mm.h:250 (XEN) ----[ Xen-4.13-unstable arm32 debug=y Not tainted ]---- [...] (XEN) Xen call trace: (XEN) [<002992c0>] page_alloc.c#bootmem_region_add+0xf8/0x17c (PC) (XEN) [<002995ac>] init_boot_pages+0x8c/0x1a0 (LR) (XEN) [<002995ac>] init_boot_pages+0x8c/0x1a0 (XEN) [<002acc2c>] dt_unreserved_regions+0x268/0x284 (XEN) [<002ad8e0>] start_xen+0x5c8/0xe90 (XEN) [<00200098>] arm32/head.o#primary_switched+0x4/0x10This is happening because of commit 6e3e771203 "xen/arm: setup: Relocate the Device-Tree later on in the boot". Since this patch, none of xenheap memory is given to the boot allocator. The boot allocator is bootstrapping itself and re-use a page from the first added region. If this region is not a xenheap region, then it will crash when calling mfn_to_virt() or later on because the virtual address is not mapped in memory. The description of the boot allocator in page_alloc.c leads to think that only domheap memory may be given to the boot allocator. Furthermore, as the boot allocator may have domheap page, it means that calling mfn_to_virt(mfn_x(alloc_boot_pages(...)) may not work when CONFIG_SEPARATE_XENHEAP=y. It feels to me that imposing to give a xenheap page to the boot allocator is quite ugly. As the boot allocator will be used in most of the case, statically allocating bootmem_region_list maybe the best. Any thoughts? Regarding alloc_boot_pages(), I am a bit unsure how to proceed here. Maybe some documentation? Cheers, -- Julien Grall _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |