diff options
author | Daniel Thompson <daniel.thompson@linaro.org> | 2014-11-25 16:15:32 +0000 |
---|---|---|
committer | Daniel Thompson <daniel.thompson@linaro.org> | 2015-06-26 14:25:48 +0100 |
commit | d74f1bb1ecaae06209b57723c4ea29c708f9a7f8 (patch) | |
tree | 344b150f54fe8e0a9bfb73a7a1096e237657eeb0 /fs/efivarfs | |
parent | 746cc4d58b908542f106dde926ae2718571e65f2 (diff) |
irqchip: gic: Optimize locking in gic_raise_softirq
Currently gic_raise_softirq() is locked using upon irq_controller_lock.
This lock is primarily used to make register read-modify-write sequences
atomic but gic_raise_softirq() uses it instead to ensure that the
big.LITTLE migration logic can figure out when it is safe to migrate
interrupts between physical cores.
This is sub-optimal in closely related ways:
1. No locking at all is required on systems where the b.L switcher is
not configured.
2. Finer grain locking can be used on systems where the b.L switcher is
present.
This patch resolves both of the above by introducing a separate finer
grain lock and providing conditionally compiled inlines to lock/unlock
it.
Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Marc Zyngier <marc.zyngier@arm.com>
Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org>
Diffstat (limited to 'fs/efivarfs')
0 files changed, 0 insertions, 0 deletions