Skip to content
  • Alexander Graf's avatar
    KVM: PPC: Add level based interrupt logic · fc87e185
    Alexander Graf authored
    
    
    KVM on PowerPC used to have completely broken interrupt logic. Usually,
    interrupts work by having a PIC that pulls a line up/down, so the CPU knows
    that an interrupt is active. This line stays active until some action is
    done to the PIC to release the line.
    
    On KVM for PPC, we just checked if there was an interrupt pending and pulled
    a line in the kernel module. We never released it though, hoping that kernel
    space would just declare an interrupt as released when injected - which is
    wrong.
    
    To fix this, we need to completely redesign the interrupt injection logic.
    Whenever an interrupt line gets triggered, we need to notify kernel space
    that the line is up. Whenever it gets released, we do the same. This way
    we can assure that the interrupt state is always known to kernel space.
    
    This fixes random stalls in KVM guests on PowerPC that were waiting for
    an interrupt while everyone else thought they received it already.
    
    Signed-off-by: default avatarAlexander Graf <agraf@suse.de>
    fc87e185