Messages in this thread | | | Date | Thu, 7 Jul 2016 13:21:21 +0200 | From | Peter Zijlstra <> | Subject | Re: [PATCH v2 0/4] implement vcpu preempted check |
| |
On Thu, Jul 07, 2016 at 11:42:15AM +0200, Peter Zijlstra wrote: > +static void update_steal_time_preempt(struct kvm_vcpu *vcpu) > +{ > + struct kvm_steal_time *st; > + > + if (!(vcpu->arch.st.msr_val & KVM_MSR_ENABLED)) > + return; > + > + if (unlikely(kvm_read_guest_cached(vcpu->kvm, &vcpu->arch.st.stime, > + &vcpu->arch.st.steal, sizeof(struct kvm_steal_time)))) > + return; > + > + st = &vcpu->arch.st.steal; > + > + st->pad[KVM_ST_PAD_PREEMPT] = 1; /* we've stopped running */
So maybe have this be:
... = kvm_vcpu_running();
That avoids marking the vcpu preempted when we do hlt and such.
> + kvm_write_guest_cached(vcpu->kvm, &vcpu->arch.st.stime, > + st, sizeof(struct kvm_steal_time)); > +}
| |