2019-09-25 14:43:39

by Valentin Schneider

[permalink] [raw]
Subject: [PATCH v2 6/9] RISC-V: entry: Remove unneeded need_resched() loop

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.

Reviewed-by: Palmer Dabbelt <[email protected]>
Signed-off-by: Valentin Schneider <[email protected]>
Cc: Albert Ou <[email protected]>
Cc: [email protected]
---
arch/riscv/kernel/entry.S | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/arch/riscv/kernel/entry.S b/arch/riscv/kernel/entry.S
index 74ccfd464071..d0523167d261 100644
--- a/arch/riscv/kernel/entry.S
+++ b/arch/riscv/kernel/entry.S
@@ -250,12 +250,11 @@ restore_all:
resume_kernel:
REG_L s0, TASK_TI_PREEMPT_COUNT(tp)
bnez s0, restore_all
-need_resched:
REG_L s0, TASK_TI_FLAGS(tp)
andi s0, s0, _TIF_NEED_RESCHED
beqz s0, restore_all
call preempt_schedule_irq
- j need_resched
+ j restore_all
#endif

work_pending:
--
2.22.0


2019-10-09 00:55:28

by Paul Walmsley

[permalink] [raw]
Subject: Re: [PATCH v2 6/9] RISC-V: entry: Remove unneeded need_resched() loop

On Mon, 23 Sep 2019, Valentin Schneider wrote:

> 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.
>
> Reviewed-by: Palmer Dabbelt <[email protected]>
> Signed-off-by: Valentin Schneider <[email protected]>
> Cc: Albert Ou <[email protected]>
> Cc: [email protected]

Thanks, queued for v5.4-rc.


- Paul