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

Re: [Xen-devel] arm: Boot allocator fails with multi node memory



>>> On 07.01.17 at 07:05, <vijay.kilari@xxxxxxxxx> wrote:
> Question: Why this address is not mapped?. If mapped where this va is 
> mapped?.

Well, I think this is the wrong question to ask. Why would it be mapped
if there's no memory there?

> (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

The assumption here is that a virtual address inside the direct map
can always be translated, and from your report I'm gaining the
understanding that this is simply not true on ARM (but the code
here pre-dates ARM iirc). If that assumption doesn't hold (and
cannot be made so), apart from adjusting the code here there may
need to be a full audit of common code to see whether there are
any other such uses.

Jan


_______________________________________________
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®.