On Tue, Nov 24, 2020 at 02:14:46PM +0000, Marc Zyngier wrote: > Flag the rescheduling IPI as 'raw', making sure such interrupt > skips both tick management and irqtime accounting. > > Signed-off-by: Marc Zyngier <m...@kernel.org> > --- > arch/arm64/Kconfig | 1 + > arch/arm64/kernel/smp.c | 4 ++++ > 2 files changed, 5 insertions(+) > > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig > index 1515f6f153a0..d18c2c15848d 100644 > --- a/arch/arm64/Kconfig > +++ b/arch/arm64/Kconfig > @@ -108,6 +108,7 @@ config ARM64 > select GENERIC_EARLY_IOREMAP > select GENERIC_IDLE_POLL_SETUP > select GENERIC_IRQ_IPI > + select ARCH_WANTS_IRQ_RAW > select GENERIC_IRQ_MULTI_HANDLER > select GENERIC_IRQ_PROBE > select GENERIC_IRQ_SHOW > diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c > index 18e9727d3f64..bad51f7f7ffe 100644 > --- a/arch/arm64/kernel/smp.c > +++ b/arch/arm64/kernel/smp.c > @@ -995,6 +995,10 @@ void __init set_smp_ipi_range(int ipi_base, int n) > > ipi_desc[i] = irq_to_desc(ipi_base + i); > irq_set_status_flags(ipi_base + i, IRQ_HIDDEN); > + > + /* The recheduling IPI is special... */ > + if (i == IPI_RESCHEDULE) > + __irq_modify_status(ipi_base + i, 0, IRQ_RAW, ~0);
Acked-by: Will Deacon <w...@kernel.org> Although this part isn't the controversial bit :) Will