• Marc Zyngier's avatar
    irqchip/gic: Make locking a BL_SWITCHER only feature · 04c8b0f8
    Marc Zyngier authored
    The BL switcher code manipulates the logical/physical CPU mapping,
    forcing a lock to be taken on the IPI path. With an IPI heavy load,
    this single lock becomes contended.
    
    But when CONFIG_BL_SWITCHER is not enabled, there is no reason
    to take this lock at all since the CPU mapping is immutable.
    
    This patch allows the lock to be entierely removed when BL_SWITCHER
    is not enabled (which is the case in most configurations), leading
    to a small improvement of "perf bench sched pipe" (measured on
    an 8 core AMD Seattle system):
    
    Before: 101370 ops/sec
    After:  103680 ops/sec
    
    Take this opportunity to remove a useless lock being taken when
    handling an interrupt on a secondary GIC.
    Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
    04c8b0f8
irq-gic.c 39.7 KB