From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) (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 DD39431E859 for ; Mon, 6 Apr 2026 14:49:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.171 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775486961; cv=none; b=NqLbR4auZqlKvKPzRTiQ3iNep4ytJymyKrwvxgXAAV9xK26bsV+AcRpbAY3Fr3IzpLaNs2tnKigRB04Cgt9FZtGMsupI+eTu1U1O7Bdx7k+ET3Jfve9JtOyPQG11bdvJcy1LLc4W38oC4JPkLQlNVj8zK+w+QIR1nNDf34SnRDs= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775486961; c=relaxed/simple; bh=CLqifUCn+tLu0VEohs+M3SSQnynIfAApf0DPx47hcqM=; h=Mime-Version:Content-Type:Date:Message-Id:Cc:Subject:From:To: References:In-Reply-To; b=Tfl7OStTx+1CNlYbF2pJ4ZK7xcb1/QGkOI9HNNyTFUzFy+yc6VxaIs42vifO4BU/Y5+1+XakA7hkxfqgxtSAI2qGuJmoWqG9ztEr+yI/zlx1P0iI462bd9O4x/zJXxa9CixhSOCzAWE9cJRx8qfCjxmd3dES+JRM8maGtlcszLw= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=etsalapatis.com; spf=pass smtp.mailfrom=etsalapatis.com; dkim=pass (2048-bit key) header.d=etsalapatis-com.20251104.gappssmtp.com header.i=@etsalapatis-com.20251104.gappssmtp.com header.b=e/nQg9x6; arc=none smtp.client-ip=209.85.214.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=etsalapatis.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=etsalapatis.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=etsalapatis-com.20251104.gappssmtp.com header.i=@etsalapatis-com.20251104.gappssmtp.com header.b="e/nQg9x6" Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-2ad21f437eeso20033625ad.0 for ; Mon, 06 Apr 2026 07:49:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=etsalapatis-com.20251104.gappssmtp.com; s=20251104; t=1775486959; x=1776091759; darn=vger.kernel.org; h=in-reply-to:references:to:from:subject:cc:message-id:date :content-transfer-encoding:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=NkhNub4LL3/cFTIw3iuBQjICw3ALHlWzhYc6XjKQcKY=; b=e/nQg9x6r1sVN0/1v/TSonLd2XnK69i3JPLHrgH3QXzIIhKKT2+EipAeESzupPe6Ed 4kXszk0jwOPeJkwM0pevdbjOpBC3T0Wad45NXVuFNwplmt47emh6AQ8el+5/+Tft/y4n pxhwUa/guHo3gwHXQC4WxElEnOOkY1+eOYaF85UfR1tcsWaWQQYWON8Wj7faSIDk54y0 UmhHy7PfufNcKNOa/AE853gW5NKoTFL2yGxz8i2sUqUUKbvAiTVBB3k3/ch/XxTLxjtn 12FxmbjFltd1pz/pYjwCQnCYFPOSNC+YaKQ5T+M5GvKaTF5wQvcL2z98+vfpU+37EIAy ehqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775486959; x=1776091759; h=in-reply-to:references:to:from:subject:cc:message-id:date :content-transfer-encoding:mime-version:x-gm-gg:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=NkhNub4LL3/cFTIw3iuBQjICw3ALHlWzhYc6XjKQcKY=; b=njbpAvA6b3Fb+Tboght10vl5ZRC4+yixR90S2Rt3RYEojln+OrjHAKH0ssigQ9eyuY ofWYJN99FQuLdN48ExwMmoAxZ2PIWzj0OyPuKgwn5RbjOlMZyK7XalAwE25wU7+bvLgG lJxCUP743d8XgaLdZTMB+vWEqPDiUgYm5tlx4R1ggvvuUq2bxCkyPaypB2EZwkylfl75 wD81ASWBm/Z4tJN6oy1EhvahJud299VtJaiWR1cAKi/F13fevAJa3pOfw0AFqQE16D8r pSYnCdhrb/Ks4eM6wbLtRflHxRJ+Yvx9y2uZWM+uRdTXwQQa+vJE+XcC9EvcukM1WU7P vOxQ== X-Forwarded-Encrypted: i=1; AJvYcCWl5eFgHaicrvSYuAcZJQZvdsCa10Lvpa+y4eVJmx0yfb3vet+X3zMIvEeOBlAwe/mJJ7gtPVPTweGS7UA=@vger.kernel.org X-Gm-Message-State: AOJu0YwaLHJzs/V0InG+tXNFeMJ+mi++a8RJPWgWV4NX3g5YasEKFJ6h Mx+P+/YHpdM6PkZh+L0y5R87uZGLXStAq8Znto6CaKaohGvvkhbyLMaYK3Yj/plId/0= X-Gm-Gg: AeBDievzzgGxBRoMMbjHmaGrTiJAK2YZeFeWdF5U6D4qKcaZ6CtaUVNiuFdzL40PtT0 mV699qVMK/YoZmbUiXZ6taA8zqwZQBP+JU4WpNSAxunGcgLo2TmcHdOb5vp5QSi6VoqVfLxSYe1 RjESHgQiYCpX/qXuEfxnPiR/GZnvzhTmD2Ff9E3JfE2KEGYovU8QnHh8y6/rJaa2dNZYkWq6HoR FkyfBYlrcg+PaniYyPTFJCe3a5S2YQorpbtZtOGzc989hBLrQuZ4aJjrVLgyoJXfVvaOtUrjE2w 0tXL+aaziGLZESYLvRTjUj/aLbM447HlRuaLNmNtW6fLpOwPG5VvdaDUOV16OzhCJeUHFeRuGwI Vr/R0fAz5XOi3jka3FcMGtoqixE/CvkUIeBnDfeBdCLhcHC2cPAhFR8JJ2aoTa3Wf8tIdg+0qv0 i292hL5KM= X-Received: by 2002:a17:902:e78d:b0:2b0:b214:3bf0 with SMTP id d9443c01a7336-2b277e370a6mr138357705ad.17.1775486959108; Mon, 06 Apr 2026 07:49:19 -0700 (PDT) Received: from localhost ([2604:3d08:487d:cd00::5517]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b2747530e4sm147753145ad.18.2026.04.06.07.49.18 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 06 Apr 2026 07:49:18 -0700 (PDT) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 Date: Mon, 06 Apr 2026 10:49:18 -0400 Message-Id: Cc: "Christian Loehle" , "Kuba Piecuch" , "Emil Tsalapatis" , , Subject: Re: [PATCH sched_ext/for-7.1] sched_ext: Documentation: Add ops.dequeue() to task lifecycle From: "Emil Tsalapatis" To: "Andrea Righi" , "Tejun Heo" , "David Vernet" , "Changwoo Min" X-Mailer: aerc 0.21.0-0-g5549850facc2 References: <20260406114755.840497-1-arighi@nvidia.com> In-Reply-To: <20260406114755.840497-1-arighi@nvidia.com> On Mon Apr 6, 2026 at 7:47 AM EDT, Andrea Righi wrote: > Document ops.dequeue() in the sched_ext task lifecycle now that its > semantics are well-defined. > > Also update the pseudo-code to use task_is_runnable() consistently and > clarify the case where ops.dispatch() does not refill the time slice. > > Fixes: ebf1ccff79c4 ("sched_ext: Fix ops.dequeue() semantics") Is the Fixes: tag appropriate here? It's not like the original patch introduced a bug by fixing ops.dequeue(). Otherwise the state machine looks fine to me! Reviewed-by: Emil Tsalapatis > Signed-off-by: Andrea Righi > --- > Documentation/scheduler/sched-ext.rst | 24 +++++++++++++++--------- > 1 file changed, 15 insertions(+), 9 deletions(-) > > diff --git a/Documentation/scheduler/sched-ext.rst b/Documentation/schedu= ler/sched-ext.rst > index 404b4e4c33f7e..9f03650abfeba 100644 > --- a/Documentation/scheduler/sched-ext.rst > +++ b/Documentation/scheduler/sched-ext.rst > @@ -422,23 +422,29 @@ by a sched_ext scheduler: > =20 > ops.runnable(); /* Task becomes ready to run */ > =20 > - while (task is runnable) { > + while (task_is_runnable(task)) { > if (task is not in a DSQ && task->scx.slice =3D=3D 0) { > ops.enqueue(); /* Task can be added to a DSQ */ > =20 > - /* Any usable CPU becomes available */ > + /* Task property change (i.e., affinity, nice, etc.)? */ > + if (sched_change(task)) { > + ops.dequeue(); /* Exiting BPF scheduler custody */ > + continue; > + } > + } > =20 > - ops.dispatch(); /* Task is moved to a local DSQ */ > + /* Any usable CPU becomes available */ > + > + ops.dispatch(); /* Task is moved to a local DSQ */ > + ops.dequeue(); /* Exiting BPF scheduler custody */ > =20 > - ops.dequeue(); /* Exiting BPF scheduler */ > - } > ops.running(); /* Task starts running on its assigned C= PU */ > =20 > - while task_is_runnable(p) { > - while (task->scx.slice > 0 && task_is_runnable(p)) > - ops.tick(); /* Called every 1/HZ seconds */ > + while (task_is_runnable(task) && task->scx.slice > 0) { > + ops.tick(); /* Called every 1/HZ seconds */ > =20 > - ops.dispatch(); /* task->scx.slice can be refilled *= / > + if (task->scx.slice =3D=3D 0) > + ops.dispatch(); /* task->scx.slice can be refilled *= / > } > =20 > ops.stopping(); /* Task stops running (time slice expire= s or wait) */