Bug 1023261

Summary: Error Code: 0x0000007F at first reboot after fresh installing Win8-32 guest on AMD system
Product: Red Hat Enterprise Linux 7 Reporter: CongLi <coli>
Component: qemu-kvmAssignee: Yvugenfi <yvugenfi>
Status: CLOSED CURRENTRELEASE QA Contact: Virtualization Bugs <virt-bugs>
Severity: high Docs Contact:
Priority: high    
Version: 7.0CC: acathrow, bcao, coli, hhuang, juzhang, michen, rhod, rkrcmar, shuang, virt-maint, xutian, xwei
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-06-13 09:50:02 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:
Bug Depends On:    
Bug Blocks: 1069309    
Attachments:
Description Flags
screenshot - Win8-32(ErrorCode: 0x0000007F)
none
all screenshot none

Description CongLi 2013-10-25 03:31:25 UTC
Created attachment 815993 [details]
screenshot - Win8-32(ErrorCode: 0x0000007F)

Description of problem:
Error Code: 0x0000007F at first reboot after fresh installing Win8-32 guest on AMD system

Version-Release number of selected component (if applicable):
kernel-3.10.0-35.el7.x86_64
qemu-kvm-rhev-1.5.3-10.el7.x86_64

How reproducible:
100%

Steps to Reproduce:
1. Install a Win8-32 guest:

/home/staf-kvm-devel/autotest-devel/client/tests/virt/qemu/qemu \
    -S \
    -name 'virt-tests-vm1' \
    -nodefaults \
    -chardev socket,id=qmp_id_qmpmonitor1,path=/tmp/monitor-qmpmonitor1-20131025-112044-hE3yvtKW,server,nowait \
    -mon chardev=qmp_id_qmpmonitor1,mode=control \
    -chardev socket,id=serial_id_serial1,path=/tmp/serial-serial1-20131025-112044-hE3yvtKW,server,nowait \
    -device isa-serial,chardev=serial_id_serial1 \
    -chardev socket,id=seabioslog_id_20131025-112044-hE3yvtKW,path=/tmp/seabios-20131025-112044-hE3yvtKW,server,nowait \
    -device isa-debugcon,chardev=seabioslog_id_20131025-112044-hE3yvtKW,iobase=0x402 \
    -device nec-usb-xhci,id=usb1,bus=pci.0,addr=0x4 \
    -device ahci,id=ahci,addr=0x5 \
    -drive file='/home/staf-kvm-devel/autotest-devel/client/tests/virt/shared/data/images/win8-32.qcow2',if=none,id=ahci0,media=disk,cache=none,snapshot=off,format=qcow2,aio=threads \
    -device ide-drive,bus=ahci.0,drive=ahci0 \
    -device e1000,netdev=idsE5sz6,mac='9a:8e:8f:90:91:92',bus=pci.0,addr=0x3,id='id0p31XI' \
    -netdev tap,id=idsE5sz6,fd=22 \
    -m 4096 \
    -smp 4,maxcpus=4,cores=2,threads=1,sockets=2 \
    -cpu 'Opteron_G4',+sep \
    -M pc-i440fx-rhel7.0.0 \
    -drive file='/home/staf-kvm-devel/autotest-devel/client/tests/virt/shared/data/isos/ISO/Win8/en_windows_8_enterprise_x86_dvd_917587.iso',index=1,if=none,id=drive-ide0-0-0,media=cdrom,format=raw \
    -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0 \
    -drive file='/home/staf-kvm-devel/autotest-devel/client/tests/virt/shared/data/isos/windows/winutils.iso',index=2,if=none,id=drive-ide0-0-1,media=cdrom,format=raw \
    -device ide-drive,bus=ide.0,unit=1,drive=drive-ide0-0-1 \
    -drive file='/home/staf-kvm-devel/autotest-devel/client/tests/virt/shared/data/isos/windows/virtio-win.latest_prewhql.iso',index=3,if=none,id=drive-ide0-1-0,media=cdrom,format=raw \
    -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0 \
    -drive file='/home/staf-kvm-devel/autotest-devel/client/tests/virt/shared/data/images/win8-32/answer.vfd',if=none,id=fdc0-0-0,media=disk,readonly=off,format=raw \
    -global isa-fdc.driveA=fdc0-0-0 \
    -device usb-tablet,id=usb-tablet1,bus=usb1.0,port=1 \
    -spice port=3000,password=123456,addr=0,tls-port=3200,x509-dir=/tmp/spice_x509d,tls-channel=main,tls-channel=inputs,image-compression=auto_glz,zlib-glz-wan-compression=auto,streaming-video=all,agent-mouse=on,playback-compression=on,ipv4 \
    -vga qxl \
    -global qxl-vga.vram_size=33554432 \
    -rtc base=localtime,clock=host,driftfix=slew  \
    -boot order=cdn,once=d,menu=off   \
    -device virtio-serial-pci,id=virtio-serial0 \
    -device intel-hda,id=intel-hda0 \
    -device hda-duplex,id=hda-duplex0 \
    -enable-kvm

2.
3.

Actual results:
Error Code: 0x0000007F (the screenshot will be attached)
Parameters:
0x0000000D
0x00000000
0x00000000
0x00000000

Expected results:
Win8-32 guest installation successful

Additional info:
1. cpuinfo:
processor	: 23
vendor_id	: AuthenticAMD
cpu family	: 21
model		: 1
model name	: AMD Opteron(TM) Processor 6234                 
stepping	: 2
microcode	: 0x6000626
cpu MHz		: 2400.113
cache size	: 2048 KB
physical id	: 1
siblings	: 12
core id		: 5
cpu cores	: 6
apicid		: 75
initial apicid	: 43
fpu		: yes
fpu_exception	: yes
cpuid level	: 13
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid amd_dcm aperfmperf pni pclmulqdq monitor ssse3 cx16 sse4_1 sse4_2 popcnt aes xsave avx lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs xop skinit wdt lwp fma4 nodeid_msr topoext perfctr_core perfctr_nb arat cpb hw_pstate npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold
bogomips	: 4799.75
TLB size	: 1536 4K pages
clflush size	: 64
cache_alignment	: 64
address sizes	: 48 bits physical, 48 bits virtual
power management: ts ttp tm 100mhzsteps hwpstate cpb

2. There is a same bug on RHEL6: 
Bug 1002473 - Error Code: 0x0000007F at first reboot after fresh installing windows 8 32bit guest on AMD system

Comment 1 CongLi 2013-10-25 03:37:41 UTC
Created attachment 815994 [details]
all screenshot

Comment 3 CongLi 2013-10-25 03:40:17 UTC
(In reply to CongLi from comment #1)
> Created attachment 815994 [details]
> all screenshot


Attached all screenshots, can get installation info from it. I hope it will be helpful.

Comment 4 Yvugenfi@redhat.com 2013-10-31 15:29:46 UTC
Are you able to boot into the guest? If yes, please provide compressed dump file (mini dump?).

Thanks,
Yan.

Comment 6 CongLi 2014-02-27 10:31:20 UTC
(In reply to Yan Vugenfirer from comment #4)
> Are you able to boot into the guest? If yes, please provide compressed dump
> file (mini dump?).

Hi Yan,

I can't reproduce this bug on the following version on the same machine:
qemu-kvm-1.5.3-50.el7.x86_64
kernel-3.10.0-97.el7.x86_64

And I have downgraded qemu and kernel to the version in comment 0, this bug can be reproduced.
kernel-3.10.0-35.el7.x86_64
qemu-kvm-1.5.3-10.el7.x86_64

If hit this again, I will update it. 

Thanks,
Cong

Comment 7 Yvugenfi@redhat.com 2014-02-27 11:24:20 UTC
Thanks for the update.

Comment 8 CongLi 2014-03-14 06:32:07 UTC
Here are the test results with more bisection:

1. kernel-3.10.0-44.el7.x86_64    --> pass
   qemu-kvm-1.5.3-15.el7.x86_64

2. kernel-3.10.0-44.el7.x86_64    --> pass
   qemu-kvm-1.5.3-14.el7.x86_64   

4. kernel-3.10.0-43.el7.x86_64    --> pass
   qemu-kvm-1.5.3-15.el7.x86_64 

4. kernel-3.10.0-43.el7.x86_64    --> fail
   qemu-kvm-1.5.3-14.el7.x86_64   


This bug seems both kernel and qemu related, for need to downgrade both of them can reproduce it. 

Thanks,
Cong

Comment 9 CongLi 2014-03-14 09:43:48 UTC
(In reply to CongLi from comment #8)
> Here are the test results with more bisection:
> 
> 1. kernel-3.10.0-44.el7.x86_64    --> pass
>    qemu-kvm-1.5.3-15.el7.x86_64
> 
> 2. kernel-3.10.0-44.el7.x86_64    --> pass
>    qemu-kvm-1.5.3-14.el7.x86_64   
> 
> 4. kernel-3.10.0-43.el7.x86_64    --> pass
>    qemu-kvm-1.5.3-15.el7.x86_64 
> 
> 4. kernel-3.10.0-43.el7.x86_64    --> fail
>    qemu-kvm-1.5.3-14.el7.x86_64   
> 
> 
> This bug seems both kernel and qemu related, for need to downgrade both of
> them can reproduce it. 

The problem is -cpu 'Opteron_G4'.

1. 'Opteron_G2' --> pass
2. 'Opteron_G3' --> pass
3. 'Opteron_G4' --> fail
4. 'Opteron_G5' --> fail

Although this bug can't be reproduced on RHEL.7 host, it's still existed on RHEL.6 host.
I don't know what's the relationship between "-cpu 'Opteron_G4'" and the fix version, I hope it's maybe helpful for the analyze on RHEL.6.

Thanks,
Cong

Comment 12 Radim Krčmář 2014-03-18 16:20:01 UTC
The bisection points towards XSAVE:
 - G2 and G3 don't have CPUID_EXT_XSAVE, but G4 and G5 do
 - qemu-kvm-1.5.3-15.el7 re-computes what is XSAVEd[1]
 - kernel-3.10.0-44.el7 does a similar thing[2]

I don't see anything like that in RHEL6, so a backport should fix this issue there as well.

---
1: [2/2] 1a92e9b x86: cpuid: reconstruct leaf 0Dh data
2: [1/5] 0163873 [virt] kvm: mask unsupported XSAVE entries from leaf 0Dh index 0

Comment 13 Ludek Smid 2014-06-13 09:50:02 UTC
This request was resolved in Red Hat Enterprise Linux 7.0.

Contact your manager or support representative in case you have further questions about the request.