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

Re: [Xen-devel] [PATCH 2/2] x86/xen: during early setup, only 1:1 map the ISA region



On Fri, Aug 16, 2013 at 03:42:56PM +0100, David Vrabel wrote:
> From: David Vrabel <david.vrabel@xxxxxxxxxx>
> 
> During early setup, when the reserved regions and MMIO holes are being
> setup as 1:1 in the p2m, clear any mappings instead of making them 1:1
> (execept for the ISA region which is expected to be mapped).
> 
> This reverts a change in behaviour introduced in 3.5 by 83d51ab473dd
> (xen/setup: update VA mapping when releasing memory during setup).

So it won't cause the original issues to reappear which is that we
get this

    (XEN) page_alloc.c:1148:d0 Over-allocation for domain 0: 2097153 > 2097152
    (XEN) memory.c:133:d0 Could not allocate order=0 extent: id=0 memflags=0 (0 
of 17)
    
if we boot without dom0_mem_max ?

> 
> Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
> ---
>  arch/x86/xen/setup.c |   16 +++++++++++-----
>  1 files changed, 11 insertions(+), 5 deletions(-)
> 
> diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c
> index 5a093b7..081292e 100644
> --- a/arch/x86/xen/setup.c
> +++ b/arch/x86/xen/setup.c
> @@ -215,13 +215,19 @@ static void __init xen_set_identity_and_release_chunk(
>       unsigned long pfn;
>  
>       /*
> -      * If the PFNs are currently mapped, the VA mapping also needs
> -      * to be updated to be 1:1.
> +      * If the PFNs are currently mapped, clear the mappings
> +      * (except for the ISA region which must be 1:1 mapped) to
> +      * release the refcounts (in Xen) on the original frames.
>        */
> -     for (pfn = start_pfn; pfn <= max_pfn_mapped && pfn < end_pfn; pfn++)
> +     for (pfn = start_pfn; pfn <= max_pfn_mapped && pfn < end_pfn; pfn++) {
> +             pte_t pte = __pte_ma(0);
> +
> +             if (pfn < PFN_UP(ISA_END_ADDRESS))
> +                     pte = mfn_pte(pfn, PAGE_KERNEL_IO);
> +
>               (void)HYPERVISOR_update_va_mapping(
> -                     (unsigned long)__va(pfn << PAGE_SHIFT),
> -                     mfn_pte(pfn, PAGE_KERNEL_IO), 0);
> +                     (unsigned long)__va(pfn << PAGE_SHIFT), pte, 0);
> +     }
>  
>       if (start_pfn < nr_pages)
>               *released += xen_release_chunk(
> -- 
> 1.7.2.5
> 

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


 


Rackspace

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