Red Hat Bugzilla – Bug 542378
fix suspend to disk of virtio block
Last modified: 2013-01-09 17:04:50 EST
This request was evaluated by Red Hat Product Management for inclusion in a Red
Hat Enterprise Linux major release. Product Management has requested further
review of this request by Red Hat Engineering, for potential inclusion in a Red
Hat Enterprise Linux Major release. This request is not yet committed for
*** Bug 533342 has been marked as a duplicate of this bug. ***
On RHEL-6, the KVM userspace package is named "qemu-kvm". Moving bug to the right component.
*** Bug 582519 has been marked as a duplicate of this bug. ***
Can QE try it on rhel6?
On resume new kernel boots and uses virtio-blk to load suspended OS image,
then control of virtio-blk device should be transfered from boot kernel
to resumed kernel. xen-blkfront.c for instance has function blkfront_resume() with comment:
* We are reconnecting to the backend, due to a suspend/resume, or a backend
* driver restart. We tear down our blkif structure and recreate it, but
* leave the device-layer structures intact so that this is transparent to the
* rest of the kernel.
I haven't seen such code in virtio-blk last time I looked.
Err. Just making sure I'm on the same page. This is for doing suspend to disk of the guest, not the host? In that case my previous comments don't apply and we'll have look at PM support in virtio_blk.
Correct. This is about suspending _guest_.
*** Bug 591585 has been marked as a duplicate of this bug. ***
*** This bug has been marked as a duplicate of bug 609286 ***
Each virtio driver needs to be updated to handle PM, so re-opening this.
This request was evaluated by Red Hat Product Management for inclusion
in a Red Hat Enterprise Linux maintenance release. Product Management has
requested further review of this request by Red Hat Engineering, for potential
inclusion in a Red Hat Enterprise Linux Update release for currently deployed
products. This request is not yet committed for inclusion in an Update release.
Patch(es) available on kernel-2.6.32-231.el6
Verified on kernel-2.6.32-262.el6, and this bug does not exist.
1. Boot guest with virtio serial device:
# /usr/libexec/qemu-kvm -M rhel6.3.0 -cpu Conroe -enable-kvm -m 2G -smp
2,sockets=1,cores=2,threads=1 -name rhel6.3 -uuid
4c84db67-faf8-4498-9829-19a3d6431d9d -rtc base=localtime,driftfix=slew -drive
-netdev tap,id=hostnet0,script=/etc/qemu-ifup -device
-usb -device usb-tablet,id=input0 -boot c -monitor stdio -drive
ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -vnc :10 -qmp
tcp:0:4444,server,nowait -bios /usr/share/seabios/bios-pm.bin -chardev
2. Suspend guest to disk
3. Resume guest by booting up with the same command line.
4. After resume, check if guest works well. For example, network ping available, no crash, hang happened, etc.
5. Repeat step 2~4 for several times.
Result: Guest works well to suspend to disk with virtio block device.
So, this issue is fixed.
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.