Bug 1023274

Summary: Qemu core dump when install Win8.1-32 guest & BSOD (ErrorCode:0xc0000001) on AMD machine
Product: Red Hat Enterprise Linux 7 Reporter: CongLi <coli>
Component: qemu-kvmAssignee: Yvugenfi <yvugenfi>
Status: CLOSED CURRENTRELEASE QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.0CC: acathrow, coli, hhuang, juzhang, michen, rhod, 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-02-11 10:26:19 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
screenshot - Win8.1-32(ErrorCode: 0xc0000001)
none
all screenshot none

Description CongLi 2013-10-25 05:37:30 UTC
Created attachment 816006 [details]
screenshot - Win8.1-32(ErrorCode: 0xc0000001)

(gdb) bt
#0  0x00007ff621a45999 in raise () from /lib64/libc.so.6
#1  0x00007ff621a470a8 in abort () from /lib64/libc.so.6
#2  0x00007ff6268aa0fc in acpi_gpe_ioport_get_ptr (addr=<optimized out>, ar=<optimized out>) at hw/acpi/core.c:587
#3  acpi_gpe_ioport_readb (ar=<optimized out>, addr=<optimized out>) at hw/acpi/core.c:614
#4  0x00007ff6268ab270 in gpe_readb (opaque=<optimized out>, addr=<optimized out>, width=<optimized out>)
    at hw/acpi/piix4.c:519
#5  0x00007ff626a135ac in memory_region_read_accessor (opaque=0x7ff627bae948, addr=<optimized out>, 
    value=0x7ff6191c4b60, size=1, shift=8, mask=255) at /usr/src/debug/qemu-1.5.3/memory.c:316
#6  0x00007ff626a12f12 in access_with_adjusted_size (addr=addr@entry=3, value=value@entry=0x7ff6191c4b60, size=4, 
    access_size_min=<optimized out>, access_size_max=<optimized out>, 
    access=access@entry=0x7ff626a13560 <memory_region_read_accessor>, opaque=opaque@entry=0x7ff627bae948)
    at /usr/src/debug/qemu-1.5.3/memory.c:364
#7  0x00007ff626a14518 in memory_region_iorange_read (iorange=0x7ff627badec0, offset=3, width=4, 
    data=0x7ff6191c4b60) at /usr/src/debug/qemu-1.5.3/memory.c:409
#8  0x00007ff626a0e3c7 in ioport_readl_thunk (opaque=<optimized out>, addr=<optimized out>)
    at /usr/src/debug/qemu-1.5.3/ioport.c:204
#9  0x00007ff626a0ecc5 in ioport_read (address=45027, index=2) at /usr/src/debug/qemu-1.5.3/ioport.c:70
#10 cpu_inl (addr=addr@entry=45027) at /usr/src/debug/qemu-1.5.3/ioport.c:327
#11 0x00007ff626a11cd9 in kvm_handle_io (count=1, size=4, direction=0, data=<optimized out>, port=45027)
    at /usr/src/debug/qemu-1.5.3/kvm-all.c:1491
#12 kvm_cpu_exec (env=env@entry=0x7ff627b11590) at /usr/src/debug/qemu-1.5.3/kvm-all.c:1649
#13 0x00007ff6269bd005 in qemu_kvm_cpu_thread_fn (arg=0x7ff627b11590) at /usr/src/debug/qemu-1.5.3/cpus.c:793
#14 0x00007ff624a0fde3 in start_thread () from /lib64/libpthread.so.0
#15 0x00007ff621b061ad in clone () from /lib64/libc.so.6
(gdb) q

Comment 1 CongLi 2013-10-25 05:39:05 UTC
Description of problem:
Qemu core dump when install Win8.1-32 guest & BSOD (ErrorCode:0xc0000001) on AMD machine

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:
1/5

Steps to Reproduce:
1. Install a Win8.1-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-20131024-213101-5KiBtAty,server,nowait \
    -mon chardev=qmp_id_qmpmonitor1,mode=control \
    -chardev socket,id=serial_id_serial1,path=/tmp/serial-serial1-20131024-213101-5KiBtAty,server,nowait \
    -device isa-serial,chardev=serial_id_serial1 \
    -chardev socket,id=seabioslog_id_20131024-213101-5KiBtAty,path=/tmp/seabios-20131024-213101-5KiBtAty,server,nowait \
    -device isa-debugcon,chardev=seabioslog_id_20131024-213101-5KiBtAty,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=idycb1Z8,mac='9a:71:72:73:74:75',bus=pci.0,addr=0x3,id='idA28LYo' \
    -netdev tap,id=idycb1Z8,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.1/en_windows_8.1_preview_x86_dvd_2358833.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.1-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:
1. Qemu core dump
2. Win8.1-32 guest BSOD:
ErrorCode:0xc0000001

Expected results:
Qemu works well & Win8.1-32 guest installation successful

Additional info:
1. gdb:
(gdb) bt
#0  0x00007ff621a45999 in raise () from /lib64/libc.so.6
#1  0x00007ff621a470a8 in abort () from /lib64/libc.so.6
#2  0x00007ff6268aa0fc in acpi_gpe_ioport_get_ptr (addr=<optimized out>, ar=<optimized out>) at hw/acpi/core.c:587
#3  acpi_gpe_ioport_readb (ar=<optimized out>, addr=<optimized out>) at hw/acpi/core.c:614
#4  0x00007ff6268ab270 in gpe_readb (opaque=<optimized out>, addr=<optimized out>, width=<optimized out>)
    at hw/acpi/piix4.c:519
#5  0x00007ff626a135ac in memory_region_read_accessor (opaque=0x7ff627bae948, addr=<optimized out>, 
    value=0x7ff6191c4b60, size=1, shift=8, mask=255) at /usr/src/debug/qemu-1.5.3/memory.c:316
#6  0x00007ff626a12f12 in access_with_adjusted_size (addr=addr@entry=3, value=value@entry=0x7ff6191c4b60, size=4, 
    access_size_min=<optimized out>, access_size_max=<optimized out>, 
    access=access@entry=0x7ff626a13560 <memory_region_read_accessor>, opaque=opaque@entry=0x7ff627bae948)
    at /usr/src/debug/qemu-1.5.3/memory.c:364
#7  0x00007ff626a14518 in memory_region_iorange_read (iorange=0x7ff627badec0, offset=3, width=4, 
    data=0x7ff6191c4b60) at /usr/src/debug/qemu-1.5.3/memory.c:409
#8  0x00007ff626a0e3c7 in ioport_readl_thunk (opaque=<optimized out>, addr=<optimized out>)
    at /usr/src/debug/qemu-1.5.3/ioport.c:204
#9  0x00007ff626a0ecc5 in ioport_read (address=45027, index=2) at /usr/src/debug/qemu-1.5.3/ioport.c:70
#10 cpu_inl (addr=addr@entry=45027) at /usr/src/debug/qemu-1.5.3/ioport.c:327
#11 0x00007ff626a11cd9 in kvm_handle_io (count=1, size=4, direction=0, data=<optimized out>, port=45027)
    at /usr/src/debug/qemu-1.5.3/kvm-all.c:1491
#12 kvm_cpu_exec (env=env@entry=0x7ff627b11590) at /usr/src/debug/qemu-1.5.3/kvm-all.c:1649
#13 0x00007ff6269bd005 in qemu_kvm_cpu_thread_fn (arg=0x7ff627b11590) at /usr/src/debug/qemu-1.5.3/cpus.c:793
#14 0x00007ff624a0fde3 in start_thread () from /lib64/libpthread.so.0
#15 0x00007ff621b061ad in clone () from /lib64/libc.so.6
(gdb) q

2. 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

3. When reproduce this bug, hit another bug with different error code:
Bug 1023268 - Error Code: 0x0000000A at first reboot after fresh installing Win8.1-32 guest on AMD system

Comment 3 CongLi 2013-10-25 05:41:31 UTC
And Win8.1-32 also hit BSOD at first reboot after fresh installing

Comment 5 CongLi 2013-10-25 06:17:07 UTC
Created attachment 816011 [details]
all screenshot

Comment 6 Yvugenfi@redhat.com 2014-01-14 14:42:48 UTC
Hi,

There are several bugs with fails during installations marked as failures on AMD machine. 

We would like to understand separate possible culprits for the failures.

The current list is:
1. AMD host
2. AHCI controller (and we know that there are some issues with it and it is not fully  supported on RHEL7.0).
3. xhci USB controller.

Could you run the tests when those parameters are tested separately?


Thanks,
Yan.

Comment 7 CongLi 2014-02-11 08:47:11 UTC
(In reply to Yan Vugenfirer from comment #6)

Hi Yan,

1. This bug can't be reproduced on version:
kernel-3.10.0-84.el7.x86_64
qemu-kvm-1.5.3-45.el7.x86_64

2. I have downgraded the kernel and qemu to the following version which are same as comment 0, this bug can be reproduced.
kernel-3.10.0-35.el7.x86_64
qemu-kvm-1.5.3-10.el7.x86_64

2.1 AMD host (ide & no xhci controller)
  2.1.1 AMD host can hit this bug
  2.1.2 Intel host didn't hit this problem on the following conditions:
        (1. ahci 2. xhci 3. ide & no xhci)    

2.2 AHCI controller (no xhci controller)
    change to ide instead of ahci:
    -drive file='/home/staf-kvm-devel/autotest-devel/client/tests/virt/shared/data/images/win8-32.qcow2',if=none,id=drive-ide0-1-1,media=disk,cache=none,snapshot=off,format=qcow2,aio=threads \
    -device ide-drive,bus=ide.1,unit=1,drive=drive-ide0-1-1 \
  
  2.2.1 AMD host
    can hit this bug 
  2.2.2 Intel host
    can't hit this bug


2.3 xhci USB controller (no ahci)
    remove xhci usb, can hit this bug
  2.3.1 AMD host
    can hit this bug 
  2.3.2 Intel host
    can't hit this bug

From the above info, I think it's AMD machine related.

It needs to downgrade both kernel and qemu version to reproduce this bug, have no idea about which component is wrong. 

Anyway, this bug can't be reproduced w/ the newest version.

If hit it again, I will update the bug.

Thanks,
Cong

Comment 8 Yvugenfi@redhat.com 2014-02-11 10:26:19 UTC
Hi Cong,

Thank you very much!

Closing according to comment #7:

1. This bug can't be reproduced on version:
kernel-3.10.0-84.el7.x86_64
qemu-kvm-1.5.3-45.el7.x86_64

Best regards,
Yan.