• Christoffer Dall's avatar
    KVM: arm/arm64: Provide a get_input_level for the arch timer · 4c60e360
    Christoffer Dall authored
    The VGIC can now support the life-cycle of mapped level-triggered
    interrupts, and we no longer have to read back the timer state on every
    exit from the VM if we had an asserted timer interrupt signal, because
    the VGIC already knows if we hit the unlikely case where the guest
    disables the timer without ACKing the virtual timer interrupt.
    
    This means we rework a bit of the code to factor out the functionality
    to snapshot the timer state from vtimer_save_state(), and we can reuse
    this functionality in the sync path when we have an irqchip in
    userspace, and also to support our implementation of the
    get_input_level() function for the timer.
    
    This change also means that we can no longer rely on the timer's view of
    the interrupt line to set the active state, because we no longer
    maintain this state for mapped interrupts when exiting from the guest.
    Instead, we only set the active state if the virtual interrupt is
    active, and otherwise we simply let the timer fire again and raise the
    virtual interrupt from the ISR.
    Reviewed-by: default avatarEric Auger <eric.auger@redhat.com>
    Reviewed-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: default avatarChristoffer Dall <christoffer.dall@linaro.org>
    4c60e360
arm_arch_timer.h 2.93 KB