From: Arnd Bergmann <arnd@kernel.org> To: Marc Zyngier <maz@kernel.org> Cc: Hector Martin <marcan@marcan.st>, SoC Team <soc@kernel.org>, Linux ARM <linux-arm-kernel@lists.infradead.org>, Rob Herring <robh+dt@kernel.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, DTML <devicetree@vger.kernel.org>, Olof Johansson <olof@lixom.net> Subject: Re: [PATCH 10/18] arm64: Introduce FIQ support Date: Sat, 6 Feb 2021 17:22:26 +0100 [thread overview] Message-ID: <CAK8P3a0-Qk1WAUaCWeX8Zypphpadan3YAOES9t7LFYBOJkXKog@mail.gmail.com> (raw) In-Reply-To: <87h7mpky0f.wl-maz@kernel.org> On Sat, Feb 6, 2021 at 4:37 PM Marc Zyngier <maz@kernel.org> wrote: > On Thu, 04 Feb 2021 20:39:43 +0000, Hector Martin <marcan@marcan.st> wrote: > > diff --git a/arch/arm64/include/asm/assembler.h b/arch/arm64/include/asm/assembler.h > > index bf125c591116..6acfc372dc76 100644 > > --- a/arch/arm64/include/asm/assembler.h > > +++ b/arch/arm64/include/asm/assembler.h > > @@ -42,7 +42,11 @@ > > > > /* IRQ is the lowest priority flag, unconditionally unmask the rest. */ > > .macro enable_da_f > > +alternative_if ARM64_NEEDS_FIQ > > + msr daifclr, #(8 | 4) > > +alternative_else > > msr daifclr, #(8 | 4 | 1) > > +alternative_endif > > See my digression in patch 8. I really wonder what the benefit is to > treat FIQ independently of IRQ, and we might as well generalise > this. We could always panic on getting a FIQ on platforms that don't > expect one. > > It'd be good to rope in the other interested parties (Mark for the > early entry code, James for RAS and SError handling). There might be another slightly hacky but less intrusive option that could be done (almost) purely within the aic code: * In the fiq handler code, check if normal interrupts were enabled when the fiq hit. Normally they are enabled, so just proceed to handle the timer and ipi directly * if irq was disabled, defer the handling by doing a self-ipi through the aic's ipi method, and handle it from there when dealing with the next interrupt once interrupts get enabled. This would be similar to the soft-disable feature on powerpc, which never actually turns off interrupts from regular kernel code but just checks a flag in local_irq_enable that gets set when a hardirq happened. Arnd
WARNING: multiple messages have this Message-ID (diff)
From: Arnd Bergmann <arnd@kernel.org> To: Marc Zyngier <maz@kernel.org> Cc: DTML <devicetree@vger.kernel.org>, Hector Martin <marcan@marcan.st>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, SoC Team <soc@kernel.org>, Rob Herring <robh+dt@kernel.org>, Olof Johansson <olof@lixom.net>, Linux ARM <linux-arm-kernel@lists.infradead.org> Subject: Re: [PATCH 10/18] arm64: Introduce FIQ support Date: Sat, 6 Feb 2021 17:22:26 +0100 [thread overview] Message-ID: <CAK8P3a0-Qk1WAUaCWeX8Zypphpadan3YAOES9t7LFYBOJkXKog@mail.gmail.com> (raw) Message-ID: <20210206162226.wQinUkqNyNX944GzHRW6su05AR8mb1VMAv--AXQuET4@z> (raw) In-Reply-To: <87h7mpky0f.wl-maz@kernel.org> On Sat, Feb 6, 2021 at 4:37 PM Marc Zyngier <maz@kernel.org> wrote: > On Thu, 04 Feb 2021 20:39:43 +0000, Hector Martin <marcan@marcan.st> wrote: > > diff --git a/arch/arm64/include/asm/assembler.h b/arch/arm64/include/asm/assembler.h > > index bf125c591116..6acfc372dc76 100644 > > --- a/arch/arm64/include/asm/assembler.h > > +++ b/arch/arm64/include/asm/assembler.h > > @@ -42,7 +42,11 @@ > > > > /* IRQ is the lowest priority flag, unconditionally unmask the rest. */ > > .macro enable_da_f > > +alternative_if ARM64_NEEDS_FIQ > > + msr daifclr, #(8 | 4) > > +alternative_else > > msr daifclr, #(8 | 4 | 1) > > +alternative_endif > > See my digression in patch 8. I really wonder what the benefit is to > treat FIQ independently of IRQ, and we might as well generalise > this. We could always panic on getting a FIQ on platforms that don't > expect one. > > It'd be good to rope in the other interested parties (Mark for the > early entry code, James for RAS and SError handling). There might be another slightly hacky but less intrusive option that could be done (almost) purely within the aic code: * In the fiq handler code, check if normal interrupts were enabled when the fiq hit. Normally they are enabled, so just proceed to handle the timer and ipi directly * if irq was disabled, defer the handling by doing a self-ipi through the aic's ipi method, and handle it from there when dealing with the next interrupt once interrupts get enabled. This would be similar to the soft-disable feature on powerpc, which never actually turns off interrupts from regular kernel code but just checks a flag in local_irq_enable that gets set when a hardirq happened. Arnd _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2021-02-06 16:22 UTC|newest] Thread overview: 240+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-02-04 20:39 [PATCH 00/18] Apple M1 SoC platform bring-up Hector Martin 2021-02-04 20:39 ` Hector Martin 2021-02-04 20:39 ` [PATCH 01/18] dt-bindings: vendor-prefixes: add AAPL prefix Hector Martin 2021-02-04 20:39 ` Hector Martin 2021-02-08 10:27 ` Krzysztof Kozlowski 2021-02-08 10:27 ` Krzysztof Kozlowski 2021-02-08 17:32 ` Rob Herring 2021-02-08 17:32 ` Rob Herring 2021-02-08 18:12 ` Krzysztof Kozlowski 2021-02-08 18:12 ` Krzysztof Kozlowski 2021-02-08 19:59 ` Arnd Bergmann 2021-02-08 19:59 ` Arnd Bergmann 2021-02-08 23:17 ` Hector Martin 2021-02-08 23:17 ` Hector Martin 2021-02-04 20:39 ` [PATCH 02/18] dt-bindings: arm: cpus: Add AAPL,firestorm & icestorm compatibles Hector Martin 2021-02-04 20:39 ` [PATCH 02/18] dt-bindings: arm: cpus: Add AAPL, firestorm " Hector Martin 2021-02-04 20:39 ` [PATCH 03/18] dt-bindings: arm: AAPL: Add bindings for Apple ARM platforms Hector Martin 2021-02-04 20:39 ` Hector Martin 2021-02-04 20:39 ` [PATCH 04/18] arm64: Kconfig: Introduce CONFIG_ARCH_APPLE Hector Martin 2021-02-04 20:39 ` Hector Martin 2021-02-06 13:17 ` Marc Zyngier 2021-02-06 13:17 ` Marc Zyngier 2021-02-07 8:05 ` Hector Martin 'marcan' 2021-02-07 8:05 ` Hector Martin 'marcan' 2021-02-04 20:39 ` [PATCH 05/18] tty: serial: samsung_tty: add support for Apple UARTs Hector Martin 2021-02-04 20:39 ` Hector Martin 2021-02-04 23:55 ` kernel test robot 2021-02-04 23:55 ` kernel test robot 2021-02-04 23:55 ` kernel test robot 2021-02-05 9:44 ` Hector Martin 'marcan' 2021-02-05 9:44 ` Hector Martin 'marcan' 2021-02-05 2:19 ` kernel test robot 2021-02-05 2:19 ` kernel test robot 2021-02-05 2:19 ` kernel test robot 2021-02-06 13:15 ` Marc Zyngier 2021-02-06 13:15 ` Marc Zyngier 2021-02-07 9:12 ` Hector Martin 'marcan' 2021-02-07 9:12 ` Hector Martin 'marcan' 2021-02-07 9:26 ` Hector Martin 'marcan' 2021-02-07 9:26 ` Hector Martin 'marcan' 2021-02-08 9:36 ` Krzysztof Kozlowski 2021-02-08 9:36 ` Krzysztof Kozlowski 2021-02-08 16:14 ` Hector Martin 2021-02-08 16:14 ` Hector Martin 2021-02-08 10:34 ` Marc Zyngier 2021-02-08 10:34 ` Marc Zyngier 2021-02-08 16:18 ` Hector Martin 2021-02-08 16:18 ` Hector Martin 2021-02-08 16:46 ` Greg Kroah-Hartman 2021-02-08 16:46 ` Greg Kroah-Hartman 2021-02-08 23:22 ` Hector Martin 2021-02-08 23:22 ` Hector Martin 2021-02-08 10:54 ` Krzysztof Kozlowski 2021-02-08 10:54 ` Krzysztof Kozlowski 2021-02-08 16:10 ` Hector Martin 2021-02-08 16:10 ` Hector Martin 2021-02-08 18:37 ` Krzysztof Kozlowski 2021-02-08 18:37 ` Krzysztof Kozlowski 2021-02-08 23:23 ` Hector Martin 2021-02-08 23:23 ` Hector Martin 2021-02-04 20:39 ` [PATCH 06/18] dt-bindings: serial: samsung: Add AAPL,s5l-uart compatible Hector Martin 2021-02-04 20:39 ` [PATCH 06/18] dt-bindings: serial: samsung: Add AAPL, s5l-uart compatible Hector Martin 2021-02-04 20:39 ` [PATCH 07/18] tty: serial: samsung_tty: enable for ARCH_APPLE Hector Martin 2021-02-04 20:39 ` Hector Martin 2021-02-04 21:16 ` Arnd Bergmann 2021-02-04 21:16 ` Arnd Bergmann 2021-02-04 21:27 ` Hector Martin 'marcan' 2021-02-04 21:27 ` Hector Martin 'marcan' 2021-02-04 20:39 ` [PATCH 08/18] arm64: cpufeature: Add a feature for FIQ support Hector Martin 2021-02-04 20:39 ` Hector Martin 2021-02-06 13:58 ` Marc Zyngier 2021-02-06 13:58 ` Marc Zyngier 2021-02-07 8:28 ` Hector Martin 'marcan' 2021-02-07 8:28 ` Hector Martin 'marcan' 2021-02-08 11:29 ` Marc Zyngier 2021-02-08 11:29 ` Marc Zyngier 2021-02-08 15:51 ` Hector Martin 2021-02-08 15:51 ` Hector Martin 2021-02-04 20:39 ` [PATCH 09/18] arm64: cputype: Add CPU types for the Apple M1 big/little cores Hector Martin 2021-02-04 20:39 ` Hector Martin 2021-02-04 20:39 ` [PATCH 10/18] arm64: Introduce FIQ support Hector Martin 2021-02-04 20:39 ` Hector Martin 2021-02-06 15:37 ` Marc Zyngier 2021-02-06 15:37 ` Marc Zyngier 2021-02-06 16:22 ` Arnd Bergmann [this message] 2021-02-06 16:22 ` Arnd Bergmann 2021-02-07 8:36 ` Hector Martin 'marcan' 2021-02-07 8:36 ` Hector Martin 'marcan' 2021-02-07 12:25 ` Arnd Bergmann 2021-02-07 12:25 ` Arnd Bergmann 2021-02-07 15:38 ` Hector Martin 'marcan' 2021-02-07 15:38 ` Hector Martin 'marcan' 2021-02-07 18:49 ` Arnd Bergmann 2021-02-07 18:49 ` Arnd Bergmann 2021-02-08 23:34 ` Hector Martin 2021-02-08 23:34 ` Hector Martin 2021-02-07 8:47 ` Hector Martin 'marcan' 2021-02-07 8:47 ` Hector Martin 'marcan' 2021-02-08 11:30 ` Marc Zyngier 2021-02-08 11:30 ` Marc Zyngier 2021-02-04 20:39 ` [PATCH 11/18] arm64: Kconfig: Require FIQ support for ARCH_APPLE Hector Martin 2021-02-04 20:39 ` Hector Martin 2021-02-06 15:46 ` Marc Zyngier 2021-02-06 15:46 ` Marc Zyngier 2021-02-07 9:23 ` Hector Martin 'marcan' 2021-02-07 9:23 ` Hector Martin 'marcan' 2021-02-08 12:05 ` Marc Zyngier 2021-02-08 12:05 ` Marc Zyngier 2021-02-08 15:48 ` Hector Martin 2021-02-08 15:48 ` Hector Martin 2021-02-04 20:39 ` [PATCH 12/18] arm64: setup: Use nGnRnE IO mappings for fixmap on Apple platforms Hector Martin 2021-02-04 20:39 ` Hector Martin 2021-02-04 22:25 ` Arnd Bergmann 2021-02-04 22:25 ` Arnd Bergmann 2021-02-04 20:39 ` [PATCH 13/18] arm64: ioremap: use nGnRnE mappings on platforms that require it Hector Martin 2021-02-04 20:39 ` Hector Martin 2021-02-04 22:21 ` Arnd Bergmann 2021-02-04 22:21 ` Arnd Bergmann 2021-02-08 22:57 ` Arnd Bergmann 2021-02-08 22:57 ` Arnd Bergmann 2021-02-08 23:20 ` Mark Kettenis 2021-02-08 23:20 ` Mark Kettenis 2021-02-09 0:25 ` Hector Martin 2021-02-09 0:25 ` Hector Martin 2021-02-09 9:15 ` Arnd Bergmann 2021-02-09 9:15 ` Arnd Bergmann 2021-02-09 9:58 ` Mark Kettenis 2021-02-09 9:58 ` Mark Kettenis 2021-02-09 11:22 ` Hector Martin 2021-02-09 11:22 ` Hector Martin 2021-02-09 9:35 ` Arnd Bergmann 2021-02-09 9:35 ` Arnd Bergmann 2021-02-10 12:24 ` Hector Martin 2021-02-10 12:24 ` Hector Martin 2021-02-10 13:40 ` Mark Kettenis 2021-02-10 13:40 ` Mark Kettenis 2021-02-04 20:39 ` [PATCH 14/18] dt-bindings: interrupt-controller: Add DT bindings for apple-aic Hector Martin 2021-02-04 20:39 ` Hector Martin 2021-02-09 23:07 ` Rob Herring 2021-02-09 23:07 ` Rob Herring 2021-02-04 20:39 ` [PATCH 15/18] irqchip/apple-aic: Add support for the Apple Interrupt Controller Hector Martin 2021-02-04 20:39 ` Hector Martin 2021-02-04 21:37 ` Arnd Bergmann 2021-02-04 21:37 ` Arnd Bergmann 2021-02-04 22:04 ` Hector Martin 'marcan' 2021-02-04 22:04 ` Hector Martin 'marcan' 2021-02-04 23:04 ` Arnd Bergmann 2021-02-04 23:04 ` Arnd Bergmann 2021-02-05 7:41 ` Hector Martin 'marcan' 2021-02-05 7:41 ` Hector Martin 'marcan' 2021-02-05 10:33 ` Arnd Bergmann 2021-02-05 10:33 ` Arnd Bergmann 2021-02-05 2:27 ` kernel test robot 2021-02-05 2:27 ` kernel test robot 2021-02-05 2:27 ` kernel test robot 2021-02-05 9:45 ` Hector Martin 'marcan' 2021-02-05 9:45 ` Hector Martin 'marcan' 2021-02-08 9:25 ` Marc Zyngier 2021-02-08 9:25 ` Marc Zyngier 2021-02-08 10:29 ` Arnd Bergmann 2021-02-08 10:29 ` Arnd Bergmann 2021-02-08 11:13 ` Hector Martin 'marcan' 2021-02-08 11:13 ` Hector Martin 'marcan' 2021-02-08 11:21 ` Arnd Bergmann 2021-02-08 11:21 ` Arnd Bergmann 2021-02-08 11:36 ` Marc Zyngier 2021-02-08 11:36 ` Marc Zyngier 2021-02-08 12:17 ` Arnd Bergmann 2021-02-08 12:17 ` Arnd Bergmann 2021-02-08 15:31 ` Hector Martin 2021-02-08 15:31 ` Hector Martin 2021-02-09 6:20 ` Hector Martin 2021-02-09 6:20 ` Hector Martin 2021-02-04 20:39 ` [PATCH 16/18] irqchip/apple-aic: Add SMP / IPI support Hector Martin 2021-02-04 20:39 ` Hector Martin 2021-02-04 20:39 ` [PATCH 17/18] dt-bindings: display: add AAPL,simple-framebuffer Hector Martin 2021-02-04 20:39 ` Hector Martin 2021-02-04 20:39 ` [PATCH 18/18] arm64: apple: Add initial Mac Mini 2020 (M1) devicetree Hector Martin 2021-02-04 20:39 ` Hector Martin 2021-02-04 21:29 ` Arnd Bergmann 2021-02-04 21:29 ` Arnd Bergmann 2021-02-04 21:44 ` Hector Martin 'marcan' 2021-02-04 21:44 ` Hector Martin 'marcan' 2021-02-04 23:08 ` Arnd Bergmann 2021-02-04 23:08 ` Arnd Bergmann 2021-02-05 7:11 ` Hector Martin 'marcan' 2021-02-05 7:11 ` Hector Martin 'marcan' 2021-02-05 12:43 ` Arnd Bergmann 2021-02-05 12:43 ` Arnd Bergmann 2021-02-08 11:04 ` Krzysztof Kozlowski 2021-02-08 11:04 ` Krzysztof Kozlowski 2021-02-08 11:56 ` Hector Martin 'marcan' 2021-02-08 11:56 ` Hector Martin 'marcan' 2021-02-08 12:13 ` Krzysztof Kozlowski 2021-02-08 12:13 ` Krzysztof Kozlowski 2021-02-08 12:40 ` Arnd Bergmann 2021-02-08 12:40 ` Arnd Bergmann 2021-02-08 14:12 ` Hector Martin 2021-02-08 14:12 ` Hector Martin 2021-02-08 17:58 ` Rob Herring 2021-02-08 17:58 ` Rob Herring 2021-02-09 0:32 ` Hector Martin 2021-02-09 0:32 ` Hector Martin 2021-02-08 19:14 ` Rob Herring 2021-02-08 19:14 ` Rob Herring 2021-02-09 0:49 ` Hector Martin 2021-02-09 0:49 ` Hector Martin 2021-02-09 2:05 ` Rob Herring 2021-02-09 2:05 ` Rob Herring 2021-02-10 10:19 ` Tony Lindgren 2021-02-10 10:19 ` Tony Lindgren 2021-02-10 11:07 ` Hector Martin 2021-02-10 11:07 ` Hector Martin 2021-02-10 11:34 ` Tony Lindgren 2021-02-10 11:34 ` Tony Lindgren 2021-02-10 11:43 ` Hector Martin 2021-02-10 11:43 ` Hector Martin 2021-02-10 12:24 ` Daniel Palmer 2021-02-10 12:24 ` Daniel Palmer 2021-02-10 12:24 ` Daniel Palmer 2021-02-10 12:54 ` Tony Lindgren 2021-02-10 12:54 ` Tony Lindgren 2021-02-10 12:56 ` Hector Martin 2021-02-10 12:56 ` Hector Martin 2021-02-10 12:55 ` Krzysztof Kozlowski 2021-02-10 12:55 ` Krzysztof Kozlowski 2021-02-10 13:19 ` Tony Lindgren 2021-02-10 13:19 ` Tony Lindgren 2021-02-10 13:25 ` Krzysztof Kozlowski 2021-02-10 13:25 ` Krzysztof Kozlowski 2021-02-08 12:27 ` Marc Zyngier 2021-02-08 12:27 ` Marc Zyngier 2021-02-08 14:53 ` Hector Martin 2021-02-08 14:53 ` Hector Martin 2021-02-08 15:36 ` Marc Zyngier 2021-02-08 15:36 ` Marc Zyngier 2021-02-04 22:43 ` [PATCH 00/18] Apple M1 SoC platform bring-up Arnd Bergmann 2021-02-04 22:43 ` Arnd Bergmann 2021-02-05 11:35 ` Hector Martin 'marcan' 2021-02-05 11:35 ` Hector Martin 'marcan'
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=CAK8P3a0-Qk1WAUaCWeX8Zypphpadan3YAOES9t7LFYBOJkXKog@mail.gmail.com \ --to=arnd@kernel.org \ --cc=devicetree@vger.kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=marcan@marcan.st \ --cc=maz@kernel.org \ --cc=olof@lixom.net \ --cc=robh+dt@kernel.org \ --cc=soc@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.