All of lore.kernel.org
 help / color / mirror / Atom feed
From: Shrikanth Hegde <sshegde@linux.ibm.com>
To: linux-kernel@vger.kernel.org, mingo@kernel.org,
	peterz@infradead.org, llvm@lists.linux.dev, nathan@kernel.org
Cc: sshegde@linux.ibm.com, 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: [PATCH] sched/core: Fix context analysis errors in non-preferred CPU push
Date: Tue, 29 Sep 2026 22:17:12 +0530	[thread overview]
Message-ID: <20260929164712.1054883-1-sshegde@linux.ibm.com> (raw)

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>
---
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


             reply	other threads:[~2026-09-29 16:47 UTC|newest]

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

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=20260929164712.1054883-1-sshegde@linux.ibm.com \
    --to=sshegde@linux.ibm.com \
    --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=nathan@kernel.org \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    --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.