• Christoffer Dall's avatar
    KVM: arm/arm64: Move timer save/restore out of the hyp code · 688c50aa
    Christoffer Dall authored
    As we are about to be lazy with saving and restoring the timer
    registers, we prepare by moving all possible timer configuration logic
    out of the hyp code.  All virtual timer registers can be programmed from
    EL1 and since the arch timer is always a level triggered interrupt we
    can safely do this with interrupts disabled in the host kernel on the
    way to the guest without taking vtimer interrupts in the host kernel
    (yet).
    
    The downside is that the cntvoff register can only be programmed from
    hyp mode, so we jump into hyp mode and back to program it.  This is also
    safe, because the host kernel doesn't use the virtual timer in the KVM
    code.  It may add a little performance performance penalty, but only
    until following commits where we move this operation to vcpu load/put.
    Signed-off-by: default avatarChristoffer Dall <cdall@linaro.org>
    Reviewed-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
    688c50aa
kvm_asm.h 2.88 KB