From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f199.google.com (mail-pf1-f199.google.com [209.85.210.199]) (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 670061F427C for ; Fri, 7 Aug 2026 03:52:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.199 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786074757; cv=none; b=eYUPluh8VcKz6g3LC4knVYVrZDFBBgym0vip9Ui9CrAs5rlpus8NIWw7JqGsBI4AODVbepqrXtcdoWvmpXPDeBBSPujvzwy8f8T9ceGeniU95tmrxpfWn5eRkELmuMqvcZMBaj4/BeVtmn+w23QaBTIt3C3fFnHj3pWxka4SUJE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786074757; c=relaxed/simple; bh=bk3eLBZGyN9A3ZWCcIMLG47lxkE2OoQIRajzwrLZzCs=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=T1ZZecIxU9d/ZzoN+gcE/0JDHRUnG8/l8pqSU7CgIanjpK4vqi/R43oJXSfDNb4HNDYG4s9brqt3QDSGcJkVhsoVEOC4QYQ+OC9at2UZHYij8GgzatLzAtqVWcb6HLfPFof6F0DrMdM9g2Uxosa9cxXZSr+bDc6HywPDJzDp4kY= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--jstultz.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=HkTgcsLE; arc=none smtp.client-ip=209.85.210.199 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--jstultz.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="HkTgcsLE" Received: by mail-pf1-f199.google.com with SMTP id d2e1a72fcca58-8486ffba174so6730912b3a.1 for ; Thu, 06 Aug 2026 20:52:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1786074756; x=1786679556; darn=vger.kernel.org; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:from:to:cc:subject:date:message-id:reply-to :content-type; bh=0HxBWbJx8Yu4nhKNYzoLJtzmsIzjapjobp3VL0mMJ0U=; b=HkTgcsLEGWwc7XBoGWKKp7FcCID4hNCPAQJcXkaXfDza8Iyl8nJ3DXjoU1jlNlIshT tCeZG/keIPyInO6cK8t+1MUUYGtAqxycXeW0OmXAnPNx6wqF5qSVuPX9H78/trMpw4QB axnqOrVh0Vv3HK6LoOOKRX61wlVM1WWxZIAKZggsyqRB2znLmFkcKMrX6SQsNTFk6Q5a a3+jdVH641Us/fI/8vvLbiPA9YbfLswtCux8vSQpO+MTySWK4rVsLsTYrxhahthaJcr/ V4gMVLP6RC9O/aDCDKHLzeuZjrcm1kRqFCKqCmWHVpAYUHXLguC0TtJGVVG8cvZzQ/e9 gyUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786074756; x=1786679556; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=0HxBWbJx8Yu4nhKNYzoLJtzmsIzjapjobp3VL0mMJ0U=; b=E7ixE0jtWD5p+sVOWv3OYt8jC9vyTu8iht/QKUL5MkY0uZQRB0Ap6hLAsgo5K07Q9y ptsUYnGdVDvp2e6b6IRAM/WZyjJ3P8QH/j6W+t33cTMQSvlF4uVB6FYLXGOk+I4B7GBU pA2TUi2QZoM/OkaO2wEM2I9RIqltqKfP9RCVHYqfPjVAMArNPpHrqeltv2v9vqB7G0iJ qL2UOeaCNDKMDy0ZhuKYjVGCDalpLgWHaQ98p57iAyHqEiLGr5RT34WEOOM17nfy9ecc wrk9CB1Sp7k0X+LaSGPP//Sxj1l0IffnxQPimQoZHJ2UTMWEijVXtNR9AOrZpBbmt/Ar BkLw== X-Gm-Message-State: AOJu0YztBlp73F4ez4GBpKplifrwj7TgjREcqKEQzi8+YYf16zevdsoM eXcDw5VIr27nHTbXAmfwWzj93uuNof3kv3VmF8IHdC66Jo0EVNKEni2RpcI+zBZrApDpzkt17i/ M9cXWxBkW9o+rGuL3bdsCZ0rbEaIQTNm1DwGKc7+theB/LdjyfmrRcbGjc/4AZmWgFKfmyXb/Ov 04jSAL7L/8/+H6I+b3GbiMoLJGt+1EIiUnQkjXDREupsgZECWo X-Received: from pfet15.prod.google.com ([2002:aa7:938f:0:b0:82f:d8c0:fef8]) (user=jstultz job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:2d8f:b0:848:48c6:480c with SMTP id d2e1a72fcca58-84f2e00e9ddmr21193745b3a.24.1786074755287; Thu, 06 Aug 2026 20:52:35 -0700 (PDT) Date: Fri, 7 Aug 2026 03:52:07 +0000 In-Reply-To: <20260807035232.1881495-1-jstultz@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260807035232.1881495-1-jstultz@google.com> X-Mailer: git-send-email 2.55.0.654.g21b8a5bc05-goog Message-ID: <20260807035232.1881495-2-jstultz@google.com> Subject: [RESEND][PATCH v31 1/9] sched/deadline: Ignore proxy-exec sched_yield() From: John Stultz To: LKML Cc: Christian Loehle , Juri Lelli , John Stultz , Joel Fernandes , Qais Yousef , Ingo Molnar , Peter Zijlstra , Vincent Guittot , Dietmar Eggemann , Valentin Schneider , Steven Rostedt , Ben Segall , Zimuzo Ezeozue , Will Deacon , Waiman Long , Boqun Feng , "Paul E. McKenney" , Metin Kaya , Xuewen Yan , K Prateek Nayak , Thomas Gleixner , Daniel Lezcano , Suleiman Souhlal , Andrea Righi , kuyo chang , hupu , kernel-team@android.com Content-Type: text/plain; charset="UTF-8" From: Christian Loehle With proxy execution, rq->curr is the execution context while rq->donor is the donating context. rq->curr's sched_yield() is dispatched through the donor class so that proxy execution follows the effective scheduling context. For SCHED_DEADLINE, this is too strong. yield_task_dl() does not just ask for another task of equal priority to get to run, it marks the current DL entity as yielded and forces it to sleep until replenishment. These yield semantics are fundamentally different from FIFO/RR (where if no equal-priority tasks are runnable, no harm done, they get picked again immediately) or OTHER (also doesn't cause priority inversion), so do not mix these semantics by ignoring a sched_yield() on DL donors. Fixes: 127b90315ca0 ("sched/proxy: Yield the donor task") Acked-by: Juri Lelli Signed-off-by: Christian Loehle Signed-off-by: John Stultz --- Cc: Joel Fernandes Cc: Qais Yousef Cc: Ingo Molnar Cc: Peter Zijlstra 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: K Prateek Nayak Cc: Thomas Gleixner Cc: Daniel Lezcano Cc: Suleiman Souhlal Cc: Andrea Righi Cc: kuyo chang Cc: hupu Cc: kernel-team@android.com --- kernel/sched/deadline.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c index 0f858b98c9aa3..3e89b3abeb278 100644 --- a/kernel/sched/deadline.c +++ b/kernel/sched/deadline.c @@ -2574,6 +2574,9 @@ static bool dequeue_task_dl(struct rq *rq, struct task_struct *p, int flags) */ static void yield_task_dl(struct rq *rq) { + if (sched_proxy_exec() && rq->curr != rq->donor) + return; + /* * We make the task go to sleep until its current deadline by * forcing its runtime to zero. This way, update_curr_dl() stops -- 2.55.0.654.g21b8a5bc05-goog