From: Pingfan Liu <kernelfans@gmail.com> To: linux-arm-kernel@lists.infradead.org Cc: Pingfan Liu <kernelfans@gmail.com>, Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, Mark Rutland <mark.rutland@arm.com>, Marc Zyngier <maz@kernel.org>, Joey Gouly <joey.gouly@arm.com>, Sami Tolvanen <samitolvanen@google.com>, Julien Thierry <julien.thierry@arm.com>, Yuichi Ito <ito-yuichi@fujitsu.com>, rcu@vger.kernel.org Subject: [PATCHv3 4/4] arm64: entry: remove pNMI judgement in __el1_interrupt() path Date: Tue, 16 Nov 2021 16:24:50 +0800 [thread overview] Message-ID: <20211116082450.10357-5-kernelfans@gmail.com> (raw) In-Reply-To: <20211116082450.10357-1-kernelfans@gmail.com> Now, all pNMI can be detected before the dispatching of __el1_pnmi() or __el1_interrupt(), and __el1_interrupt() will never be called in pNMI context. As a result, the judgement of pNMI in arm64_preempt_schedule_irq() becomes unnecessary. Signed-off-by: Pingfan Liu <kernelfans@gmail.com> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Will Deacon <will@kernel.org> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Marc Zyngier <maz@kernel.org> Cc: Joey Gouly <joey.gouly@arm.com> Cc: Sami Tolvanen <samitolvanen@google.com> Cc: Julien Thierry <julien.thierry@arm.com> Cc: Yuichi Ito <ito-yuichi@fujitsu.com> Cc: rcu@vger.kernel.org To: linux-arm-kernel@lists.infradead.org --- arch/arm64/kernel/entry-common.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/arch/arm64/kernel/entry-common.c b/arch/arm64/kernel/entry-common.c index afcde43f1b73..57d654b915a5 100644 --- a/arch/arm64/kernel/entry-common.c +++ b/arch/arm64/kernel/entry-common.c @@ -224,15 +224,6 @@ static void __sched arm64_preempt_schedule_irq(void) { lockdep_assert_irqs_disabled(); - /* - * DAIF.DA are cleared at the start of IRQ/FIQ handling, and when GIC - * priority masking is used the GIC irqchip driver will clear DAIF.IF - * using gic_arch_enable_irqs() for normal IRQs. If anything is set in - * DAIF we must have handled an NMI, so skip preemption. - */ - if (system_uses_irq_prio_masking() && read_sysreg(daif)) - return; - /* * Preempting a task from an IRQ means we leave copies of PSTATE * on the stack. cpufeature's enable calls may modify PSTATE, but -- 2.31.1
WARNING: multiple messages have this Message-ID (diff)
From: Pingfan Liu <kernelfans@gmail.com> To: linux-arm-kernel@lists.infradead.org Cc: Pingfan Liu <kernelfans@gmail.com>, Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, Mark Rutland <mark.rutland@arm.com>, Marc Zyngier <maz@kernel.org>, Joey Gouly <joey.gouly@arm.com>, Sami Tolvanen <samitolvanen@google.com>, Julien Thierry <julien.thierry@arm.com>, Yuichi Ito <ito-yuichi@fujitsu.com>, rcu@vger.kernel.org Subject: [PATCHv3 4/4] arm64: entry: remove pNMI judgement in __el1_interrupt() path Date: Tue, 16 Nov 2021 16:24:50 +0800 [thread overview] Message-ID: <20211116082450.10357-5-kernelfans@gmail.com> (raw) In-Reply-To: <20211116082450.10357-1-kernelfans@gmail.com> Now, all pNMI can be detected before the dispatching of __el1_pnmi() or __el1_interrupt(), and __el1_interrupt() will never be called in pNMI context. As a result, the judgement of pNMI in arm64_preempt_schedule_irq() becomes unnecessary. Signed-off-by: Pingfan Liu <kernelfans@gmail.com> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Will Deacon <will@kernel.org> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Marc Zyngier <maz@kernel.org> Cc: Joey Gouly <joey.gouly@arm.com> Cc: Sami Tolvanen <samitolvanen@google.com> Cc: Julien Thierry <julien.thierry@arm.com> Cc: Yuichi Ito <ito-yuichi@fujitsu.com> Cc: rcu@vger.kernel.org To: linux-arm-kernel@lists.infradead.org --- arch/arm64/kernel/entry-common.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/arch/arm64/kernel/entry-common.c b/arch/arm64/kernel/entry-common.c index afcde43f1b73..57d654b915a5 100644 --- a/arch/arm64/kernel/entry-common.c +++ b/arch/arm64/kernel/entry-common.c @@ -224,15 +224,6 @@ static void __sched arm64_preempt_schedule_irq(void) { lockdep_assert_irqs_disabled(); - /* - * DAIF.DA are cleared at the start of IRQ/FIQ handling, and when GIC - * priority masking is used the GIC irqchip driver will clear DAIF.IF - * using gic_arch_enable_irqs() for normal IRQs. If anything is set in - * DAIF we must have handled an NMI, so skip preemption. - */ - if (system_uses_irq_prio_masking() && read_sysreg(daif)) - return; - /* * Preempting a task from an IRQ means we leave copies of PSTATE * on the stack. cpufeature's enable calls may modify PSTATE, but -- 2.31.1 _______________________________________________ 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-11-16 8:25 UTC|newest] Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-11-16 8:24 [PATCHv3 0/4] arm64: Fixes RCU deadlock due to a mistaken Pingfan Liu 2021-11-16 8:24 ` Pingfan Liu 2021-11-16 8:24 ` [PATCHv3 1/4] arm64: entry: judge nmi ealier to avoid deadlock in RCU Pingfan Liu 2021-11-16 8:24 ` Pingfan Liu 2021-11-17 11:38 ` Mark Rutland 2021-11-17 11:38 ` Mark Rutland 2021-11-19 2:01 ` Pingfan Liu 2021-11-19 2:01 ` Pingfan Liu 2021-11-19 14:04 ` Mark Rutland 2021-11-19 14:04 ` Mark Rutland 2021-11-16 8:24 ` [PATCHv3 2/4] arm64: entry: distinguish pNMI earlier in el0 interrupt Pingfan Liu 2021-11-16 8:24 ` Pingfan Liu 2021-11-16 8:24 ` [PATCHv3 3/4] irqchip: GICv3: expose pNMI discriminator Pingfan Liu 2021-11-16 8:24 ` Pingfan Liu 2021-11-16 9:53 ` Marc Zyngier 2021-11-16 9:53 ` Marc Zyngier 2021-11-17 10:16 ` Pingfan Liu 2021-11-17 10:16 ` Pingfan Liu 2021-11-17 11:01 ` Marc Zyngier 2021-11-17 11:01 ` Marc Zyngier 2021-11-19 2:38 ` Pingfan Liu 2021-11-19 2:38 ` Pingfan Liu 2021-11-16 8:24 ` Pingfan Liu [this message] 2021-11-16 8:24 ` [PATCHv3 4/4] arm64: entry: remove pNMI judgement in __el1_interrupt() path Pingfan Liu
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=20211116082450.10357-5-kernelfans@gmail.com \ --to=kernelfans@gmail.com \ --cc=catalin.marinas@arm.com \ --cc=ito-yuichi@fujitsu.com \ --cc=joey.gouly@arm.com \ --cc=julien.thierry@arm.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=mark.rutland@arm.com \ --cc=maz@kernel.org \ --cc=rcu@vger.kernel.org \ --cc=samitolvanen@google.com \ --cc=will@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.