Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.

Bug 1131472

Summary: Failed to install win8(32bit)
Product: Red Hat Enterprise Linux 6 Reporter: zhoujunqin <juzhou>
Component: qemu-kvmAssignee: Virtualization Maintenance <virt-maint>
Status: CLOSED NEXTRELEASE QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 6.6CC: acathrow, bcao, bsarathy, chayang, codong, dyuan, ehabkost, juli, juzhang, juzhou, lcui, michen, mkenneth, qzhang, tzheng, virt-maint
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-08-25 18:40:34 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
architecture with "i686" none

Description zhoujunqin 2014-08-19 11:13:44 UTC
Description of problem:
Failed to install Win8(32bit) guest, halts with the message of "Your PC needs to restart."

Version-Release number of selected component (if applicable):
qemu-kvm-tools-0.12.1.2-2.439.el6.x86_64
qemu-img-0.12.1.2-2.439.el6.x86_64
qemu-guest-agent-0.12.1.2-2.439.el6.x86_64
qemu-kvm-0.12.1.2-2.439.el6.x86_64
virt-manager-0.9.0-28.el6.x86_64
libvirt-0.10.2-43.el6.x86_64
kernel-2.6.32-496.el6.x86_64

How reproducible:
always

Steps to Reproduce:
1. Prepare 32bit Win8 ISO.
2. Try to install 32bit Win8 guest via virt-manager.
3. On step 5/5(Create a new virtual machine), click "Advanced options", choose "Architecture" as "i686", then click "Finish",
   starting installation.

Actual results:
32bit Win8 guest crash

Expected results:
32bit Win8 guest can be installed successfully.

Additional info:
1. In step 3, while choose "Architecture" as "X86_64", will finish installation successfully.
   But i think this is not as expected.

1.1 check qemu command line 

Choose "Architecture" as "X86_64":

qemu     31169     1  9 18:53 ?        00:00:51 /usr/libexec/qemu-kvm -name win8.i386 -S -M rhel6.6.0 -enable-kvm -m 2048 -realtime mlock=off -smp 2,sockets=2,cores=1,threads=1 -uuid 6135c9e1-b196-9a0b-9f19-4c6a7d995cc9 -nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/win8.i386.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime,driftfix=slew -no-shutdown -device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x5.0x7 -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x5 -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x5.0x1 -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x5.0x2 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x6 -drive file=/var/lib/libvirt/images/win8.i386.img,if=none,id=drive-ide0-0-0,format=qcow2,cache=none -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 -drive file=/var/lib/libvirt/images/virtio-win-1.6.8.iso,if=none,media=cdrom,id=drive-ide0-0-1,readonly=on,format=raw -device ide-drive,bus=ide.0,unit=1,drive=drive-ide0-0-1,id=ide0-0-1 -drive file=/var/lib/libvirt/images/virtion_win.iso,if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -drive file=/dev/sr0,if=none,media=cdrom,id=drive-ide0-1-1,readonly=on,format=raw -device ide-drive,bus=ide.1,unit=1,drive=drive-ide0-1-1,id=ide0-1-1 -netdev tap,fd=29,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:9e:78:b9,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev spicevmc,id=charchannel0,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.spice.0 -device usb-tablet,id=input0 -spice port=5900,addr=127.0.0.1,disable-ticketing,seamless-migration=on -vga qxl -global qxl-vga.ram_size=67108864 -global qxl-vga.vram_size=67108864 -device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x7 -msg timestamp=on

Choose "Architecture" as "i686":
qemu     26584     1 98 17:32 ?        01:29:49 /usr/libexec/qemu-kvm -name win8 -S -M rhel6.6.0 -cpu qemu32 -enable-kvm -m 1024 -realtime mlock=off -smp 1,sockets=1,cores=1,threads=1 -uuid 99d7d746-e11b-95a6-cfe0-602ff6005246 -nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/win8.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime,driftfix=slew -no-reboot -no-shutdown -device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x5.0x7 -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x5 -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x5.0x1 -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x5.0x2 -drive file=/var/lib/libvirt/images/win8.img,if=none,id=drive-ide0-0-0,format=raw,cache=none -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=2 -drive file=/dev/sr0,if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0,bootindex=1 -netdev tap,fd=26,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:ba:19:60,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -device usb-tablet,id=input0 -vnc 127.0.0.1:0 -vga std -device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6 -msg timestamp=on

NOTICE:
If change the arch type to i686,then -cpu qemu32 will be added in qemu-kvm command line.

1.2 xml file for different architecture:
Choose "Architecture" as "X86_64":
...
  <os>
    <type arch='x86_64' machine='rhel6.6.0'>hvm</type>
    <boot dev='hd'/>
  </os>
...

Choose "Architecture" as "i686":
...
  <os>
    <type arch='i686' machine='rhel6.6.0'>hvm</type>
    <boot dev='cdrom'/>
    <boot dev='hd'/>
  </os>
...

2. With same host, can install Win7 guest(32 bit) with "Architecture" equal "i686" successfully.

Comment 1 zhoujunqin 2014-08-19 11:14:39 UTC
Created attachment 928317 [details]
architecture with "i686"

Comment 3 Jun Li 2014-08-20 06:15:20 UTC
Check attachment 928317 [details], could find this is due to lack nx flag when install windows 8.
ref:
social.technet.microsoft.com/Forums/en-US/5a31494f-8635-4a5b-a8c9-60cf14ff454c/error-cod-0x0000005d


So this bz due to qemu-kvm -cpu qemu32 can not deliver nx flag to guest.

Do following testing:
# /usr/libexec/qemu-kvm ... -cpu qemu32,+nx,+pae,+sse2,check,enforce ...

Results:
qemu-kvm can boot up successfully without any warning or error, but can not find nx flag inside guest. So it's a valued bug.

Version of components:
qemu-kvm-0.12.1.2-2.438.el6.x86_64

Additions:
Also test on rhel7 host, do not hit this bz.
Version  of components:
qemu-kvm-rhev-2.1.0-2.el7.x86_64

Hi Eduardo,

  Could you help to check this bz. Thx. Any issue, free to update in bz.

Best Regards,
Jun Li

Comment 4 Mike Cao 2014-08-20 09:18:24 UTC
I do not think we support qemu32 cpu model ,do we ?

Comment 6 Eduardo Habkost 2014-08-20 16:39:41 UTC
(In reply to Jun Li from comment #3)
> Do following testing:
> # /usr/libexec/qemu-kvm ... -cpu qemu32,+nx,+pae,+sse2,check,enforce ...
> 
> Results:
> qemu-kvm can boot up successfully without any warning or error, but can not
> find nx flag inside guest. So it's a valued bug.

Can you clarify that? Are you able to install Windows 8 when using "+nx", or are you still unable to install it?

Comment 7 Jun Li 2014-08-21 01:49:56 UTC
(In reply to Eduardo Habkost from comment #6)
> (In reply to Jun Li from comment #3)
> > Do following testing:
> > # /usr/libexec/qemu-kvm ... -cpu qemu32,+nx,+pae,+sse2,check,enforce ...
> > 
> > Results:
> > qemu-kvm can boot up successfully without any warning or error, but can not
> > find nx flag inside guest. So it's a valued bug.
> 
> Can you clarify that? Are you able to install Windows 8 when using "+nx", or
> are you still unable to install it?

1, Can not install Windows 8 when using "+nx" on rhel 6 host with qemu-kvm-0.12.1.2-2.438.el6.x86_64. cli:
# /usr/libexec/qemu-kvm ... -cpu qemu32,+nx,+pae,+sse2,check,enforce ...

2, Can install Windows 8 successfully when using "+nx" on rhel 7 host with qemu-kvm-rhev-2.1.0-2.el7.x86_64. cli:
# /usr/libexec/qemu-kvm ... -cpu qemu32,+nx,+pae,+sse2,check,enforce ...


Any issue, free to update in bz. Thx.

Regards,
Jun Li

Comment 8 Jun Li 2014-08-21 02:43:02 UTC
(In reply to Eduardo Habkost from comment #6)
> (In reply to Jun Li from comment #3)
> > Do following testing: 
> > # /usr/libexec/qemu-kvm ... -cpu qemu32,+nx,+pae,+sse2,check,enforce ...
> > 

When do this testing, the guest is RHEL-Server-6.6-32. The purpose of this testing is check whether nx flag can deliver to guest.

> > Results:
> > qemu-kvm can boot up successfully without any warning or error, but can not
> > find nx flag inside guest. So it's a valued bug.

This "Results" is based on RHEL-Server-6.6-32 guest.

> 
> Can you clarify that? Are you able to install Windows 8 when using "+nx", or
> are you still unable to install it?

Comment 9 Eduardo Habkost 2014-08-25 18:40:34 UTC
The nx flag requires xlevel >= 0x80000001, qemu32 has xlevel=0 on RHEL-6. This can be worked around by setting xlevel=0x80000001 on the -cpu command-line option.