[Bug 191481] New: Virtual machine CPU counters are broken forever after live migration to system with "steal time overflow" KVM bug

bugzilla-daemon
2016-12-29T16:21:45Z

Bug ID: 191481
Summary: Virtual machine CPU counters are broken forever after
live migration to system with "steal time overflow"
KVM bug
Product: Virtualization
Version: unspecified
Kernel Version: Found since 3.18.31, still resides in latest ubuntu
3.19..4.8 builds
Hardware: Intel
OS: Linux
Tree: Mainline
Status: NEW
Severity: normal
Priority: P1
Component: kvm
Assignee: virtualization_kvm@kernel-bugs.osdl.org
Reporter: ds@vo-ix.ru
Regression: No

All (at least, compiled for ubuntu) kernels had the stolen time overflow bug,
described in links below:
http://lists.gnu.org/archive/html/qemu-devel/2015-06/msg01295.html
https://bugs.launchpad.net/linux/+bug/1494350

It was fixed (in ubuntu) on summer 2016, so till now still exists affected
hosts.

Kernels built before Apr 2016 bypass "%still" counter as is, so sar output
likes this:
11:11:15 AM CPU %user %nice %system %iowait %steal %idle
11:10:48 AM all 0.00 0.00 0.50 0.00 0.00 99.50
11:10:49 AM all 0.00 0.00 0.00 0.00
18823208238479134720.00 203.06
11:10:50 AM all 0.00 0.00 0.00 0.00 0.00 100.00

While all newer kernel counters I've been tested sticks:
11:11:15 AM CPU %user %nice %system %iowait %steal %idle
07:07:56 AM all 0.50 0.00 0.00 0.00 0.00 99.50
07:07:57 AM all 0.00 0.00 0.50 0.00 0.00 99.50
07:07:58 AM all 0.00 0.00 0.50 0.00 0.00 99.50
07:07:59 AM all 0.00 0.00 0.00 0.00 100.00 0.00
07:08:00 AM all 0.00 0.00 0.00 0.00 100.00 0.00
07:08:01 AM all 0.00 0.00 0.00 0.00 100.00 0.00

%steal is always 100% after migration.

I slightly suspect that the reason resides in commit
0185604c2d82c560dab2f2933a18f797e74ab5a8.