From: Valentin Schneider <valentin.schneider@arm.com> To: linux-kernel@vger.kernel.org Cc: Russell King <linux@armlinux.org.uk>, Thomas Gleixner <tglx@linutronix.de>, Will Deacon <will.deacon@arm.com>, Julien Thierry <julien.thierry@arm.com>, linux-arm-kernel@lists.infradead.org Subject: [RFC PATCH 2/3] ARM: entry: Remove unneeded need_resched() loop Date: Thu, 31 Jan 2019 18:23:38 +0000 [thread overview] Message-ID: <20190131182339.9835-3-valentin.schneider@arm.com> (raw) In-Reply-To: <20190131182339.9835-1-valentin.schneider@arm.com> Since the enabling and disabling of IRQs within preempt_schedule_irq() is contained in a need_resched() loop, we don't need the outer arch code loop. Signed-off-by: Valentin Schneider <valentin.schneider@arm.com> Cc: Russell King <linux@armlinux.org.uk> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Will Deacon <will.deacon@arm.com> Cc: Julien Thierry <julien.thierry@arm.com> Cc: linux-arm-kernel@lists.infradead.org --- arch/arm/kernel/entry-armv.S | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S index e85a3af9ddeb..a7ac22e09bb2 100644 --- a/arch/arm/kernel/entry-armv.S +++ b/arch/arm/kernel/entry-armv.S @@ -220,7 +220,7 @@ __irq_svc: teq r8, #0 @ if preempt count != 0 movne r0, #0 @ force flags to 0 tst r0, #_TIF_NEED_RESCHED - blne svc_preempt + blne preempt_schedule_irq @ irq en/disable is done inside #endif svc_exit r5, irq = 1 @ return from exception @@ -229,16 +229,6 @@ ENDPROC(__irq_svc) .ltorg -#ifdef CONFIG_PREEMPT -svc_preempt: - mov r8, lr -1: bl preempt_schedule_irq @ irq en/disable is done inside - ldr r0, [tsk, #TI_FLAGS] @ get new tasks TI_FLAGS - tst r0, #_TIF_NEED_RESCHED - reteq r8 @ go again - b 1b -#endif - __und_fault: @ Correct the PC such that it is pointing at the instruction @ which caused the fault. If the faulting instruction was ARM -- 2.20.1
WARNING: multiple messages have this Message-ID (diff)
From: Valentin Schneider <valentin.schneider@arm.com> To: linux-kernel@vger.kernel.org Cc: Thomas Gleixner <tglx@linutronix.de>, Will Deacon <will.deacon@arm.com>, Russell King <linux@armlinux.org.uk>, linux-arm-kernel@lists.infradead.org, Julien Thierry <julien.thierry@arm.com> Subject: [RFC PATCH 2/3] ARM: entry: Remove unneeded need_resched() loop Date: Thu, 31 Jan 2019 18:23:38 +0000 [thread overview] Message-ID: <20190131182339.9835-3-valentin.schneider@arm.com> (raw) In-Reply-To: <20190131182339.9835-1-valentin.schneider@arm.com> Since the enabling and disabling of IRQs within preempt_schedule_irq() is contained in a need_resched() loop, we don't need the outer arch code loop. Signed-off-by: Valentin Schneider <valentin.schneider@arm.com> Cc: Russell King <linux@armlinux.org.uk> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Will Deacon <will.deacon@arm.com> Cc: Julien Thierry <julien.thierry@arm.com> Cc: linux-arm-kernel@lists.infradead.org --- arch/arm/kernel/entry-armv.S | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S index e85a3af9ddeb..a7ac22e09bb2 100644 --- a/arch/arm/kernel/entry-armv.S +++ b/arch/arm/kernel/entry-armv.S @@ -220,7 +220,7 @@ __irq_svc: teq r8, #0 @ if preempt count != 0 movne r0, #0 @ force flags to 0 tst r0, #_TIF_NEED_RESCHED - blne svc_preempt + blne preempt_schedule_irq @ irq en/disable is done inside #endif svc_exit r5, irq = 1 @ return from exception @@ -229,16 +229,6 @@ ENDPROC(__irq_svc) .ltorg -#ifdef CONFIG_PREEMPT -svc_preempt: - mov r8, lr -1: bl preempt_schedule_irq @ irq en/disable is done inside - ldr r0, [tsk, #TI_FLAGS] @ get new tasks TI_FLAGS - tst r0, #_TIF_NEED_RESCHED - reteq r8 @ go again - b 1b -#endif - __und_fault: @ Correct the PC such that it is pointing at the instruction @ which caused the fault. If the faulting instruction was ARM -- 2.20.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:[~2019-01-31 18:24 UTC|newest] Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-01-31 18:23 [RFC PATCH 0/3] arm/arm64: entry: Remove need_resched() loop Valentin Schneider 2019-01-31 18:23 ` Valentin Schneider 2019-01-31 18:23 ` [RFC PATCH 1/3] arm64: entry: Remove unneeded " Valentin Schneider 2019-01-31 18:23 ` Valentin Schneider 2019-02-01 8:46 ` Julien Thierry 2019-02-01 8:46 ` Julien Thierry 2019-02-01 10:21 ` Will Deacon 2019-02-01 10:21 ` Will Deacon 2019-02-04 16:55 ` Catalin Marinas 2019-02-04 16:55 ` Catalin Marinas 2019-01-31 18:23 ` Valentin Schneider [this message] 2019-01-31 18:23 ` [RFC PATCH 2/3] ARM: " Valentin Schneider 2019-02-01 8:49 ` Julien Thierry 2019-02-01 8:49 ` Julien Thierry 2019-01-31 18:23 ` [RFC PATCH 3/3] sched/Documentation: Point out use of preempt_schedule_irq() Valentin Schneider 2019-02-01 8:45 ` Julien Thierry 2019-02-01 10:27 ` Valentin Schneider
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=20190131182339.9835-3-valentin.schneider@arm.com \ --to=valentin.schneider@arm.com \ --cc=julien.thierry@arm.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux@armlinux.org.uk \ --cc=tglx@linutronix.de \ --cc=will.deacon@arm.com \ /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.