Created attachment 957191 [details] logs Description of problem: i can't run windows 8 64bit, although windows 8 32bit start (at least the installation). * error: ~~~ Your PC needs to restart. Please hold down the power button. Error Code: OxOOOOOO1E Parameters: OxFFFFFFFFCOOOO096 OxFFFFF80l63D854E8 OxOOOOOOOOOOOOOOOO OxOOOOOOOOOOOOOOOO ~~~ * there's no difference in qemu-kvm cmdline. [root@dell-r210ii-04 yum.repos.d]# grep qemu-kvm /var/log/libvirt/qemu/test-ko.log LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin QEMU_AUDIO_DRV=none /usr/libexec/qemu-kvm -name test-ko -S -M rhel6.5.0 -cpu SandyBridge,hv_relaxed -enable-kvm -m 2048 -realtime mlock=off -smp 2,maxcpus=16,sockets=16,cores=1,threads=1 -uuid a0fb4dc8-f1c9-41d3-955f-10588cd47110 -smbios type=1,manufacturer=Red Hat,product=RHEV Hypervisor,version=6Server-6.6.0.2.el6,serial=4C4C4544-0058-3410-8058-C2C04F38354A,uuid=a0fb4dc8-f1c9-41d3-955f-10588cd47110 -nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/test-ko.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=2014-11-13T14:41:05,clock=vm,driftfix=slew -no-kvm-pit-reinjection -no-shutdown -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -device virtio-scsi-pci,id=scsi0,bus=pci.0,addr=0x5 -device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x6 -drive file=/rhev/data-center/00000002-0002-0002-0002-000000000068/0c65cf21-bb17-463c-b6a9-94318871fb06/images/93484af6-22d7-48fd-aa4a-863c5f0a1c6b/40a63f93-a8c7-4e84-bde1-9cde9003c925,if=none,id=drive-ide0-0-0,format=raw,serial=93484af6-22d7-48fd-aa4a-863c5f0a1c6b,cache=none,werror=stop,rerror=stop,aio=threads -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=2 -drive file=/rhev/data-center/mnt/10.34.63.204:_home_iso_shared/0c78b4d6-ba00-4d3e-9f9f-65c7d5899d71/images/11111111-1111-1111-1111-111111111111/en_windows_8_enterprise_x64_dvd_917522.iso,if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw,serial= -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0,bootindex=1 -netdev tap,fd=27,id=hostnet0 -device e1000,netdev=hostnet0,id=net0,mac=00:1a:4a:e0:5f:02,bus=pci.0,addr=0x3,bootindex=3 -chardev socket,id=charchannel0,path=/var/lib/libvirt/qemu/channels/a0fb4dc8-f1c9-41d3-955f-10588cd47110.com.redhat.rhevm.vdsm,server,nowait -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.rhevm.vdsm -chardev socket,id=charchannel1,path=/var/lib/libvirt/qemu/channels/a0fb4dc8-f1c9-41d3-955f-10588cd47110.org.qemu.guest_agent.0,server,nowait -device virtserialport,bus=virtio-serial0.0,nr=2,chardev=charchannel1,id=channel1,name=org.qemu.guest_agent.0 -device usb-tablet,id=input0 -vnc 10.34.63.223:0,password -k en-us -vga cirrus -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=0x8 -msg timestamp=on * no real difference between both platforms # sdiff -s /tmp/ok /tmp/ko test-ok | test-ko socket,id=charmonitor,path=/var/lib/libvirt/qemu/test-ok.moni | socket,id=charmonitor,path=/var/lib/libvirt/qemu/test-ko.moni base=2014-11-13T14:39:25,clock=vm,driftfix=slew | base=2014-11-13T14:41:05,clock=vm,driftfix=slew file=/rhev/data-center/mnt/10.34.63.204:_home_iso_shared/0c78 | file=/rhev/data-center/mnt/10.34.63.204:_home_iso_shared/0c78 tested on RHEVM 3.5 with RHEVH and RHEL Version-Release number of selected component (if applicable): qemu-kvm-rhev-0.12.1.2-2.448.el6.x86_64 libvirt-0.10.2-46.el6_6.1.x86_64 How reproducible: 100% Steps to Reproduce: 1. have rhel66 with above packages 2. use RHEVM 3.5 (or explicitly use above qemu-kvm args) to run windows 8 64bit VM 3. Actual results: vm finishes in error Expected results: should work Additional info:
We have an existing bug: Bug 1063124 - fail to boot windows 2012 guest with '-cpu SandyBridge,hv_relaxed' And removing hv_relaxed works around this issue.
(In reply to Chao Yang from comment #3) > We have an existing bug: > Bug 1063124 - fail to boot windows 2012 guest with '-cpu > SandyBridge,hv_relaxed' > > And removing hv_relaxed works around this issue. Strange, almost as if it is a Windows bug. hv_relaxed is a Microsoft guest-side code only. Vadim, are there side effects that you can think of?
Clarification: - it is related to hv_relaxed flag passed to qemu-kvm - this flag appeared recently in rhevm/vdsm (3.5) - this flag has appeared in osinfo os.windows_xp.devices.hyperv.enabled.value = true - osinfo is inherited to other windows versions - engine passes 'hypervEnable=true' 2015-01-07 15:22:49,588 INFO [org.ovirt.engine.core.vdsbroker.vdsbroker.FullListVdsCommand] (DefaultQuartzScheduler_Worker-95) [d55c73b] FINISH, FullListVdsCommand, return: [{displaySecurePort=-1, kvmEnable=true, nicModel=rtl8139,pv, keyboardLayout=en-us, guestDiskMapping={}, displayIp=10.34.63.223, pauseCode=NOERR, nice=0, displayNetwork=rhevm, timeOffset=0, transparentHugePages=true, vmId=512111ac-0692-405c-9c30-c2df35309576, acpiEnable=true, custom={}, spiceSslCipherSuite=DEFAULT, memSize=2048, smp=2, displayPort=5900, emulatedMachine=rhel6.5.0, vmType=kvm, status=Up, memGuaranteedSize=1024, display=vnc, pid=19499, smartcardEnable=false, bootMenuEnable=false, tabletEnable=true, spiceSecureChannels=smain,sinputs,scursor,splayback,srecord,sdisplay,susbredir,ssmartcard, smpCoresPerSocket=1, maxVCpus=16, hypervEnable=true, clientIp=, devices=[Ljava.lang.Object;@7b574541, vmName=jb-w2k12r2-2, cpuType=SandyBridge}], log id: 6ee308ce - then vdsm checks def appendFeatures(self): """ Add machine features to domain xml. Currently only <features> <acpi/> <features/> for hyperv: <features> <acpi/> <hyperv> <relaxed state='on'/> </hyperv> <features/> """ if (utils.tobool(self.conf.get('acpiEnable', 'true')) or utils.tobool(self.conf.get('hypervEnable', 'false'))): features = self.dom.appendChildWithArgs('features') if utils.tobool(self.conf.get('acpiEnable', 'true')): features.appendChildWithArgs('acpi') if utils.tobool(self.conf.get('hypervEnable', 'false')): hyperv = XMLElement('hyperv') features.appendChild(hyperv) hyperv.appendChildWithArgs('relaxed', state='on') # turns off an internal Windows watchdog, and by doing so avoids # some high load BSODs. - appends to xml domain <hyperv> <relaxed state='on'/> </hyperv> - which passes hv_relaxed to qemu-kvm ...-cpu SandyBridge,hv_relaxed... it seems this flag should not be passed for mentioned/impacted windows variants
fyi not related to cluster version in rhevm 3.5, i tried: - rhel6.6 & 3.4 vdsm in 3.5 rhevm with 3.4 clstr - worked ok - rhel6.6 & 3.5 vdsm in 3.5 rhevm with 3.4 clstr - not working - rhel 6.5 & 3.4 vdsm in 3.4 rhevm with 3.4 clstr - worked ok - rhel7 & vdsm 3.5 in 3.5 rhevm - worked ok
Jiri, do we have a confirmed list of Windows version affected by this? might be needed to remove it altogether for now since we do not have differentiation in osinfo based on underlying hypervisor release or a specific ad-hoc code dropping this on RHEL 6 at vdsm side
test - all had hv_relaxed, 3.5 vdsm/rhel6.6: wxp - ok w7 32bit - ok w7 64bit - ok w2k3 32bit - ok w2k3 64bit - <not tested, no vm now> w2k3r2 - ok w2k8 32bit - ok w2k8 64bit - ok w2k8r2 - ok w8 32bit - ok w8 64bit - fail w2k12 - fail w8.1 32bit - <not tested, no vm now> w8.1 64bit - fail w2k12r2 - fail
RHEL 6.x is still the recommended platform (not yet RHEL 7.x) so, either tune osinfo to blacklist w8/w2k12 guests, or disable the feature alltogether. I'd go first with the blacklist approach, especially considering that there is an underlying qemu issue which, once solved, will allow us to re-enable the feature everywhere.
posted patch on engine to add blacklist and try to save the known-good-and-tested-as-such guest windowses. contingency plan is to disable the feature alltogether either on VDSM or on osinfo again.
for archives - all windows run ok on rhel7 with hv_relaxed flag
patches merged on all the relevant branches.
ok vt13.7 checked os variants and osinfo file (rhel6 host). w2k12r2/w2k12 - without hv_relaxed w8 64bit - without hv_relaxed w8 32bit - with hv_relaxed w2k8r2 - with hv_relaxed ...
tested also on RHEL7, no regression, all work ok
RHEV-M 3.5.0 has been released
I am gonna reopen this bug. Customer is having this issue on RHEV-H 6.6-20150128 with Windows 8. rhevm-backend-3.5.0-0.32.el6ev.noarch Tue Mar 24 14:34:20 2015 rhev-h7: w8 64bit hv_relaxed - ok rhev-h6: w8 64bit hv_relaxed - fail
(In reply to akotov from comment #19) > I am gonna reopen this bug. > > Customer is having this issue on RHEV-H 6.6-20150128 with Windows 8. > > rhevm-backend-3.5.0-0.32.el6ev.noarch Tue Mar 24 > 14:34:20 2015 > > > rhev-h7: w8 64bit hv_relaxed - ok > rhev-h6: w8 64bit hv_relaxed - fail On Engine side, this patch blacklists hv_relaxed and any other hyperV enlightenment change for windowses >= 8 (client) or >= 2012 (server), regardless what host version is running, node included
Confirmed to work as expected (almost). The issue was customer is installing Windows 7 using PXE, and PXE environment runs on some limited version of Windows 8. So the scenario is: guest type = Windows 7 =>> Error Code: OxOOOOOO1E guest type = Windows 8 =>> Windows 7 installs, then BSODs at first boot workaround is to set guest type to Win8, install Win7, change guest type to Windows 7