• Marc Zyngier's avatar
    KVM: arm64: Allow in-atomic injection of SPIs · a47dee55
    Marc Zyngier authored
    On a system that uses SPIs to implement MSIs (as it would be
    the case on a GICv2 system exposing a GICv2m to its guests),
    we deny the possibility of injecting SPIs on the in-atomic
    fast-path.
    
    This results in a very large amount of context-switches
    (roughly equivalent to twice the interrupt rate) on the host,
    and suboptimal performance for the guest (as measured with
    a test workload involving a virtio interface backed by vhost-net).
    Given that GICv2 systems are usually on the low-end of the spectrum
    performance wise, they could do without the aggravation.
    
    We solved this for GICv3+ITS by having a translation cache. But
    SPIs do not need any extra infrastructure, and can be immediately
    injected in the virtual distributor as the locking is already
    heavy enough that we don't need to worry about anything.
    
    This halves the number of context switches for the same workload.
    Reviewed-by: default avatarEric Auger <eric.auger@redhat.com>
    Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
    a47dee55
vgic-its.c 69.1 KB