From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f175.google.com (mail-pf1-f175.google.com [209.85.210.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BCC2738C407 for ; Fri, 7 Aug 2026 15:07:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.175 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786115239; cv=none; b=u2bk9hp2ps3aAYpD1z0pvZbzS4xr4Dxy9bduX955FxobG/JS23ezgJpFQRfEMBjsmSNrxJjNJgE0tEXedL61lD8OV8W1N27bENPOHuvDgF3dzI4hz7reHeOD3BAzaySUTtDfdA1k5fVNJQz0DSLL5OH5ZMv389C4SsSy/ReigcY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786115239; c=relaxed/simple; bh=NIjOw445NW8wfT7zmAMWXfjGn6aHYdMNI58xNaKX/ls=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=VPby7rR43WSg2P3plpSE1Wb58Ejs6vd6pmaC4tr+PmPh6Nk60MPHNHNSS3FBR85BqF1L6hRtQMcN/dWGPA77dYhnsdlY+3g3FG5fYhf8S1Yt+f7wYadBHANB9d78r6mOKJfVoMNEzK4f4fEwHRaWewwFCxa34CFvqrr0b6xrSl4= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=eSJHma0R; arc=none smtp.client-ip=209.85.210.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="eSJHma0R" Received: by mail-pf1-f175.google.com with SMTP id d2e1a72fcca58-84862b0d5aeso4057832b3a.2 for ; Fri, 07 Aug 2026 08:07:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786115237; x=1786720037; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=M8Q7mtdAXmBO5M5RnVs/wc2BIvcZDyd8K/yLefHqYOA=; b=eSJHma0RdbR1Q7GENbCpI+7thEqfUHj5/ozQjD/IRwJQzeH9Ixybw7LSrZOPKoeNSg 7Rm4Ia3dMIyBD3g5CXe7d4gh0C+//OZRsFa7xfqhIRgDMnQW0X/Z9QQq4kXlreZio1y9 lJunNpCGrJzc8RmOcmw+MvKfbL/19cFILTKspakow6NVj/kO9gG4nfm+WxOBh/5Gv8Xm HyN0dmjd0dhRr1sS5i4ezappVRs96BnfaYeqehD2eID5oYbegv197RkdwZ1dM4DX9r5t ZntDVoQ0R3Z432bTd4GuMfwmi2y/jutX0h5g+HhcJVbl1UfRcXulXbXdJNHcDf80G6P2 aJvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786115237; x=1786720037; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=M8Q7mtdAXmBO5M5RnVs/wc2BIvcZDyd8K/yLefHqYOA=; b=QkPBIN2wEaJo3w7L+BxnUlSXh+qZJnJf3HiQB8uaJvjlFVqCEpdMeAXzZLXJ1Y9E9M fgLl8cLOUk3+I9TIAX4/KPCThWFszKn3QiK+UZKnHQULXROIOweQO6JfeA4hLQ3WrK3P 2cCLGeT9SlMC3g25uKwBQqMFMNJJKEDoI9PtEwpU1ExSa6WAHnX1SHhPuY2QbFtjHpvL fjqV/mBWc/OFGai/4w448vFD/HeeWjIO27bEZKTtVRzPRG8Wy8YIaGAYIW7vcCaon+XY 0rkOuNiw5+6Pt5A8DaNrIaXmGAEqq4v/PKO4gfpcNDbUb4Ge1PQvtDbHhA3i765sJD42 1JXQ== X-Forwarded-Encrypted: i=1; AHgh+Rq04LW6VeNuHvlQA7sQZc7Y2I5O3pl4x925rwjvtlxC9LMS141m689RAdOolSV3zhGPNSECIluDxin/GU8=@vger.kernel.org X-Gm-Message-State: AOJu0YwaqYH2mkW1VqCo8qnP6W7ptRWh+U+qsjRJz0SH22e7X17zLNzw IN36g0V5DmjuvUkcD3am6sU75fJlfI2CDnDKqA18WR8x4Vitx1fA5R7O X-Gm-Gg: AR+sD10CeDyQA9x0NK4ruzYh71c4rQ2kZoQU0o/mxxM7sGQVfHjBIx0Ch/YJFljlIDW FZfZXihV/CWvWAXFixD6nP34YJ38C5cSvHAojE97tvVys6Pie0UvXJSGU6dPgZ9+Y41qYJTFlyI gqrJfmD3Mc5F/zkAWUsr1Mpz7yJGqvYdQVjnIQX33ilCXWWcliiOg8DdqtIsB1t9VCf5qC9VTED aW3g1+kkGEwrbBKu3b+iwvqymVFb4hg5ZpemOToSqJJsbBr4eu13Y5MHLocw7swdfMLNZxQzHUL a6kYfrczAHDVblaSYAs6i7ExJyZXjUgcenFLE0mx9WpXydNdIj9Hs5HsUJ37gPj5a1nU01ruR/D h+xzCmZ3Lv9vucp4u+q/XMfdBSxNK+mgptBECFjiL07uH86n6+4r9e+YUImwl4EVuOnY4AbmgyX p6BUJX9/0fAQe+dnvkfm+B91fABTqi/+yosARgv/onS/U63mS0FiRacahV8D4tVZ1fnAaP X-Received: by 2002:a05:6a00:2d0c:b0:84e:2382:f4f0 with SMTP id d2e1a72fcca58-84f2dfc8ed4mr25233567b3a.4.1786115236895; Fri, 07 Aug 2026 08:07:16 -0700 (PDT) Received: from localhost ([220.196.228.78]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-84f5a552c69sm1201342b3a.46.2026.08.07.08.07.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Aug 2026 08:07:16 -0700 (PDT) From: Liang Hao To: Ingo Molnar , Peter Zijlstra , Juri Lelli , Luca Abeni , Daniel Bristot de Oliveira Cc: Vincent Guittot , Dietmar Eggemann , Steven Rostedt , Ben Segall , Mel Gorman , Valentin Schneider , K Prateek Nayak , linux-kernel@vger.kernel.org, Liang Hao Subject: [PATCH] sched/deadline: Do not pull when the local CPU is the only overloaded one Date: Fri, 7 Aug 2026 23:07:09 +0800 Message-ID: <20260807150709.47181-1-haohlliang@gmail.com> X-Mailer: git-send-email 2.50.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Mirror the short-circuit added to pull_rt_task() by commit f73c52a5bcd1 ("sched/rt: Do not pull from current CPU if only one CPU to pull"): when dlo_count == 1 and the local CPU owns the sole dlo_mask bit, the for_each_cpu() loop skips this_cpu on every iteration and does nothing. Return early instead. pull_dl_task() shares the same overload-tracking design as the RT side -- dl_set_overload() mirrors rt_set_overload(), incrementing rd->dlo_count after an smp_wmb() that pairs with the smp_rmb() in the pull path -- but never got the matching check. DEADLINE has no RT_PUSH_IPI path, so this is the symmetric short-circuit only. No functional change. Signed-off-by: Liang Hao --- kernel/sched/deadline.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c index 857dbe3519a8..c3e38d4f3365 100644 --- a/kernel/sched/deadline.c +++ b/kernel/sched/deadline.c @@ -3222,8 +3222,9 @@ static void pull_dl_task(struct rq *this_rq) bool resched = false; struct rq *src_rq; u64 dmin = LONG_MAX; + int dl_overload_count = dl_overloaded(this_rq); - if (likely(!dl_overloaded(this_rq))) + if (likely(!dl_overload_count)) return; /* @@ -3232,6 +3233,11 @@ static void pull_dl_task(struct rq *this_rq) */ smp_rmb(); + /* If we are the only overloaded CPU do nothing */ + if (dl_overload_count == 1 && + cpumask_test_cpu(this_rq->cpu, this_rq->rd->dlo_mask)) + return; + for_each_cpu(cpu, this_rq->rd->dlo_mask) { if (this_cpu == cpu) continue; -- 2.50.1 (Apple Git-155)