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 08/22] arm64: entry: Use different helpers to check resched for PREEMPT_DYNAMIC
Date: Mon, 10 Feb 2025 11:54:29 +0000	[thread overview]
Message-ID: <Z6no9e7nBORuEWIK@J2N7QTR9R3> (raw)
In-Reply-To: <20241206101744.4161990-9-ruanjinjie@huawei.com>

On Fri, Dec 06, 2024 at 06:17:30PM +0800, Jinjie Ruan wrote:
> In generic entry, when PREEMPT_DYNAMIC is enabled or disabled, two
> different helpers are used to check whether resched is required
> and some common code is reused.
> 
> In preparation for moving arm64 over to the generic entry code,
> use new helper to check resched when PREEMPT_DYNAMIC enabled and
> reuse common code for the disabled case.
> 
> No functional changes.

Please fold this together with the last two patches; it's undoing
changes you made in patch 6, and it'd be far clearer to see that all at
once.

Mark.

> 
> Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
> ---
>  arch/arm64/include/asm/preempt.h |  3 +++
>  arch/arm64/kernel/entry-common.c | 21 +++++++++++----------
>  2 files changed, 14 insertions(+), 10 deletions(-)
> 
> diff --git a/arch/arm64/include/asm/preempt.h b/arch/arm64/include/asm/preempt.h
> index d0f93385bd85..0f0ba250efe8 100644
> --- a/arch/arm64/include/asm/preempt.h
> +++ b/arch/arm64/include/asm/preempt.h
> @@ -93,11 +93,14 @@ void dynamic_preempt_schedule(void);
>  #define __preempt_schedule()		dynamic_preempt_schedule()
>  void dynamic_preempt_schedule_notrace(void);
>  #define __preempt_schedule_notrace()	dynamic_preempt_schedule_notrace()
> +void dynamic_irqentry_exit_cond_resched(void);
> +#define irqentry_exit_cond_resched()	dynamic_irqentry_exit_cond_resched()
>  
>  #else /* CONFIG_PREEMPT_DYNAMIC */
>  
>  #define __preempt_schedule()		preempt_schedule()
>  #define __preempt_schedule_notrace()	preempt_schedule_notrace()
> +#define irqentry_exit_cond_resched()	raw_irqentry_exit_cond_resched()
>  
>  #endif /* CONFIG_PREEMPT_DYNAMIC */
>  #endif /* CONFIG_PREEMPTION */
> diff --git a/arch/arm64/kernel/entry-common.c b/arch/arm64/kernel/entry-common.c
> index 029f8bd72f8a..015a65d19b52 100644
> --- a/arch/arm64/kernel/entry-common.c
> +++ b/arch/arm64/kernel/entry-common.c
> @@ -75,10 +75,6 @@ static noinstr irqentry_state_t enter_from_kernel_mode(struct pt_regs *regs)
>  	return state;
>  }
>  
> -#ifdef CONFIG_PREEMPT_DYNAMIC
> -DEFINE_STATIC_KEY_TRUE(sk_dynamic_irqentry_exit_cond_resched);
> -#endif
> -
>  static inline bool arm64_need_resched(void)
>  {
>  	/*
> @@ -106,17 +102,22 @@ static inline bool arm64_need_resched(void)
>  
>  void raw_irqentry_exit_cond_resched(void)
>  {
> -#ifdef CONFIG_PREEMPT_DYNAMIC
> -	if (!static_branch_unlikely(&sk_dynamic_irqentry_exit_cond_resched))
> -		return;
> -#endif
> -
>  	if (!preempt_count()) {
>  		if (need_resched() && arm64_need_resched())
>  			preempt_schedule_irq();
>  	}
>  }
>  
> +#ifdef CONFIG_PREEMPT_DYNAMIC
> +DEFINE_STATIC_KEY_TRUE(sk_dynamic_irqentry_exit_cond_resched);
> +void dynamic_irqentry_exit_cond_resched(void)
> +{
> +	if (!static_branch_unlikely(&sk_dynamic_irqentry_exit_cond_resched))
> +		return;
> +	raw_irqentry_exit_cond_resched();
> +}
> +#endif
> +
>  /*
>   * Handle IRQ/context state management when exiting to kernel mode.
>   * After this function returns it is not safe to call regular kernel code,
> @@ -140,7 +141,7 @@ static __always_inline void __exit_to_kernel_mode(struct pt_regs *regs,
>  		}
>  
>  		if (IS_ENABLED(CONFIG_PREEMPTION))
> -			raw_irqentry_exit_cond_resched();
> +			irqentry_exit_cond_resched();
>  
>  		trace_hardirqs_on();
>  	} else {
> -- 
> 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 [this message]
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
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=Z6no9e7nBORuEWIK@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.