[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] CONFIG_SCRUB_DEBUG=y + arm64 + livepatch = Xen BUG at page_alloc.c:738



Hi,

On 15/09/2017 20:50, Konrad Rzeszutek Wilk wrote:
.snip..
(XEN) Loading dom0 DTB to 0x0000000017e00000-0x0000000017e08265
(XEN) init_domheap_pages: 0xb87b1->0xb87bc
(XEN) init_heap_pages: 0xb87b1 -> 0xb87bc
(XEN) init_domheap_pages: 0xb88f1->0xb98ae
(XEN) init_heap_pages: 0xb88f1 -> 0xb98ae    <- so the memory is from here

(XEN) Scrubbing Free RAM on 1 nodes using 8 CPUs
(XEN) Initial low memory virq threshold set at 0x4000 pages.
(XEN) Scrubbing Free RAM on 1 nodes using 8 CPUs

I expanded this a bit to include:

(XEN) Initial low memory virq threshold set at 0x4000 pages.
(XEN) NODE0 start=0x0 pages=579306, max_page=0xc0000
(XEN) NODE0:  #0  #1  #2  #3  #4  #5  #6  #7  (total=8)
(XEN) NODE0 start=0x0, per_cpu=72413, rem=2, end=0x8d6ea
                                                 ^^^^^^^^  that is the end of 
memory, but
0xb98ae > 0x8d6ae.

end = min(node_start_pfn(i) + node_spanned_pages(i), max_page);
          0                   0x8D6EA                0xc0000


Oh:

/* XXX: implement NUMA support */
#define node_spanned_pages(nid) (total_pages)

If I understand correctly, this would be wrong here because the memory could be in multiple banks.

So, I think, what we would want to return here is bank[n]->end - bank[0]->start where n is the last bank.

Cheers,

--
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.