[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v5] boot allocator: Use arch helper for virt_to_mfn on DIRECTMAP_VIRT region
Hi Vijay, On 04/06/2017 11:13 AM, vijay.kilari@xxxxxxxxx wrote: [...] On ARM64 this arch helper will return true, because currently all RAM is direct mapped in Xen. On ARM32, Only a limited amount of RAM, called xenheap, is always mapped NIT: s/Only/only/ and DIRECTMAP_VIRT region is not mapped. Hence return false. For x86 this helper does virt_to_mfn. Signed-off-by: Vijaya Kumar K <Vijaya.Kumar@xxxxxxxxxx> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> [...] diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c index 68dba19..9e41fb4 100644 --- a/xen/common/page_alloc.c +++ b/xen/common/page_alloc.c @@ -520,9 +520,6 @@ static unsigned long init_node_heap(int node, unsigned long mfn, unsigned long needed = (sizeof(**_heap) + sizeof(**avail) * NR_ZONES + PAGE_SIZE - 1) >> PAGE_SHIFT; -#ifdef DIRECTMAP_VIRT_END - unsigned long eva = min(DIRECTMAP_VIRT_END, HYPERVISOR_VIRT_END); -#endif int i, j; if ( !first_node_initialised ) @@ -532,9 +529,8 @@ static unsigned long init_node_heap(int node, unsigned long mfn, first_node_initialised = 1; needed = 0; } -#ifdef DIRECTMAP_VIRT_END This is common code change and new in this version. As you keep Jan Beulich's (x86 and common code maintainer) reviewed-by I would like to confirm he is happy with that. else if ( *use_tail && nr >= needed && - (mfn + nr) <= (virt_to_mfn(eva - 1) + 1) && + arch_mfn_in_directmap(mfn + nr) && (!xenheap_bits || !((mfn + nr - 1) >> (xenheap_bits - PAGE_SHIFT))) ) { @@ -543,7 +539,7 @@ static unsigned long init_node_heap(int node, unsigned long mfn, PAGE_SIZE - sizeof(**avail) * NR_ZONES; } else if ( nr >= needed && - (mfn + needed) <= (virt_to_mfn(eva - 1) + 1) && + arch_mfn_in_directmap(mfn + needed) && (!xenheap_bits || !((mfn + needed - 1) >> (xenheap_bits - PAGE_SHIFT))) ) { @@ -552,7 +548,6 @@ static unsigned long init_node_heap(int node, unsigned long mfn, PAGE_SIZE - sizeof(**avail) * NR_ZONES; *use_tail = 0; } -#endif else if ( get_order_from_bytes(sizeof(**_heap)) == get_order_from_pages(needed) ) { Reviewed-by: Julien Grall <julien.grall@xxxxxxx> Cheers, -- Julien Grall _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |