From: Izik E. <iz...@qu...> - 2007-11-13 12:09:59
|
Glauber de Oliveira Costa wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Dong, Eddie escreveu: > >>> +static void kvm_write_guest_time(struct kvm_vcpu *vcpu) +{ >>> + 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); >>> >> Do we need to disable preemption here? >> > After thinking for a little while, you are theoretically right. > 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 > note that you cant call to kvm_write_guest with preemption disabled (witch you do few lines below) |