All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nathan Chancellor <nathan@kernel.org>
To: Shrikanth Hegde <sshegde@linux.ibm.com>
Cc: linux-kernel@vger.kernel.org, mingo@kernel.org,
	peterz@infradead.org, llvm@lists.linux.dev,
	juri.lelli@redhat.com, vincent.guittot@linaro.org,
	tglx@kernel.org, yury.norov@gmail.com, kprateek.nayak@amd.com,
	vschneid@redhat.com, iii@linux.ibm.com, rostedt@goodmis.org,
	dietmar.eggemann@arm.com, elver@google.com
Subject: Re: [PATCH] sched/core: Fix context analysis errors in non-preferred CPU push
Date: Tue, 29 Sep 2026 22:27:20 +0200	[thread overview]
Message-ID: <20260929202720.GC3237201@ax162> (raw)
In-Reply-To: <20260929164712.1054883-1-sshegde@linux.ibm.com>

On Tue, Sep 29, 2026 at 10:17:12PM +0530, Shrikanth Hegde wrote:
> Nathan reported build failure with clang23 when CONFIG_PREFERRED_CPU=y.
> 
>   kernel/sched/core.c:11298:3: error: releasing raw_spinlock 'rq_lockp(rq)' that was not held [-Werror,-Wthread-safety-analysis]
>    11298 |                 rq_unlock(rq, &rf);
>          |                 ^
>   kernel/sched/core.c:11303:1: error: raw_spinlock 'rq_lockp(__this_rq())' is not held on every path through here [-Werror,-Wthread-safety-analysis]
> 
> context_unsafe_alias(rq) was placed after rq_lock(), by which point it had
> already associated the lock with the original rq alias.
> 
> Move the alias barrier before rq_lock() so that the changing rq alias is
> accounted for before acquiring the lock.
> 
> Fixes: 74699f56ebcf ("sched/core: Push current task from non preferred CPU")
> Reported-by: Nathan Chancellor <nathan@kernel.org>
> Closes: https://lore.kernel.org/all/20260929121838.GA1814129@ax162/
> Signed-off-by: Shrikanth Hegde <sshegde@linux.ibm.com>

Tested-by: Nathan Chancellor <nathan@kernel.org> # build

Thanks for the quick fix!

> ---
> base commit: tip/sched/core
> 1fb28c664a19 ("virt/steal_governor: Enable the driver")
> 
>  kernel/sched/core.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/kernel/sched/core.c b/kernel/sched/core.c
> index 0bb86a43a592..23677d76f9d2 100644
> --- a/kernel/sched/core.c
> +++ b/kernel/sched/core.c
> @@ -11283,10 +11283,10 @@ static int sched_non_preferred_cpu_push_stop(void *arg)
>  		 * safely bail out.
>  		 */
>  		cpu = select_fallback_rq(rq->cpu, p);
> +		context_unsafe_alias(rq);
>  		rq_lock(rq, &rf);
>  		rq->npc_push_work_pending = false;
>  		update_rq_clock(rq);
> -		context_unsafe_alias(rq);
>  
>  		if (task_rq(p) == rq && task_on_rq_queued(p)) {
>  			struct rq *dest_rq = __migrate_task(rq, &rf, p, cpu);
> -- 
> 2.52.0
> 

-- 
Cheers,
Nathan

      reply	other threads:[~2026-09-29 20:27 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-29 16:47 [PATCH] sched/core: Fix context analysis errors in non-preferred CPU push Shrikanth Hegde
2026-09-29 20:27 ` Nathan Chancellor [this message]

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=20260929202720.GC3237201@ax162 \
    --to=nathan@kernel.org \
    --cc=dietmar.eggemann@arm.com \
    --cc=elver@google.com \
    --cc=iii@linux.ibm.com \
    --cc=juri.lelli@redhat.com \
    --cc=kprateek.nayak@amd.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=llvm@lists.linux.dev \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=sshegde@linux.ibm.com \
    --cc=tglx@kernel.org \
    --cc=vincent.guittot@linaro.org \
    --cc=vschneid@redhat.com \
    --cc=yury.norov@gmail.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.