-----BEGIN PGP SIGNED MESSAGE-----note that you cant call to kvm_write_guest with preemption disabled (witch you do few lines below)
Hash: SHA1
Dong, Eddie escreveu:
After thinking for a little while, you are theoretically right.+static void kvm_write_guest_time(struct kvm_vcpu *vcpu) +{Do we need to disable preemption here?
+ struct timespec ts;
+ int r;
+
+ if (!vcpu->clock_gpa)
+ return;
+
+ /* Updates version to the next odd number, indicating
we're writing */
+ vcpu->hv_clock.version++;
+ kvm_write_guest(vcpu->kvm, vcpu->clock_gpa,
&vcpu->hv_clock, PAGE_SIZE);
+
+ kvm_get_msr(vcpu, MSR_IA32_TIME_STAMP_COUNTER,
+ &vcpu->hv_clock.last_tsc);
+
+ ktime_get_ts(&ts);
In the current state, we could even be preempted between all operations
;-) Maybe after avi's suggestion of moving the call to it it will end up
in a preempt safe region, but anyway, it's safer to add the preempt
markers here.
I'll put it in next version, thanks