From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gerd Knorr Subject: Re: Status of PAE support? Date: 07 Jun 2005 12:16:46 +0200 Message-ID: <87acm2o4j5.fsf@bytesex.org> References: <000f01c56b07$f73d25d0$0201a8c0@hawk> <077c7b5cf0b37c1e90cb87b0c8708583@cl.cam.ac.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: In-Reply-To: <077c7b5cf0b37c1e90cb87b0c8708583@cl.cam.ac.uk> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Keir Fraser Cc: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org Keir Fraser writes: > > http://www.theshore.net/~caker/xen/PAE-testing/test1/boot.log > > > > It boots OK if I disable PAE. I can proide binaries if needed. > > You need a PAE-enabled domain0 kernel as well, and our tree isn;t yet > patched to support PAE. So bootstrapping Xen is as far as you'll get > right now. http://dl.bytesex.org/patches/ has xenlinux patches for you, havn't found the time yet to update them for after-initial-pae-merge source tree, so it likely is a bit tricky to get it going at the moment. Seems the pae patch chunk for common/elf.c got lost on the merge (by mistake or intentionally?). I had added a sanity-check there to catch the case of attempting to boot a non-pae kernel on pae xen (or visa-versa), so you'll get a clear error message instead of a kernel crashing very early. Hmm, something wrong with that? Gerd Index: xen/common/elf.c =================================================================== --- xen.orig/common/elf.c 2005-05-30 14:09:15.000000000 +0200 +++ xen/common/elf.c 2005-05-30 14:14:30.000000000 +0200 @@ -82,7 +82,20 @@ int parseelfimage(struct domain_setup_in printk("ERROR: Xen will only load images built for Xen v3.0\n"); return -EINVAL; } - +#if defined(__i386__) +#ifdef CONFIG_X86_PAE + int xen_pae = 1; +#else + int xen_pae = 0; +#endif + int guest_pae = strstr(guestinfo, "PAE=yes") ? 1 : 0; + if (xen_pae != guest_pae) { + printk("ERROR: PAE mode mismatch (xen=%s,guest=%s)\n", + xen_pae ? "yes" : "no", + guest_pae ? "yes" : "no"); + return -EINVAL; + } +#endif break; } if ( guestinfo == NULL )