Bug 1044376

Summary: VM will reboot directly instead of quit after suspend to memory (S4) with VF vfio-pci assigned
Product: Red Hat Enterprise Linux 7 Reporter: Sibiao Luo <sluo>
Component: qemu-kvmAssignee: Alex Williamson <alex.williamson>
Status: CLOSED WONTFIX QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.0CC: alex.williamson, chayang, hhuang, juli, juzhang, knoel, michen, qzhang, rbalakri, virt-maint, xfu
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: 2015-03-05 21:46:58 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:
Attachments:
Description Flags
guest_kernel_logs. none

Description Sibiao Luo 2013-12-18 08:49:21 UTC
Description of problem:
boot guest with 82599 VF vfio-pci assigned, then do S4. guest will reboot instead of quit after suspend to memory (S4), both rhel6.5 and rhel7.0 guest can hit it.
BTW, If remove the vfio-pci assigned from qemu-kvm command line that did not hit such issue.

Version-Release number of selected component (if applicable):
host info:
3.10.0-61.el7.x86_64
qemu-kvm-rhev-1.5.3-21.el7.x86_64
seabios-bin-1.7.2.2-4.el7.noarch
guest info:
rhel6.5.z-32bit: kernel-2.6.32-431.2.1.el6
rhel7.0 64bit:   kernel-3.10.0-61.el7.x86_64

How reproducible:
100%

Steps to Reproduce:
1.boot guest with 82599 VF via vfio.
2.do S4 in guest.
# pm-hibernate

Actual results:
after step 2, guest will reboot instead of quit after suspend to memory (S4). I will attach the guest kernel log later.

Expected results:
it should quit after S4 and can be resumed it via the same cli.

Additional info:
# /usr/libexec/qemu-kvm -M pc -S -cpu SandyBridge -enable-kvm -m 2048 -smp 4,sockets=2,cores=2,threads=1 -no-kvm-pit-reinjection -usb -device usb-tablet,id=input0 -name sluo-test -uuid 990ea161-6b67-47b2-b803-19fb01d30d30 -rtc base=localtime,clock=host,driftfix=slew -device virtio-serial-pci,id=virtio-serial0,max_ports=16,vectors=0,bus=pci.0,addr=0x3 -chardev socket,id=channel1,path=/tmp/helloworld1,server,nowait -device virtserialport,chardev=channel1,name=com.redhat.rhevm.vdsm,bus=virtio-serial0.0,id=port1 -chardev socket,id=channel2,path=/tmp/helloworld2,server,nowait -device virtserialport,chardev=channel2,name=com.redhat.rhevm.vdsm,bus=virtio-serial0.0,id=port2 -drive file=/home/RHEL-7.0-20131127.1_Server_x86_64.qcow2,if=none,id=drive-system-disk,cache=none,format=qcow2,aio=native,werror=stop,rerror=stop -device virtio-scsi-pci,id=scsi0,bus=pci.0,addr=0x4,num_queues=4 -device scsi-hd,drive=drive-system-disk,bus=scsi0.0,id=system-disk,bootindex=1 -netdev tap,id=hostnet0,vhost=on,script=/etc/qemu-ifup -device virtio-net-pci,netdev=hostnet0,id=virtio-net-pci0,mac=00:01:02:03:04:05,bus=pci.0,addr=0x5 -device virtio-balloon-pci,id=ballooning,bus=pci.0,addr=0x6 -global PIIX4_PM.disable_s3=0 -global PIIX4_PM.disable_s4=0 -k en-us -boot menu=on -qmp tcp:0:4444,server,nowait -serial unix:/tmp/ttyS0,server,nowait -vnc :2 -spice disable-ticketing,port=5932 -monitor stdio -device vfio-pci,host=05:13.0,id=hostnet_VF

Comment 1 Sibiao Luo 2013-12-18 08:50:05 UTC
Created attachment 838183 [details]
guest_kernel_logs.

Comment 3 Alex Williamson 2014-11-03 19:57:50 UTC
AFAIK, S3/S4 of assigned devices isn't actually supported, especially of a VF where the driver has likely never seen suspend testing even on bare metal.