KVM: x86: move steal time initialization to vcpu entry time
authorMarcelo Tosatti <mtosatti@redhat.com>
Fri, 11 Mar 2016 08:53:11 +0000 (16:53 +0800)
committerSasha Levin <sasha.levin@oracle.com>
Mon, 14 Mar 2016 16:42:32 +0000 (12:42 -0400)
commitb5c41530ef442dba667c4d964c722e8157f7da72
treeabc695066486a4055354397e6991652504337b07
parent325940deb74b23351f507d5f1e1e01592c1efa1c
KVM: x86: move steal time initialization to vcpu entry time

[ Upstream commit 7cae2bedcbd4680b155999655e49c27b9cf020fa ]

As reported at https://bugs.launchpad.net/qemu/+bug/1494350,
it is possible to have vcpu->arch.st.last_steal initialized
from a thread other than vcpu thread, say the iothread, via
KVM_SET_MSRS.

Which can cause an overflow later (when subtracting from vcpu threads
sched_info.run_delay).

To avoid that, move steal time accumulation to vcpu entry time,
before copying steal time data to guest.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Reviewed-by: David Matlack <dmatlack@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
arch/x86/kvm/x86.c