From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: RE: 2.6.32.27 dom0 + latest xen staging boot failure Date: Tue, 15 Feb 2011 14:58:00 +0000 Message-ID: References: <987664A83D2D224EAE907B061CE93D530194305BEA@orsmsx505.amr.corp.intel.com> <20110125201008.GA18756@dumpdata.com> <987664A83D2D224EAE907B061CE93D53019434A43C@orsmsx505.amr.corp.intel.com> <20110126161400.GA3515@dumpdata.com> <987664A83D2D224EAE907B061CE93D53019434A8F7@orsmsx505.amr.corp.intel.com> <20110126212850.GB3578@dumpdata.com> <987664A83D2D224EAE907B061CE93D53019438ECB3@orsmsx505.amr.corp.intel.com> <987664A83D2D224EAE907B061CE93D53019438F211@orsmsx505.amr.corp.intel.com> <20110128152843.GB29440@dumpdata.com> <20110128154754.GA24075@dumpdata.com> <987664A83D2D224EAE907B061CE93D53019D2308A0@orsmsx505.amr.corp.intel.com> <4D54A547.9060201@goop.org> <987664A83D2D224EAE907B061CE93D53019D230984@orsmsx505.amr.corp.intel.com> <4D556C9E.7040700@goop.org> <987664A83D2D224EAE907B061CE93D53019D3E7EAA@orsmsx505.amr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Return-path: In-Reply-To: <987664A83D2D224EAE907B061CE93D53019D3E7EAA@orsmsx505.amr.corp.intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: "Kay, Allen M" Cc: Jeremy Fitzhardinge , Stefano Stabellini , Keir Fraser , xen-devel , Konrad Rzeszutek Wilk List-Id: xen-devel@lists.xenproject.org On Tue, 15 Feb 2011, Kay, Allen M wrote: > The failure occurs when dom0 tries to pin an l1 table entry because L1 table entry for the failed address is garbage. The memory range being pinned is in the range of this extra balloon driver memory not backed by real RAM. Is this intended? > The pfn in question is returned by alloc_low_page and is equal to e820_table_end, that should fall into the range e820_table_start-e820_table_top. This range is allocated by find_early_table_space in the initial pagetable mappings between 0x8000 and max_pfn_mapped, respecting the reserved memblock regions. Maybe we didn't reserve some ranges in there that should have been reserved? What happen you apply this patch? diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c index 5e92b61..73a21db 100644 --- a/arch/x86/xen/mmu.c +++ b/arch/x86/xen/mmu.c @@ -1653,9 +1653,6 @@ static __init void xen_map_identity_early(pmd_t *pmd, unsigned long max_pfn) for (pteidx = 0; pteidx < PTRS_PER_PTE; pteidx++, pfn++) { pte_t pte; - if (pfn > max_pfn_mapped) - max_pfn_mapped = pfn; - if (!pte_none(pte_page[pteidx])) continue; @@ -1713,6 +1710,8 @@ __init pgd_t *xen_setup_kernel_pagetable(pgd_t *pgd, pud_t *l3; pmd_t *l2; + max_pfn_mapped = PFN_DOWN(__pa(xen_start_info->mfn_list)); + /* Zap identity mapping */ init_level4_pgt[0] = __pgd(0);