qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Bug with TARGET_PHYS_ADDR_SPACE_BITS


From: Chris Lalancette
Subject: Re: [Qemu-devel] Bug with TARGET_PHYS_ADDR_SPACE_BITS
Date: Thu, 21 Aug 2008 16:47:57 +0200
User-agent: Thunderbird 2.0.0.16 (X11/20080723)

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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]