|
@@ -2002,22 +2002,8 @@ static void kvmclock_reset(struct kvm_vcpu *vcpu)
|
|
|
vcpu->arch.pv_time_enabled = false;
|
|
|
}
|
|
|
|
|
|
-static void accumulate_steal_time(struct kvm_vcpu *vcpu)
|
|
|
-{
|
|
|
- u64 delta;
|
|
|
-
|
|
|
- if (!(vcpu->arch.st.msr_val & KVM_MSR_ENABLED))
|
|
|
- return;
|
|
|
-
|
|
|
- delta = current->sched_info.run_delay - vcpu->arch.st.last_steal;
|
|
|
- vcpu->arch.st.last_steal = current->sched_info.run_delay;
|
|
|
- vcpu->arch.st.accum_steal = delta;
|
|
|
-}
|
|
|
-
|
|
|
static void record_steal_time(struct kvm_vcpu *vcpu)
|
|
|
{
|
|
|
- accumulate_steal_time(vcpu);
|
|
|
-
|
|
|
if (!(vcpu->arch.st.msr_val & KVM_MSR_ENABLED))
|
|
|
return;
|
|
|
|
|
@@ -2025,9 +2011,10 @@ static void record_steal_time(struct kvm_vcpu *vcpu)
|
|
|
&vcpu->arch.st.steal, sizeof(struct kvm_steal_time))))
|
|
|
return;
|
|
|
|
|
|
- vcpu->arch.st.steal.steal += vcpu->arch.st.accum_steal;
|
|
|
+ vcpu->arch.st.steal.steal += current->sched_info.run_delay -
|
|
|
+ vcpu->arch.st.last_steal;
|
|
|
+ vcpu->arch.st.last_steal = current->sched_info.run_delay;
|
|
|
vcpu->arch.st.steal.version += 2;
|
|
|
- vcpu->arch.st.accum_steal = 0;
|
|
|
|
|
|
kvm_write_guest_cached(vcpu->kvm, &vcpu->arch.st.stime,
|
|
|
&vcpu->arch.st.steal, sizeof(struct kvm_steal_time));
|