Bug 574616

Summary: Solaris 10 8/07 & 10/09 (AKA update 4 / update 8) x86 guest can't boot 64 bit
Product: Red Hat Enterprise Linux 5 Reporter: Seaq Servicios <soporte>
Component: kvmAssignee: Eduardo Habkost <ehabkost>
Status: CLOSED WONTFIX QA Contact: Virtualization Bugs <virt-bugs>
Severity: high Docs Contact:
Priority: low    
Version: 5.4CC: berrange, mkenneth, soporte, tburke, virt-maint, xen-maint, ykaul
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-12-02 12:31:35 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 580946    
Attachments:
Description Flags
libvirt debug log
none
kvm references at ubuntu`s changelog none

Description Seaq Servicios 2010-03-17 23:37:49 UTC
Description of problem:

Solaris 10 x86 guests cannot boot into 64 bit mode, the vm continuosly reboots, 
the workaround is to specify kernel/unix (this boot the machine in 32 bit mode), using kvm as hypervisor
Host: Dell poweredge 2x Dual core Xeon 
arch:x86_64
mem:16 GB
kvm version: kvm-83-105.el5.x86_64
host kernel: 2.6.18-164.el5.x86_64

the upstream related bug is detailed here:

http://sourceforge.net/tracker/?func=detail&atid=893831&aid=1842160&group_id=180599 

Looking in the 

Version-Release number of selected component (if applicable):



How reproducible:


Steps to Reproduce:
1.install a solaris 10 x86 guest (virtual machine) using kvm as hypervisor with x86_64 arch on a rhel 5.4 host (x86_64)
2. boot it
3.
  
Actual results:

The solaris guest (virtual machine) turn in to endless reboot (64 bit kernel by default), to boot the vm, should edit bootloader configuration and adding kernel/unix, with this way, the machine boots correctly 

Expected results:

The machine should boot normally, without any modification on boot loader using
the 64 bits default solaris kernel

Additional info:

No any useful info in dmesg, or /var/log/messages or /var/log/libvirt/*

Reading the kernel changelog version 2.6.29.2, this vanilla kernel version includes a fix for the bug

commit e8c4851a2ad9c7ada702141e621f127cb203c41e
Author: Amit Shah 
Date: Fri Apr 17 19:40:13 2009 -0300

KVM: is_long_mode() should check for EFER.LMA

upstream commit: 41d6af119206e98764b4ae6d264d63acefcf851e

is_long_mode currently checks the LongModeEnable bit in
EFER instead of the LongModeActive bit. This is wrong, but
we survived this till now since it wasn't triggered. This
breaks guests that go from long mode to compatibility mode.

This is noticed on a solaris guest and fixes bug #1842160

Signed-off-by: Amit Shah 
Signed-off-by: Avi Kivity 
Signed-off-by: Chris Wright

Comment 1 Seaq Servicios 2010-03-18 00:08:15 UTC
Also tested with Solaris 10 5/09, with the same behaviour, same results

Comment 2 Seaq Servicios 2010-03-19 23:00:20 UTC
Hi, we`ve just checked the patches applied into redhat`s kvm package and the fore mentioned patch is already in there.

so this is caused for something else.

We`ve tested with 5.5beta packages

kvm-83-154.el5
kmod-kvm-83-154.el5
etherboot-zroms-kvm-5.4.4-13.el5
kvm-qemu-img-83-154.el5
kvm-tools-83-154.el5
kernel-2.6.18-186.el5
libvirt-0.6.3-31.el5
libvirt-0.6.3-31.el5
libvirt-python-0.6.3-31.el5

and it also fails.

testing with an Ubuntu Karmic machine which closely follows kernel 2.6.31

the kvm related commits into Ubuntu are only the ones available in upstream.

http://kernel.ubuntu.com/git?p=ubuntu%2Fubuntu-karmic.git&a=search&h=HEAD&st=commit&s=kvm

http://kernel.ubuntu.com/git?p=ubuntu%2Fubuntu-karmic.git&a=search&h=HEAD&st=commit&s=solaris

Comment 3 Seaq Servicios 2010-03-19 23:05:34 UTC
oops, i must complete the sentence..

testing with an Ubuntu Karmic machine the Solaris Guest works with 64 bits.

We're trying to collect some logs, enabling debug in libvirt but we don`t find anything that catchs our attention.

however i`m attaching them to this report.

thanks

Comment 4 Seaq Servicios 2010-03-19 23:18:31 UTC
Created attachment 401367 [details]
libvirt debug log

Comment 5 Seaq Servicios 2010-03-20 01:41:29 UTC
Created attachment 401382 [details]
kvm references at ubuntu`s changelog

Comment 6 Seaq Servicios 2010-03-20 01:42:23 UTC
Tested with jwilson`s packages at http://people.redhat.com/jwilson/el5/194.el5/  without success.

Comment 7 Seaq Servicios 2010-03-24 22:00:01 UTC
A working scenario is on 
ubuntu karmic 
kernel 2.6.31-16-generic
libvirt: 0.7.0-1ubuntu13
qemu-kvm : 0.11.0-0ubuntu6
virt-manager:0.7.0-3ubuntu1

host:sony vaio laptop x86_64 bits, with VT enabled on bios

the solaris vm boots correctly at 64 bits.

On rhel 5.4 we've have built and boot, with a 2.6.33.1 (rpm) kernel from www.kernel.org, and the problem persists.

Comment 8 Seaq Servicios 2010-03-24 22:00:28 UTC
A working scenario is on 
ubuntu karmic 
kernel 2.6.31-16-generic
libvirt: 0.7.0-1ubuntu13
qemu-kvm : 0.11.0-0ubuntu6
virt-manager:0.7.0-3ubuntu1

host:sony vaio laptop x86_64 bits, with VT enabled on bios

the solaris vm boots correctly at 64 bits.

On rhel 5.4 we've have built and boot, with a 2.6.33.1 (rpm) kernel from www.kernel.org, and the problem persists.

Comment 9 Seaq Servicios 2010-04-19 21:46:23 UTC
We've managed to solve this issue as follows:


1.- compiling from upstream sources qemu-kvm 0.12.3
2.- applying to 5.4 RHEL libvirt RPM package the patch :

Avoid broken networking with new QEMU/KVM >= 86

http://libvirt.org/git/?p=libvirt.git;a=commit;h=2afc3bfd8b779ddba974da9d66d6ea337fc91c01


With this procedure we've managed to get Solaris 64 bits working flawlessly on top of KVM.

Comment 16 Dor Laor 2010-12-02 12:31:35 UTC
Currently there are no plans to support Solaris over rhel5, closing.