All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Rutland <mark.rutland@arm.com>
To: Jinjie Ruan <ruanjinjie@huawei.com>
Cc: catalin.marinas@arm.com, will@kernel.org, oleg@redhat.com,
	sstabellini@kernel.org, tglx@linutronix.de, peterz@infradead.org,
	luto@kernel.org, mingo@redhat.com, juri.lelli@redhat.com,
	vincent.guittot@linaro.org, dietmar.eggemann@arm.com,
	rostedt@goodmis.org, bsegall@google.com, mgorman@suse.de,
	vschneid@redhat.com, kees@kernel.org, wad@chromium.org,
	akpm@linux-foundation.org, samitolvanen@google.com,
	masahiroy@kernel.org, hca@linux.ibm.com, aliceryhl@google.com,
	rppt@kernel.org, xur@google.com, paulmck@kernel.org,
	arnd@arndb.de, mbenes@suse.cz, puranjay@kernel.org,
	pcc@google.com, ardb@kernel.org, sudeep.holla@arm.com,
	guohanjun@huawei.com, rafael@kernel.org, liuwei09@cestc.cn,
	dwmw@amazon.co.uk, Jonathan.Cameron@huawei.com,
	liaochang1@huawei.com, kristina.martsenko@arm.com,
	ptosi@google.com, broonie@kernel.org,
	thiago.bauermann@linaro.org, kevin.brodsky@arm.com,
	joey.gouly@arm.com, liuyuntao12@huawei.com, leobras@redhat.com,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH -next v5 10/22] entry: Add arch_irqentry_exit_need_resched() for arm64
Date: Mon, 10 Feb 2025 12:05:26 +0000	[thread overview]
Message-ID: <Z6nrhhtTKQpScUd0@J2N7QTR9R3> (raw)
In-Reply-To: <20241206101744.4161990-11-ruanjinjie@huawei.com>

On Fri, Dec 06, 2024 at 06:17:32PM +0800, Jinjie Ruan wrote:
> ARM64 requires an additional check whether to reschedule on return
> from interrupt.
> 
> Add arch_irqentry_exit_need_resched() as the default NOP
> implementation and hook it up into the need_resched() condition in
> raw_irqentry_exit_cond_resched().
> 
> This allows ARM64 to implement the architecture specific version for
> switching over to the generic entry code.

Please fold this into the earlier changes in this area mad over patches
6 to 8.

> 
> Suggested-by: Mark Rutland <mark.rutland@arm.com>
> Suggested-by: Kevin Brodsky <kevin.brodsky@arm.com>
> Suggested-by: Thomas Gleixner <tglx@linutronix.de>
> Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
> ---
>  kernel/entry/common.c | 16 +++++++++++++++-
>  1 file changed, 15 insertions(+), 1 deletion(-)
> 
> diff --git a/kernel/entry/common.c b/kernel/entry/common.c
> index b82032777310..4aa9656fa1b4 100644
> --- a/kernel/entry/common.c
> +++ b/kernel/entry/common.c
> @@ -142,6 +142,20 @@ noinstr irqentry_state_t irqentry_enter(struct pt_regs *regs)
>  	return ret;
>  }
>  
> +/**
> + * arch_irqentry_exit_need_resched - Architecture specific need resched function
> + *
> + * Invoked from raw_irqentry_exit_cond_resched() to check if need resched.
> + * Defaults return true.
> + *
> + * The main purpose is to permit arch to skip preempt a task from an IRQ.
> + */
> +static inline bool arch_irqentry_exit_need_resched(void);
> +
> +#ifndef arch_irqentry_exit_need_resched
> +static inline bool arch_irqentry_exit_need_resched(void) { return true; }
> +#endif
> +
>  void raw_irqentry_exit_cond_resched(void)
>  {
>  	if (!preempt_count()) {
> @@ -149,7 +163,7 @@ void raw_irqentry_exit_cond_resched(void)
>  		rcu_irq_exit_check_preempt();
>  		if (IS_ENABLED(CONFIG_DEBUG_ENTRY))
>  			WARN_ON_ONCE(!on_thread_stack());
> -		if (need_resched())
> +		if (need_resched() && arch_irqentry_exit_need_resched())
>  			preempt_schedule_irq();
>  	}
>  }
> -- 
> 2.34.1
> 


  reply	other threads:[~2025-02-10 12:17 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-06 10:17 [PATCH -next v5 00/22] arm64: entry: Convert to generic entry Jinjie Ruan
2024-12-06 10:17 ` [PATCH -next v5 01/22] arm64: ptrace: Replace interrupts_enabled() with regs_irqs_disabled() Jinjie Ruan
2025-02-10 11:04   ` Mark Rutland
2024-12-06 10:17 ` [PATCH -next v5 02/22] arm64: entry: Refactor the entry and exit for exceptions from EL1 Jinjie Ruan
2025-02-10 11:08   ` Mark Rutland
2024-12-06 10:17 ` [PATCH -next v5 03/22] arm64: entry: Move arm64_preempt_schedule_irq() into __exit_to_kernel_mode() Jinjie Ruan
2025-02-10 11:26   ` Mark Rutland
2024-12-06 10:17 ` [PATCH -next v5 04/22] arm64: entry: Rework arm64_preempt_schedule_irq() Jinjie Ruan
2025-02-10 11:33   ` Mark Rutland
2024-12-06 10:17 ` [PATCH -next v5 05/22] arm64: entry: Use preempt_count() and need_resched() helper Jinjie Ruan
2025-02-10 11:40   ` Mark Rutland
2024-12-06 10:17 ` [PATCH -next v5 06/22] arm64: entry: Expand the need_irq_preemption() macro ahead Jinjie Ruan
2025-02-10 11:48   ` Mark Rutland
2024-12-06 10:17 ` [PATCH -next v5 07/22] arm64: entry: preempt_schedule_irq() only if PREEMPTION enabled Jinjie Ruan
2025-02-10 11:52   ` Mark Rutland
2024-12-06 10:17 ` [PATCH -next v5 08/22] arm64: entry: Use different helpers to check resched for PREEMPT_DYNAMIC Jinjie Ruan
2025-02-10 11:54   ` Mark Rutland
2024-12-06 10:17 ` [PATCH -next v5 09/22] entry: Split generic entry into irq and syscall Jinjie Ruan
2025-02-10 12:04   ` Mark Rutland
2024-12-06 10:17 ` [PATCH -next v5 10/22] entry: Add arch_irqentry_exit_need_resched() for arm64 Jinjie Ruan
2025-02-10 12:05   ` Mark Rutland [this message]
2024-12-06 10:17 ` [PATCH -next v5 11/22] arm64: entry: Switch to generic IRQ entry Jinjie Ruan
2025-02-10 12:24   ` Mark Rutland
2025-02-11 11:32     ` Jinjie Ruan
2024-12-06 10:17 ` [PATCH -next v5 12/22] arm64/ptrace: Split report_syscall() function Jinjie Ruan
2024-12-06 10:17 ` [PATCH -next v5 13/22] arm64/ptrace: Refactor syscall_trace_enter() Jinjie Ruan
2024-12-06 10:17 ` [PATCH -next v5 14/22] arm64/ptrace: Refactor syscall_trace_exit() Jinjie Ruan
2024-12-06 10:17 ` [PATCH -next v5 15/22] arm64/ptrace: Refator el0_svc_common() Jinjie Ruan
2024-12-06 10:17 ` [PATCH -next v5 16/22] entry: Make syscall_exit_to_user_mode_prepare() not static Jinjie Ruan
2024-12-06 10:17 ` [PATCH -next v5 17/22] arm64/ptrace: Return early for ptrace_report_syscall_entry() error Jinjie Ruan
2024-12-06 10:17 ` [PATCH -next v5 18/22] arm64/ptrace: Expand secure_computing() in place Jinjie Ruan
2024-12-06 10:17 ` [PATCH -next v5 19/22] arm64/ptrace: Use syscall_get_arguments() heleper Jinjie Ruan
2024-12-06 10:17 ` [PATCH -next v5 20/22] entry: Add arch_ptrace_report_syscall_entry/exit() Jinjie Ruan
2024-12-06 14:33   ` kernel test robot
2024-12-06 10:17 ` [PATCH -next v5 21/22] entry: Add has_syscall_work() helepr Jinjie Ruan
2024-12-06 10:17 ` [PATCH -next v5 22/22] arm64: entry: Convert to generic entry Jinjie Ruan
2025-02-08  1:15 ` [PATCH -next v5 00/22] " Jinjie Ruan
2025-02-10 12:30   ` Mark Rutland
2025-02-11 11:43     ` Jinjie Ruan

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=Z6nrhhtTKQpScUd0@J2N7QTR9R3 \
    --to=mark.rutland@arm.com \
    --cc=Jonathan.Cameron@huawei.com \
    --cc=akpm@linux-foundation.org \
    --cc=aliceryhl@google.com \
    --cc=ardb@kernel.org \
    --cc=arnd@arndb.de \
    --cc=broonie@kernel.org \
    --cc=bsegall@google.com \
    --cc=catalin.marinas@arm.com \
    --cc=dietmar.eggemann@arm.com \
    --cc=dwmw@amazon.co.uk \
    --cc=guohanjun@huawei.com \
    --cc=hca@linux.ibm.com \
    --cc=joey.gouly@arm.com \
    --cc=juri.lelli@redhat.com \
    --cc=kees@kernel.org \
    --cc=kevin.brodsky@arm.com \
    --cc=kristina.martsenko@arm.com \
    --cc=leobras@redhat.com \
    --cc=liaochang1@huawei.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=liuwei09@cestc.cn \
    --cc=liuyuntao12@huawei.com \
    --cc=luto@kernel.org \
    --cc=masahiroy@kernel.org \
    --cc=mbenes@suse.cz \
    --cc=mgorman@suse.de \
    --cc=mingo@redhat.com \
    --cc=oleg@redhat.com \
    --cc=paulmck@kernel.org \
    --cc=pcc@google.com \
    --cc=peterz@infradead.org \
    --cc=ptosi@google.com \
    --cc=puranjay@kernel.org \
    --cc=rafael@kernel.org \
    --cc=rostedt@goodmis.org \
    --cc=rppt@kernel.org \
    --cc=ruanjinjie@huawei.com \
    --cc=samitolvanen@google.com \
    --cc=sstabellini@kernel.org \
    --cc=sudeep.holla@arm.com \
    --cc=tglx@linutronix.de \
    --cc=thiago.bauermann@linaro.org \
    --cc=vincent.guittot@linaro.org \
    --cc=vschneid@redhat.com \
    --cc=wad@chromium.org \
    --cc=will@kernel.org \
    --cc=xen-devel@lists.xenproject.org \
    --cc=xur@google.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: link
Be 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.