[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [patch] kexec is not highmem-aware
On Mon, 2007-06-18 at 15:29 +0100, Stephen C. Tweedie wrote: > The problem is in kimage_alloc_pages(), which tries to return contiguous > pages by calling > > xen_create_contiguous_region((unsigned long)page_address(pages), > order, address_bits) > > on the pages allocated. Unfortunately, page_address() returns NULL for > highmem pages. So as soon as we try this on a page in the highmem heap, > we get the above OOPS. The intention of this call is actually to ensure that the MFNs are below the limit imposed by the limit argument rather than to make a contiguous region so it is still required for order 0 allocations. Without this guarantee trying to load a crash kernel results in an OOM due to the check of mfn vs KEXEC_CONTROL_MEMORY_LIMIT in kimage_alloc_normal_control_pages(). There is similar check vs KEXEC_SOURCE_MEMORY_LIMIT in kimage_alloc_page(). It's possible (even likely with large hosts) for a domain to have no pages which satisfy these constraints so without the xen_create_contiguous_region it sucks up all memory and OOMs. This was introduced with xen-unstable.hg 14372:a1daade92952 I guess xen_create_contiguous_region is happy to operate on a temporarily kmapped page which are immediately unmapped since we only care that the MFN has been moved below the limit. Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |