KVM: x86: move steal time initialization to vcpu entry time
authorMarcelo Tosatti <mtosatti@redhat.com>
Wed, 14 Oct 2015 22:33:09 +0000 (19:33 -0300)
committerDanny Wood <danwood76@gmail.com>
Tue, 29 Jan 2019 13:12:26 +0000 (13:12 +0000)
commit052a142fd7a8edba0b13ead4abe7d396e0a2e3df
tree532dc78257580578ababbaf92749f8cadc727adc
parentdd4a35a33de76f3ea4172be1ab9a471c18a0eb75
KVM: x86: move steal time initialization to vcpu entry time

commit 7cae2bedcbd4680b155999655e49c27b9cf020fa upstream.

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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/x86/kvm/x86.c