From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: RE: Re: [Xen-users] rebased openSUSE Xen dom0 Patches Date: Mon, 19 Apr 2010 09:41:32 +0100 Message-ID: <4BCC335C020000780003ACD0@vpn.id2.novell.com> References: <4BC834C4020000780003A947@vpn.id2.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Return-path: In-Reply-To: Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Andrew Lyon , Simon Graham Cc: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org >>> "Simon Graham" 16.04.10 15:42 >>> >We've actually narrowed the problem down a bit -- the pages we fail on >are always in the range of those freed by free_init_pages("unused kernel >memory") from free_initmem(). Now, the specific problem is that a >writable page cant be turned into a page table page because it's page >type ref count is non-zero -- I see in the free_init_pages() routine >that two hypercalls are made for each page, one of which sets the pte to >zero (which would decrement the page type ref count I think) and one of >which does not -- doesn't this leave the page type ref count at 1 which >in turn means the page cant be turned into a page table page? Or is >there some other magic that occurs later on that should decrement the >page type ref count before attempting to use the page as a page table >page? Are you observing this with both the .31 and .32 patches? >Here's the extract of the code I am talking about (yes, we are using a >64-bit Dom0): >... But that code is precisely what guarantees that the pages *can* be converted to page table pages (by completely unmapping them from the kernel image part of the address space). So your explanation is rather confusing than clarifying to me... Jan