Skip to contentSkip to conversation

kvm-31 configure file bug

DISCUSSION Simon Gao 2 participants 6 messages Jul 21, 2007 – Jul 25, 2007 5 messages not in the archive KVM

lore
Share & tools
lore

Simon Gao

author
#0 lore raw

Hi,

I found there is a bug with configure file shipped with kvm-31. Here is the part of configure file:

===============================

target_cpu() {
    if [[ $(uname -m) = i?86 ]]; then
       echo x86_64
    else
        uname -m
    fi
}

===============================

!?86 will match i386, i586 and i686. On my machine, "uname -m" returns i686, which is obviously a 32bit kernel. Assigning to x86_64 breaks kvm and installs qemu-system-x86_64, instead of qemu.

After making a simple change as follow, kvm-31 compiles and installs as expected on 32bit system. qemu also woks.

===============================

target_cpu() {
    if [[ $(uname -m) = i?86 ]]; then
       #echo x86_64
       echo i386
    else
        uname -m
    fi
}

===============================

Looks like kvm-31 only compiles when target_cpu is i386 or x86_64. Under other situations like i486, i585, i686, compiling kvm-31 will fail. On many machines, "uname -m" returns i586 or i686.

Simon

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/

A message that is not in the archive (sent off-list or not yet received): 46A247DA.7060503-g4dUTk+gKbW4mfPA/[email protected]

#2 lore raw
Quoted 13 lines · Simon Gao

Hi,

I found there is a bug with configure file shipped with kvm-31. Here is the part of configure file:

===============================

target_cpu() {
    if [[ $(uname -m) = i?86 ]]; then
       echo x86_64
    else
        uname -m
    fi
}
Quoted 7 lines

===============================

!?86 will match i386, i586 and i686. On my machine, "uname -m" returns i686, which is obviously a 32bit kernel. Assigning to x86_64 breaks kvm and installs qemu-system-x86_64, instead of qemu.

That's by design. We compile qemu to support a 64-bit target so that live migration works between 32-bit and 64-bit hosts.

Signature · 8 lines
error compiling committee.c: too many arguments to function


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/

A message that is not in the archive (sent off-list or not yet received): 46A30D96.5010606-atKUWr5tajBWk0Htik3J/[email protected]

author
#4 lore raw
Quoted 23 lines · Avi Kivity
Quoted 13 lines · Simon Gao

Hi,

I found there is a bug with configure file shipped with kvm-31. Here is the part of configure file:

===============================

target_cpu() {
    if [[ $(uname -m) = i?86 ]]; then
       echo x86_64
    else
        uname -m
    fi
}
Quoted 8 lines

===============================

!?86 will match i386, i586 and i686. On my machine, "uname -m" returns i686, which is obviously a 32bit kernel. Assigning to x86_64 breaks kvm and installs
, instead of qemu.

Quoted 4 lines

That's by design. We compile qemu to support a 64-bit target so that live migration works between 32-bit and 64-bit hosts.

So from kvm-31 and on, qemu command will become qemu-system-x86_64 no matter host system is 32bit or 64bit? So it's possible to compile 64bit kvm qemu with only 32bit libraries?

Simon

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/

A message that is not in the archive (sent off-list or not yet received): 46A3BBEF.2030400-g4dUTk+gKbW4mfPA/[email protected]

#6 lore raw
Quoted 6 lines · Simon Gao

So from kvm-31 and on, qemu command will become qemu-system-x86_64 no matter host system is 32bit or 64bit? So it's possible to compile 64bit kvm qemu with only 32bit libraries?

Yes and yes. That's even more true for upstream qemu as well -- you can run a 64-bit guest on a non-64-bit capable cpu.

Signature · 8 lines
error compiling committee.c: too many arguments to function


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/

A message that is not in the archive (sent off-list or not yet received): 46A46193.2060402-atKUWr5tajBWk0Htik3J/[email protected]

author
#8 lore raw
Quoted 11 lines · Avi Kivity
Quoted 6 lines · Simon Gao

So from kvm-31 and on, qemu command will become qemu-system-x86_64 no matter host system is 32bit or 64bit? So it's possible to compile 64bit kvm qemu with only 32bit libraries?

Yes and yes. That's even more true for upstream qemu as well -- you can run a 64-bit guest on a non-64-bit capable cpu.

I still had to change "x86_64" to "i386" in configure file. If I don't, then guest os will hang after initial boot image splash. This happened to kvm-31, kvm-32, kvm-33. The guest OSes worked fine with kvm-28.

Is there some parameter I should pass to make? or when I start guest OS using qemu-system_x86_64 under 32bit Linux?

Simon

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/

A message that is not in the archive (sent off-list or not yet received): 46A50352.7060003-g4dUTk+gKbW4mfPA/[email protected]

#10 lore raw
Quoted 14 lines · Simon Gao
Quoted 12 lines · Avi Kivity
Quoted 6 lines · Simon Gao

So from kvm-31 and on, qemu command will become qemu-system-x86_64 no matter host system is 32bit or 64bit? So it's possible to compile 64bit kvm qemu with only 32bit libraries?

Yes and yes. That's even more true for upstream qemu as well -- you can run a 64-bit guest on a non-64-bit capable cpu.

Quoted 8 lines

I still had to change "x86_64" to "i386" in configure file. If I don't, then guest os will hang after initial boot image splash. This happened to kvm-31, kvm-32, kvm-33. The guest OSes worked fine with kvm-28.

Is there some parameter I should pass to make? or when I start guest OS using qemu-system_x86_64 under 32bit Linux?

It should just work. Is there anything in dmesg when the guest hangs? What guest is that?

Signature · 8 lines
Do not meddle in the internals of kernels, for they are subtle and quick to panic.


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/