From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KWBUx-0005v2-Cw for qemu-devel@nongnu.org; Thu, 21 Aug 2008 10:50:51 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KWBUw-0005uq-0U for qemu-devel@nongnu.org; Thu, 21 Aug 2008 10:50:51 -0400 Received: from [199.232.76.173] (port=45151 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KWBUv-0005un-Rc for qemu-devel@nongnu.org; Thu, 21 Aug 2008 10:50:49 -0400 Received: from mx1.redhat.com ([66.187.233.31]:52273) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1KWBUv-0000Jo-Du for qemu-devel@nongnu.org; Thu, 21 Aug 2008 10:50:49 -0400 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id m7LEoCEW008340 for ; Thu, 21 Aug 2008 10:50:12 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx1.corp.redhat.com (8.13.1/8.13.1) with ESMTP id m7LEo50v014119 for ; Thu, 21 Aug 2008 10:50:10 -0400 Received: from localhost.localdomain (vpn-14-43.rdu.redhat.com [10.11.14.43]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id m7LEo4K6024032 for ; Thu, 21 Aug 2008 10:50:04 -0400 Message-ID: <48AD801D.5090308@redhat.com> Date: Thu, 21 Aug 2008 16:47:57 +0200 From: Chris Lalancette MIME-Version: 1.0 Subject: Re: [Qemu-devel] Bug with TARGET_PHYS_ADDR_SPACE_BITS References: <48AB070A.1040104@redhat.com> <20080820061558.GB17273@volta.aurel32.net> In-Reply-To: <20080820061558.GB17273@volta.aurel32.net> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Aurelien Jarno wrote: > On Tue, Aug 19, 2008 at 07:46:50PM +0200, Chris Lalancette wrote: >> Hello, >> oVirt is currently using straight x86_64 qemu emulation for certain parts >> of the architecture (we mostly use KVM, but need to use full emulation for a >> couple of parts). We recently upgraded our userspace package to kvm-72, but >> found that we could not PXE boot guests when we were doing full emulation (under >> kvm, we could PXE boot just fine). We also tried using qemu SVN tip, with >> similar results. We ended up doing a bisect, and tracked down the problem to >> this commit (from the kvm repo, but pulled from qemu): >> >> http://git.kernel.org/?p=linux/kernel/git/amit/kvm-userspace.git;a=commit;h=468f7507339a5236bff8ab339eb0c1b019a95fda >> >> The important changes in there in terms of this bug revolves around >> TARGET_PHYS_ADDR_SPACE_BITS in exec.c. If I change that back to 32 (what it was >> before this patch for x86_64), the PXE boot succeeds. Also, if I remove >> TARGET_PHYS_ADDR_SPACE_BITS > 32 conditional code in phys_page_find_alloc(), but >> leave TARGET_PHYS_ADDR_SPACE_BITS as 42, the PXE boot also works. I can't claim >> to understand the conditional code I've compiled out, so I'm not sure where the >> bug would be. Does anyone have an idea what the problem might be? >> Sorry for the delay in responding. > > Are you using qemu or qemu-system-x86_64? Could you also build qemu with > --disable-kqemu? It possible that kqemu support is causing this problem, > as it is limited to 32 bits. I'm not sure what the difference between qemu and qemu-system-x86_64 is. Can you explain? I've been testing with qemu-system-x86_64, for what it's worth. I've now tried building qemu like this: ./configure --target-list=x86_64-softmmu,x86_64-linux-user && make -j8 When built like this, I get no problems PXE booting. However, this is because of this line in exec.c: #elif defined(TARGET_X86_64) && !defined(USE_KQEMU) #define TARGET_PHYS_ADDR_SPACE_BITS 42 So, in this case, we end up building with TARGET_PHYS_ADDR_SPACE_BITS == 32, so things work. However, if I build qemu like this: ./configure --target-list=x86_64-softmmu,x86_64-linux-user --disable-kqemu && make -j8 Then we fail on the PXE boot, because TARGET_PHYS_ADDR_BITS gets set to 42 in that case. Chris Lalancette