OSDN Git Service

KMV: PPC: Book3S HV P9: Use set_dec to set decrementer to host
authorNicholas Piggin <npiggin@gmail.com>
Tue, 23 Nov 2021 09:51:41 +0000 (19:51 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 24 Nov 2021 10:08:56 +0000 (21:08 +1100)
The host Linux timer code arms the decrementer with the value
'decrementers_next_tb - current_tb' using set_dec(), which stores
val - 1 on Book3S-64, which is not quite the same as what KVM does
to re-arm the host decrementer when exiting the guest.

This shouldn't be a significant change, but it makes the logic match
and avoids this small extra change being brought into the next patch.

Suggested-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20211123095231.1036501-4-npiggin@gmail.com
arch/powerpc/kvm/book3s_hv.c

index 2777f66..c7dbdec 100644 (file)
@@ -4063,7 +4063,7 @@ static int kvmhv_p9_guest_entry(struct kvm_vcpu *vcpu, u64 time_limit,
        vc->entry_exit_map = 0x101;
        vc->in_guest = 0;
 
-       mtspr(SPRN_DEC, local_paca->kvm_hstate.dec_expires - mftb());
+       set_dec(local_paca->kvm_hstate.dec_expires - mftb());
        /* We may have raced with new irq work */
        if (test_irq_work_pending())
                set_dec(1);