Bug 1402509

Summary: virtio-balloon stats virtqueue does not migrate properly
Product: Red Hat Enterprise Linux 7 Reporter: Marcel Kolaja <mkolaja>
Component: qemu-kvm-rhevAssignee: Ladi Prosek <lprosek>
Status: CLOSED ERRATA QA Contact: Yumei Huang <yuhuang>
Severity: unspecified Docs Contact:
Priority: high    
Version: 7.3CC: ailan, chayang, huding, jherrman, juzhang, knoel, lprosek, qizhu, qzhang, rcadova, snagar, stefanha, virt-maint
Target Milestone: rcKeywords: Regression, ZStream
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: qemu-kvm-rhev-2.6.0-28.el7_3.2 Doc Type: Bug Fix
Doc Text:
Prior to this update, migrated guest virtual machines in some cases entered an inconsistent state and terminated unexpectedly after the migration finished due to incorrect handling of the virtqueue. With this update, virtqueue handling on migration is fixed, and no longer causes problems after guest migration.
Story Points: ---
Clone Of: 1373600 Environment:
Last Closed: 2017-01-17 20:10:41 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1373600    
Bug Blocks:    

Description Marcel Kolaja 2016-12-07 17:25:41 UTC
This bug has been copied from bug #1373600 and has been proposed
to be backported to 7.3 z-stream (EUS).

Comment 5 Miroslav Rezanina 2016-12-09 10:30:36 UTC
Fix included in qemu-kvm-rhev-2.6.0-28.el7_3.2

Comment 7 Yumei Huang 2016-12-22 06:23:53 UTC
Reproduce:
qemu-kvm-rhev-2.6.0-28.el7
kernel-3.10.0-534.el7.x86_64

Steps:
1. boot guest with virtio balloon device
# /usr/libexec/qemu-kvm -m 4G -smp 4 \

-drive file=rhel73-64-virtio.qcow2,format=qcow2,if=none,cache=none,id=drive0 -device virtio-blk-pci,drive=drive0,id=blk-pci0 \

-device virtio-balloon-pci,id=balloon0,guest-stats-polling-interval=2 \

-vnc :1  -monitor stdio -qmp tcp:0:4444,server,nowait

2. check guest stats from qmp
{"execute":"qmp_capabilities"}
{"return": {}}

{ "execute":"qom-get", "arguments":{"path":'/machine/peripheral/balloon0', "property": "guest-stats" } }
{"return": {"stats": {"stat-swap-out": 0, "stat-available-memory": 3279396864, "stat-free-memory": 3034173440, "stat-minor-faults": 1140989, "stat-major-faults": 1113, "stat-total-memory": 3974823936, "stat-swap-in": 0}, "last-update": 1482386437}}

3. migrate guest to dst host 

4. check guest stats again after migration 
{"execute":"qmp_capabilities"}
{"return": {}}

{ "execute":"qom-get", "arguments":{"path":'/machine/peripheral/balloon0', "property": "guest-stats" } }
{"return": {"stats": {"stat-swap-out": -1, "stat-available-memory": -1, "stat-free-memory": -1, "stat-minor-faults": -1, "stat-major-faults": -1, "stat-total-memory": -1, "stat-swap-in": -1}, "last-update": 0}}

The stats statistics return -1, so the bug is reproduced. 

Verify:
qemu-kvm-rhev-2.6.0-28.el7_3.2
kernel-3.10.0-534.el7.x86_64

With same steps as above, after step 4, the stats collection works well:

{"execute":"qmp_capabilities"}
{"return": {}}
{ "execute":"qom-get", "arguments":{"path":'/machine/peripheral/balloon0', "property": "guest-stats" } }
{"return": {"stats": {"stat-swap-out": 0, "stat-available-memory": 3266523136, "stat-free-memory": 3149885440, "stat-minor-faults": 1104492, "stat-major-faults": 1084, "stat-total-memory": 3974823936, "stat-swap-in": 0}, "last-update": 1482387680}}

So the bug is fixed.

Comment 9 errata-xmlrpc 2017-01-17 20:10:41 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/RHBA-2017-0115.html