|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] arm: Boot allocator fails with multi node memory
Hi,
With ACPI numa support, I came across this panic from init_node_heap() when
initializing for node1 which is called from end_boot_allocator().
(XEN) Walking Hypervisor VA 0x847ffffffffe on CPU0 via TTBR 0x00000000ffcf8000
(XEN) 0TH[0x108] = 0x0000000000000000
(XEN) PAR: 0000000000000809: Translation fault stage 1 (level invalid)
(XEN)
(XEN) ****************************************
(XEN) Panic on CPU 0:
(XEN) Error during Hypervisor-to-physical address translation
(XEN) ****************************************
After looking at closely, I see this translation fault is coming from
below code.
When there is call (virt_to_mfn(eva - 1) where eva is DIRECTMAP_VIRT_END.
This virt_to_mfn(eva-1) is not called for first node initialization.
In case of multinode it fails when init_node_heap() is called for
second node.
I observed that virt_to_mfn(eva-1) always fails if we call from any part of the
code, meaning dump_hyp_walk(eva) always prints as below, which indicates
this VA is not mapped.
Question: Why this address is not mapped?. If mapped where this va is mapped?.
(XEN) Walking Hypervisor VA 0x847fffffffff on CPU0 via TTBR 0x00000000ffcf8000
(XEN) 0TH[0x108] = 0x0000000000000000
static unsigned long init_node_heap(int node, unsigned long mfn,
unsigned long nr, bool_t *use_tail, int d)
{
#ifdef DIRECTMAP_VIRT_END
unsigned long eva = min(DIRECTMAP_VIRT_END, HYPERVISOR_VIRT_END);
#endif
....
else if ( nr >= needed &&
(mfn + needed) <= (virt_to_mfn(eva - 1) + 1) && // <===
FAILS here
(!xenheap_bits ||
!((mfn + needed - 1) >> (xenheap_bits - PAGE_SHIFT))) )
{
_heap[node] = mfn_to_virt(mfn);
avail[node] = mfn_to_virt(mfn + needed - 1) +
PAGE_SIZE - sizeof(**avail) * NR_ZONES;
*use_tail = 0;
}
...
}
Regards
Vijay
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |