|
[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
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |