Bug 1024599

Summary: Windows7 x86 guest with ahci backend hit BSOD when do "hibernate"
Product: Red Hat Enterprise Linux 7 Reporter: Qian Guo <qiguo>
Component: qemu-kvm-rhevAssignee: John Snow <jsnow>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 7.0CC: chayang, dfleytma, ghammer, hhuang, juzhang, knoel, michen, mrezanin, qiguo, rbalakri, sluo, virt-maint, vrozenfe
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: qemu-kvm-rhev-2.1.2-10.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-03-05 09:43:01 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
the screenshot of S4_bsod none

Description Qian Guo 2013-10-30 03:34:42 UTC
Created attachment 817268 [details]
the screenshot of S4_bsod

Description of problem:
Boot a windows 7 32bit guest that based ahci sata disk, when try to do S4 inside, it hit BSOD 

Version-Release number of selected component (if applicable):
# rpm -q qemu-kvm-rhev
qemu-kvm-rhev-1.5.3-10.el7.x86_64
# uname -r
3.10.0-37.el7.x86_64

Inside guest, installed qxl-win-0.1-19

How reproducible:
100%

Steps to Reproduce:
1.Boot a windows7 32bit guest with ahci sata backend:
# /usr/libexec/qemu-kvm -M pc -cpu SandyBridge -enable-kvm -m 4096 -smp 4,sockets=1,cores=4,threads=1 -name win732 -rtc base=localtime,clock=host,driftfix=slew -device ahci,id=ahci0 -drive file=/home/win7x861cp1.qcow2_v3,format=qcow2,if=none,id=drive-ide0-0-0,format=qcow2 -device ide-drive,bus=ahci0.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 -global PIIX4_PM.disable_s3=0 -global PIIX4_PM.disable_s4=0 -spice port=5800,disable-ticketing -vga qxl -global qxl-vga.vram_size=67108864 -monitor stdio -boot menu=on -netdev tap,id=netdev0,vhost=on,fd=3 -device virtio-net-pci,mac=ce:71:f6:64:8f:18,netdev=netdev0,id=net0 -chardev socket,path=/tmp/qga.sock,server,nowait,id=qga0 -device virtio-serial -device virtserialport,chardev=qga0,name=org.qemu.guest_agent.0 3<>/dev/tap3

2.Inside guest, do S4(hibernate)
3.

Actual results:
Guest bsod, then shutdown

Expected results:


Additional info:

Comment 2 Qian Guo 2013-10-30 03:36:25 UTC
Test with virtio-blk with virtio-win-prewhql-0.1-72 , not hit such issue.

Comment 12 Yvugenfi@redhat.com 2014-01-14 13:05:26 UTC
AHCI is not officially released in RHEL7.0. Deferring.

Comment 19 John Snow 2014-09-05 15:33:56 UTC
Hi, I have a patch for this issue which I hope to get upstream in the near future: https://github.com/jnsnow/qemu/commit/fab7e643886278869ae2e176409d002203660a78

If you pull the branch this fix is a part of you should be able to hibernate from W7 successfully.

Otherwise, please wait for this fix to be merged upstream.

Comment 20 John Snow 2014-10-12 09:24:33 UTC
Pending upstream: http://lists.gnu.org/archive/html/qemu-devel/2014-10/msg00130.html
Patches 1 & 2 are the needed minimum to correct this BZ.

Comment 21 John Snow 2014-11-04 17:46:45 UTC
the AHCI device, along with the Q35 machine type as a whole are unsupported in RHEL7. Backporting a fix for this particular issue requires backporting many changes related to Q35 and AHCI and the rest of the IDE layer as a whole, and may be somewhat involved.

The AHCI device remains fairly primitive in the 1.5.3 based versions, and improvements made to the device since rely on many changes that have occurred in the block layer and IDE core layer.

Therefore, I am changing the component of this bug to qemu-kvm-rhev, where this bug is much easier to fix with fewer backports.

Comment 25 Miroslav Rezanina 2014-11-20 11:59:20 UTC
Fix included in qemu-kvm-rhev-2.1.2-10.el7

Comment 27 Chao Yang 2014-12-05 06:38:35 UTC
Reproduced on qemu-kvm-rhev-2.1.2-9.el7.

Steps:
1. refresh install a windows 7 32bit guest with hibernate enabled
2. do hibernate by clicking shutdown -> Hibernate in windows

Actual Result:
Guest BSOD on same code as reporter got.

Verified pass on qemu-kvm-rhev-2.1.2-15.el7. No BSOD any more and guest resumed from hibernate correctly, network connectivity restored. 

CLI:

/usr/libexec/qemu-kvm -M pc -cpu SandyBridge -enable-kvm -m 4096 -smp 4,sockets=1,cores=4,threads=1 -name win732 -rtc base=localtime,clock=host,driftfix=slew -device ahci,id=ahci0 -drive file=/home/test/win7_32.qcow2,format=qcow2,if=none,id=drive-ide0-0-0,format=qcow2 -device ide-drive,bus=ahci0.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 -netdev tap,id=netdev0 -device e1000,mac=ce:71:f6:64:8f:11,netdev=netdev0,id=net0 -global PIIX4_PM.disable_s3=0 -global PIIX4_PM.disable_s4=0 -spice port=5800,disable-ticketing -vga qxl -global qxl-vga.vram_size=67108864 -monitor stdio -boot menu=on -monitor stdio -cdrom en_windows_7_ultimate_with_sp1_x86_dvd_u_677460.iso


Per above, this issue has fixed.

Comment 30 errata-xmlrpc 2015-03-05 09:43:01 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHSA-2015-0624.html