• Pavel Fedin's avatar
    KVM: arm/arm64: Optimize away redundant LR tracking · c4cd4c16
    Pavel Fedin authored
    Currently we use vgic_irq_lr_map in order to track which LRs hold which
    IRQs, and lr_used bitmap in order to track which LRs are used or free.
    
    vgic_irq_lr_map is actually used only for piggy-back optimization, and
    can be easily replaced by iteration over lr_used. This is good because in
    future, when LPI support is introduced, number of IRQs will grow up to at
    least 16384, while numbers from 1024 to 8192 are never going to be used.
    This would be a huge memory waste.
    
    In its turn, lr_used is also completely redundant since
    ae705930 ("arm/arm64: KVM: Keep elrsr/aisr
    in sync with software model"), because together with lr_used we also update
    elrsr. This allows to easily replace lr_used with elrsr, inverting all
    conditions (because in elrsr '1' means 'free').
    Signed-off-by: default avatarPavel Fedin <p.fedin@samsung.com>
    Signed-off-by: default avatarChristoffer Dall <christoffer.dall@linaro.org>
    c4cd4c16
vgic.c 63.5 KB