From mboxrd@z Thu Jan 1 00:00:00 1970 From: Olaf Hering Subject: Re: [PATCH 18/21] xenpaging: prevent page-out of first 16MB Date: Thu, 16 Dec 2010 17:59:42 +0100 Message-ID: <20101216165942.GA17353@aepfle.de> References: <20101126134901.384130351@aepfle.de> <20101126134907.311234491@aepfle.de> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Return-path: Content-Disposition: inline In-Reply-To: <20101126134907.311234491@aepfle.de> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org On Fri, Nov 26, Olaf Hering wrote: > This is more a workaround than a bugfix: > Don't page out first 16MB of memory. > When the BIOS does its initialization process and xenpaging removes pages, > crashes will occour due to lack of support of xenpaging. While looking at this again, I came up with this change. Any idea whats at 512K during BIOS startup? Subject: xenpaging: prevent page-out of gfn 0x80 Add a workaround for missing handling of paged-out pages during BIOS startup. For some reason, only gfn 0x80 is affected. (XEN) HVM3: HVM Loader (XEN) traps.c:649:d3 Bad GMFN 80 (MFN ffffffffff) to MSR 40000000 (XEN) HVM3: Detected Xen v4.1 (XEN) HVM3: HVMLoader bug at util.c:604 (XEN) hvm.c:1085:d3 Triple fault on VCPU0 - invoking HVM system reset. (XEN) HVM4: HVM Loader (XEN) traps.c:649:d4 Bad GMFN 80 (MFN ffffffffff) to MSR 40000000 (XEN) io.c:194:d4 MMIO emulation failed @ 0018:9ffff: 00 6a 10 80 c4 82 (XEN) hvm.c:1085:d4 Triple fault on VCPU0 - invoking HVM system reset. Signed-off-by: Olaf Hering --- tools/xenpaging/policy_default.c | 3 +++ 1 file changed, 3 insertions(+) --- xen-unstable.hg-4.1.22548.orig/tools/xenpaging/policy_default.c +++ xen-unstable.hg-4.1.22548/tools/xenpaging/policy_default.c @@ -76,6 +76,9 @@ int policy_init(xenpaging_t *paging) /* Don't page out page 0 */ set_bit(0, bitmap); + /* this is the trap page, disabled for the time being */ + set_bit(0x80, bitmap); + out: return rc; }