mirror of
https://github.com/torvalds/linux.git
synced 2024-11-25 05:32:00 +00:00
KVM: PPC: Use exported tb_to_ns() function in decrementer emulation
This changes the KVM code that emulates the decrementer function to do the conversion of decrementer values to time intervals in nanoseconds by calling the tb_to_ns() function exported by the powerpc timer code, in preference to open-coded arithmetic using values from the decrementer_clockevent struct. Similarly, the HV-KVM code that did the same conversion using arithmetic on tb_ticks_per_sec also now uses tb_to_ns(). Signed-off-by: Paul Mackerras <paulus@ozlabs.org> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
772b039fd9
commit
c43befca86
@ -2160,8 +2160,7 @@ static void kvmppc_set_timer(struct kvm_vcpu *vcpu)
|
||||
kvmppc_core_prepare_to_enter(vcpu);
|
||||
return;
|
||||
}
|
||||
dec_nsec = (vcpu->arch.dec_expires - now) * NSEC_PER_SEC
|
||||
/ tb_ticks_per_sec;
|
||||
dec_nsec = tb_to_ns(vcpu->arch.dec_expires - now);
|
||||
hrtimer_start(&vcpu->arch.dec_timer, dec_nsec, HRTIMER_MODE_REL);
|
||||
vcpu->arch.timer_running = 1;
|
||||
}
|
||||
|
@ -61,11 +61,10 @@ void kvmppc_emulate_dec(struct kvm_vcpu *vcpu)
|
||||
|
||||
dec_time = vcpu->arch.dec;
|
||||
/*
|
||||
* Guest timebase ticks at the same frequency as host decrementer.
|
||||
* So use the host decrementer calculations for decrementer emulation.
|
||||
* Guest timebase ticks at the same frequency as host timebase.
|
||||
* So use the host timebase calculations for decrementer emulation.
|
||||
*/
|
||||
dec_time = dec_time << decrementer_clockevent.shift;
|
||||
do_div(dec_time, decrementer_clockevent.mult);
|
||||
dec_time = tb_to_ns(dec_time);
|
||||
dec_nsec = do_div(dec_time, NSEC_PER_SEC);
|
||||
hrtimer_start(&vcpu->arch.dec_timer,
|
||||
ktime_set(dec_time, dec_nsec), HRTIMER_MODE_REL);
|
||||
|
Loading…
Reference in New Issue
Block a user