summaryrefslogtreecommitdiffstats
path: root/fs/timerfd.c
diff options
context:
space:
mode:
authorSamuel Holland <samuel@sholland.org>2022-07-01 22:24:39 +0200
committerMarc Zyngier <maz@kernel.org>2022-07-10 10:50:04 +0200
commitde078949218242d57f791b63fac87cdb09cb0424 (patch)
tree94c8fbd22b5375d5d603ed4006a9d2c960f0a734 /fs/timerfd.c
parentMerge branch irq/affinity-nosmp into irq/plic-masking (diff)
downloadlinux-de078949218242d57f791b63fac87cdb09cb0424.tar.xz
linux-de078949218242d57f791b63fac87cdb09cb0424.zip
irqchip/sifive-plic: Make better use of the effective affinity mask
The PLIC driver already updates the effective affinity mask in its .irq_set_affinity callback. Take advantage of that information to only touch bits (and take spinlocks) for the specific relevant hart contexts. First, make sure the effective affinity mask is set before IRQ startup. Then, since this mask already takes priv->lmask into account, checking that mask later is no longer needed (and handler->present is equivalent to the bit being set in priv->lmask). Finally, when (un)masking or changing affinity, only clear/set the enable bits in the specific old/new context(s). The cpumask operations in plic_irq_unmask() are not needed because they duplicate the code in plic_set_affinity(). Signed-off-by: Samuel Holland <samuel@sholland.org> Signed-off-by: Marc Zyngier <maz@kernel.org> Link: https://lore.kernel.org/r/20220701202440.59059-2-samuel@sholland.org
Diffstat (limited to 'fs/timerfd.c')
0 files changed, 0 insertions, 0 deletions