From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christian Limpach Subject: Re: problems with recursively mapping page directory as a page table Date: Mon, 23 Feb 2004 14:15:47 +0100 Sender: xen-devel-admin@lists.sourceforge.net Message-ID: <141801c3fa0f$27bdf600$070414ac@pin> References: <20040222153215.G84871@demos.bsdclusters.com> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 7bit Return-path: Errors-To: xen-devel-admin@lists.sourceforge.net List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , List-Archive: To: Kip Macy , Ian Pratt Cc: xen-devel@lists.sourceforge.net List-Id: xen-devel@lists.xenproject.org > The following code: > /* install a pde recursively mapping page directory as a page table */ > FILLKPT(IdlePTD, PTDPTDI, 1, IdlePTD, L2_PROT_RO); > > Which basically sets IdlePTD[PTDPTDI] = IdlePTD | LT_PROT_RO appears to > be causing the error below. Any thoughts? > > (file=/u/kmacy/xen/xeno-unstable.bk.home/xen/include/xeno/mm.h,line=243) Unexpected type (saw 40000000 != exp 20000000) for pfDOM0: > (file=memory.c, line=339) Bad page type for pfn 0001228d (40000001) I think it's not an error: get_page_from_l2e first tries to validate the PD entry as a regular PD entry (i.e. the page it points to should be an L1 pagetable page, PGT_l1_page_table type) and if this fails, it tries to validate it as a linear pagetable mapping (the page it points to should be an L2 pagetable page, PGT_l2_page_table type). You could add a test around the warnings to check for this condition and then not output the warnings. christian ------------------------------------------------------- SF.Net is sponsored by: Speed Start Your Linux Apps Now. Build and deploy apps & Web services for Linux with a free DVD software kit from IBM. Click Now! http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click