From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 257243E0758 for ; Tue, 26 May 2026 11:37:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=90.155.92.199 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779795448; cv=none; b=Ew728JGMp2HU0wjW8gE2rWyCyrk9grNb6VcbYZ2vof6pcOwBrez2s30rTnMu9/NIS2OP6b1u9MEgDVqnEs9R+GdRgLuDAApiOX5EOMdYY2WzLl4Xa2bf+0CfIX1mellyVlezvMouZfkMWzQtydK82L/WpoPpil8WhpxGp6kxOPc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779795448; c=relaxed/simple; bh=r44Xt/7xL671+y/eS2DTdtMXXiwkQThd7EGnPtefZe8=; h=Message-ID:Date:From:To:Cc:Cc:Cc:Cc:Cc:Cc:Cc:Cc:Cc:Cc:Cc:Cc:Cc:Cc: Cc:Cc:Cc:Cc:Cc:Cc:Cc:Cc:Cc:Subject:References:MIME-Version: Content-Type; b=ryGUDL5PfLCKkoC7q5M9yMmfBK/huERHL8rDZnuVIRsee7R0ZhYzjfq7l26hNiaF3Lt4k/47hywu2QB52xT8xwTVwt5/BRr/KOcGHjvCBuri+VYZ2DSHSJ9Q1La6NNERiwOnThoED36dpqTXogeeJckm1uXmfeA+/kZ9JGbnU9o= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=infradead.org; spf=none smtp.mailfrom=infradead.org; dkim=pass (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b=eUX5GVcs; arc=none smtp.client-ip=90.155.92.199 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=infradead.org Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=infradead.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="eUX5GVcs" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Content-Type:MIME-Version:References: Subject:Cc:To:From:Date:Message-ID:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:In-Reply-To; bh=m87+WvYfaiN9KLfknSWGtPMTqpIsdP2+5lbxqYEJyQU=; b=eUX5GVcsGp158OuAgOEz2iTZQ7 xXjZLM2g4X9lbcygQ6mz3gtS2iTEXHuwbBjol4P1ZR/h0QRwmU4uRwODlIfcqtm1MymrNWmGXj+OU x2iaBWXqxhsuPjHUVe4rksU3x8EKZPlwZJUqnWJK0guPppJ17H5MTz+91CFV49dAZY5L5Ch7mv5AT he4/C/oyserJ+kTpbEIEPeS2D/ieq8OTK97zDZr7zz297gzP5SYIMqiungnYBf00LyOCfeFSPU3Zn W//hTZ9zwsVQHw4Av82J/3bd1/4MRU0MvnL3091CW/yANvOzaev/3MVDkohUPj4h64Im8rRG3d5ho d4dgldBA==; Received: from 77-249-17-252.cable.dynamic.v4.ziggo.nl ([77.249.17.252] helo=noisy.programming.kicks-ass.net) by desiato.infradead.org with esmtpsa (Exim 4.99.1 #2 (Red Hat Linux)) id 1wRq5y-0000000B6hV-00j1; Tue, 26 May 2026 11:37:14 +0000 Received: by noisy.programming.kicks-ass.net (Postfix, from userid 0) id 1FF5A302813; Tue, 26 May 2026 13:37:13 +0200 (CEST) Message-ID: <20260526113322.714832584@infradead.org> User-Agent: quilt/0.68 Date: Tue, 26 May 2026 13:16:15 +0200 From: Peter Zijlstra To: John Stultz , K Prateek Nayak Cc: Joel Fernandes , "Peter Zijlstra (Intel)" Cc: Qais Yousef Cc: Ingo Molnar Cc: Juri Lelli Cc: Vincent Guittot Cc: Dietmar Eggemann Cc: Valentin Schneider Cc: Steven Rostedt Cc: Ben Segall Cc: Zimuzo Ezeozue Cc: Will Deacon Cc: Waiman Long Cc: Boqun Feng Cc: "Paul E. McKenney" Cc: Metin Kaya Cc: Xuewen Yan Cc: Thomas Gleixner Cc: Daniel Lezcano Cc: Suleiman Souhlal Cc: kuyo chang Cc: hupu Cc: linux-kernel@vger.kernel.org Cc: Mike Galbraith Subject: [PATCH 6/6] sched: Simplify ttwu_runnable() References: <20260526111609.433880331@infradead.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Note that both proxy and delayed tasks have ->is_blocked set. Use this one condition to guard both paths. Signed-off-by: Peter Zijlstra (Intel) --- kernel/sched/core.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -3764,9 +3764,6 @@ static inline void proxy_reset_donor(str */ static inline bool proxy_needs_return(struct rq *rq, struct task_struct *p) { - if (!p->is_blocked) - return false; - scoped_guard(raw_spinlock, &p->blocked_lock) { /* Task is waking up; clear any blocked_on relationship */ __clear_task_blocked_on(p, NULL); @@ -3860,10 +3857,12 @@ static int ttwu_runnable(struct task_str return 0; update_rq_clock(rq); - if (p->se.sched_delayed) - enqueue_task(rq, p, ENQUEUE_NOCLOCK | ENQUEUE_DELAYED); - if (proxy_needs_return(rq, p)) - return 0; + if (p->is_blocked) { + if (p->se.sched_delayed) + enqueue_task(rq, p, ENQUEUE_NOCLOCK | ENQUEUE_DELAYED); + if (proxy_needs_return(rq, p)) + return 0; + } if (!task_on_cpu(rq, p)) { /* * When on_rq && !on_cpu the task is preempted, see if