From nobody Thu Apr 9 17:15:22 2026 Received: from mail-pg1-f176.google.com (mail-pg1-f176.google.com [209.85.215.176]) (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 14C653A9DB1 for ; Fri, 6 Mar 2026 14:03:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772805818; cv=none; b=qRZmp0Y4C+5Mh406sOE7PAkXsFn9yxsUS9q4ku63+WDZ8NJelOJovi8hGUTncLmLgPRP/d7QFRnJr1FSEjt6RBhh2AWQmZzhddp2DFksrIfhpY4dzKirfvNp+utj+zKyxL8F1IfEY+Mgeghx9r4qAOekJ7BtH3p12oHu/KYbHh0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772805818; c=relaxed/simple; bh=z3V40F0kGIL8yvCLdRRK98TbuZQ8stHEY3dTCT0ogJk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lntCmWrP7BWC10+ORIQ65aM4I1bFzEbU/uQjzhDDxh8Wx/Umbsy7n4c1XKalJ4fZBpomXnc98lvVOBxLd+94JSQ6HAUr35DKF97XP//KNm5RCZb+cF6po5y34SZer/wem0YJO5fb1TmeV5IcXdyvoe+CznKY4c4/C1w/UbtWYDs= 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=bcly7hUo; arc=none smtp.client-ip=209.85.215.176 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="bcly7hUo" Received: by mail-pg1-f176.google.com with SMTP id 41be03b00d2f7-c70bfef17a4so5520829a12.2 for ; Fri, 06 Mar 2026 06:03:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772805816; x=1773410616; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=/ZzuQXuKro+GXBxmmjg8yJdwWTDQZtX+cD1VaFXmUG0=; b=bcly7hUoYrirOiTEqLwYt88e8ehbRB0ys+3G9lqslxQO5+H5I5PJmWnSJVdkqSlL9N OIqAlqJPGAAeyFOoU3Rq5D9UkaRtQYRRFWO4q2DygReJcwkZ+jisueNcQ3UDD1XxR7TZ OBR/DGxMvt0H7Pmn601W6YcmZMmGF7Gy8zeXiTFIf0qFKovo6a4vIeZ/U06CBU6ZUrKO DH5Hil97XxHzAyouPvBgmcfGoqjrBB3w8rEhOhwufM/cMBztmhHwoOdpOXEhef9heufx v/7aGBUtmgQNt7VT4OcV+15GYIdMDRoZAevSIQGRRB5NmUXV8DFteeXU0LYZwg6yNXYP 1+pA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772805816; x=1773410616; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=/ZzuQXuKro+GXBxmmjg8yJdwWTDQZtX+cD1VaFXmUG0=; b=ccJy+OShopxPOdDy/SvTcuUovqJ4ZlnSDNFnAwgux2/5qDWy9iBkcqeiFU6E19Vu8N 12nF5KmfAC+i9490tUv/WA6OwoOz1H4sQR+DdfPFDTY8hUa4sqeApngFONqbeGbtI54m nBHxnnGNKEe5J8hh68S9Cw0IsttDWMsEzY8q98eGU7uZjHZQP07/ns7KpXEh9/K5Llow D71GK4T9GyHj2C9brveQbj+7UfjAV+3I92R3cwl535oQqTq0ctUGQf86cFnjwOaXFueo CL2wprMBm7Jb2e+KWCXlXz344X5Ic8agn67rEFH19rBn/LPjIoYi6Qo7JV9TDK+NWUnm MbzA== X-Forwarded-Encrypted: i=1; AJvYcCWfeJKtKeGO+LfJdlxGuGRFmYz8rSp9Nj0qFphPEFoZ2lqdtoKFW0IErQicZwsY9xOqMrvvQdhhseKa7YA=@vger.kernel.org X-Gm-Message-State: AOJu0YweoWV3Bmq+lyqhQnPs1+HBl9+40DDdpswnY7G7+O4/8Y+d5Cfg sTL7Now5E+aZhftAlynGoA5kfV7euFSYwOovf8zlPtARidL2IZTKdcrc X-Gm-Gg: ATEYQzywkyWAb7TUu+GXPXfCPMzhp5kgzXWhlUvwK3I0IdJ9GlfDCy8Jj3T0zNN42bv 6aGkkMsUOlObStpreUn7crUcfl9pHUneMlUAddtpBeLwGh6D6j0X3loj7upsmPZtXl8C5e1ZSZD 6mG1vSZdBWqIbVVWaj59duUykuoDzU4/WFOeWgt3F1HjTR6aAJRZjDIQFI1p1xREi0ganeUQ1Wt tKAYtAyxlliA+kMsiTm9OpgX1GBATzR0E1hQijufjjTaR+q7jENFzBkz6GeYBwEodnzmhGEJ0nt amgcu6ykWY8HQu7L/muUO8etlCKY2r5Y45gvghwvIM0mvgF00HTuibmZ6KEvSyLaI7C9+0x6et7 4YADFx3zIGmE6P4RVZJsxI6Np8i2zpf9zxkbJ0H7te1iBAWv5PgKCZV7cHJBpHvuJvPUw0kDYKz GnJlW06zLzY8r9iUsQjk28nPG5jIqLofqraSDz98uHVuxJ2KnxTardEoVfzviIn3JssbNvElAdX DA= X-Received: by 2002:a17:902:ef0a:b0:2ae:4fc7:8053 with SMTP id d9443c01a7336-2ae82481982mr29214585ad.46.1772805814651; Fri, 06 Mar 2026 06:03:34 -0800 (PST) Received: from mi-HP-ProDesk-680-G6-PCI-Microtower-PC.mioffice.cn ([43.224.245.226]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ae840ccb6csm29134715ad.92.2026.03.06.06.03.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Mar 2026 06:03:34 -0800 (PST) From: zhidao su X-Google-Original-From: zhidao su To: tj@kernel.org, sched-ext@lists.linux.dev, linux-kernel@vger.kernel.org Cc: void@manifault.com, arighi@nvidia.com, changwoo@igalia.com, linux-kselftest@vger.kernel.org, Su Zhidao Subject: [PATCH 1/5] sched_ext: Remove deprecated SCX_OPS_HAS_CGROUP_WEIGHT flag Date: Fri, 6 Mar 2026 22:03:21 +0800 Message-ID: <20260306140325.2710927-2-suzhidao@xiaomi.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260306140325.2710927-1-suzhidao@xiaomi.com> References: <20260306140325.2710927-1-suzhidao@xiaomi.com> 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" From: Su Zhidao SCX_OPS_HAS_CGROUP_WEIGHT was deprecated in 6.15 with a comment 'will be removed on 6.18'. Now that we are at 6.18, remove it. The flag was a no-op and only triggered a pr_warn() on use. Remove the flag definition, the warning, and update scx_flatcg which was the last in-tree user. Signed-off-by: Su Zhidao --- kernel/sched/ext.c | 3 --- kernel/sched/ext_internal.h | 8 +------- tools/sched_ext/include/scx/enum_defs.autogen.h | 1 - tools/sched_ext/scx_flatcg.bpf.c | 2 +- 4 files changed, 2 insertions(+), 12 deletions(-) diff --git a/kernel/sched/ext.c b/kernel/sched/ext.c index c4ccd685259f..56ff5874af94 100644 --- a/kernel/sched/ext.c +++ b/kernel/sched/ext.c @@ -5061,9 +5061,6 @@ static int validate_ops(struct scx_sched *sch, const = struct sched_ext_ops *ops) return -EINVAL; } =20 - if (ops->flags & SCX_OPS_HAS_CGROUP_WEIGHT) - pr_warn("SCX_OPS_HAS_CGROUP_WEIGHT is deprecated and a noop\n"); - if (ops->cpu_acquire || ops->cpu_release) pr_warn("ops->cpu_acquire/release() are deprecated, use sched_switch TP = instead\n"); =20 diff --git a/kernel/sched/ext_internal.h b/kernel/sched/ext_internal.h index bd26811fea99..3c86c53e1975 100644 --- a/kernel/sched/ext_internal.h +++ b/kernel/sched/ext_internal.h @@ -174,19 +174,13 @@ enum scx_ops_flags { */ SCX_OPS_BUILTIN_IDLE_PER_NODE =3D 1LLU << 6, =20 - /* - * CPU cgroup support flags - */ - SCX_OPS_HAS_CGROUP_WEIGHT =3D 1LLU << 16, /* DEPRECATED, will be removed = on 6.18 */ - SCX_OPS_ALL_FLAGS =3D SCX_OPS_KEEP_BUILTIN_IDLE | SCX_OPS_ENQ_LAST | SCX_OPS_ENQ_EXITING | SCX_OPS_ENQ_MIGRATION_DISABLED | SCX_OPS_ALLOW_QUEUED_WAKEUP | SCX_OPS_SWITCH_PARTIAL | - SCX_OPS_BUILTIN_IDLE_PER_NODE | - SCX_OPS_HAS_CGROUP_WEIGHT, + SCX_OPS_BUILTIN_IDLE_PER_NODE, =20 /* high 8 bits are internal, don't include in SCX_OPS_ALL_FLAGS */ __SCX_OPS_INTERNAL_MASK =3D 0xffLLU << 56, diff --git a/tools/sched_ext/include/scx/enum_defs.autogen.h b/tools/sched_= ext/include/scx/enum_defs.autogen.h index dcc945304760..80c885f781ba 100644 --- a/tools/sched_ext/include/scx/enum_defs.autogen.h +++ b/tools/sched_ext/include/scx/enum_defs.autogen.h @@ -91,7 +91,6 @@ #define HAVE_SCX_OPS_SWITCH_PARTIAL #define HAVE_SCX_OPS_ENQ_MIGRATION_DISABLED #define HAVE_SCX_OPS_ALLOW_QUEUED_WAKEUP -#define HAVE_SCX_OPS_HAS_CGROUP_WEIGHT #define HAVE_SCX_OPS_ALL_FLAGS #define HAVE_SCX_OPSS_NONE #define HAVE_SCX_OPSS_QUEUEING diff --git a/tools/sched_ext/scx_flatcg.bpf.c b/tools/sched_ext/scx_flatcg.= bpf.c index 0e785cff0f24..a8a9234bb41e 100644 --- a/tools/sched_ext/scx_flatcg.bpf.c +++ b/tools/sched_ext/scx_flatcg.bpf.c @@ -960,5 +960,5 @@ SCX_OPS_DEFINE(flatcg_ops, .cgroup_move =3D (void *)fcg_cgroup_move, .init =3D (void *)fcg_init, .exit =3D (void *)fcg_exit, - .flags =3D SCX_OPS_HAS_CGROUP_WEIGHT | SCX_OPS_ENQ_EXITING, + .flags =3D SCX_OPS_ENQ_EXITING, .name =3D "flatcg"); --=20 2.43.0 From nobody Thu Apr 9 17:15:22 2026 Received: from mail-pg1-f179.google.com (mail-pg1-f179.google.com [209.85.215.179]) (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 855AE3A9619 for ; Fri, 6 Mar 2026 14:03:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772805819; cv=none; b=rLbP6/nbmRP8QyPtWpL3fF9NvjgUh+3OvSSpF6sTFIl5LqGbZQlX0J6lamz7h+d3ijQzHg/64pC94weTn2wR+FphO0vtPEfoofhfr74yidkOr851npi1uhiMPL2hcNsNvBs0GIg5lxwiaPAP+5QauG28iDVXEOPqj7fqy6ERROA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772805819; c=relaxed/simple; bh=0OeY0xReBFL8eCyB/FrdWjGk3Mhp+R/qkHPO1eyeEZ0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qAXsNblIPhXxNakhxdLx162EF8bZ0fppBSTXMDiCsvwhrVCMuV/XSsfAPfDhYAF7VLDYkO7lmD6YfVyEAg9INAArADmBhKPLht/2RJ0vVtAdYZIXziUwvqDmGANgPWiXzh04+mm/XWslCJNb5aZfQNPhH/VZCT+yxzTHu4Dxd2w= 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=inGOAYTi; arc=none smtp.client-ip=209.85.215.179 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="inGOAYTi" Received: by mail-pg1-f179.google.com with SMTP id 41be03b00d2f7-c739e680bebso196122a12.1 for ; Fri, 06 Mar 2026 06:03:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772805818; x=1773410618; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=usOL8l/KNsMfxD0BXV4D931Ky3sdKsa4TTa5Fbius5w=; b=inGOAYTiu0w+RDHWpGxcxVszoD/K/YwzQok9zuj/mp60hMxZbb57QW9DHATR3j11ga r6Y9miONheE85UdyAIH+yCidFPX8lctxyvmg7GeAWBclocK57RzhjLwy7daoLZJTuK0t JLP1QYUsMyrXfhJQlUZdvWTgWQ0kLSpwy3qmS/dgdp7QnPGsAjt68Ada80azYANzDRqu 78oCnMny0jYYDTLp9/JVuQOhkmQ/KVv8SNTjyBPhC3Bs0yBHAAgx2cYzYpyhPB29bEpq agbzgWws8qPb6Hk0llYm1i9qebzRd8CWp8K0YWNMzFkQiGtzgZuyJ2pJNx6+MjT6dhwA NX+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772805818; x=1773410618; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=usOL8l/KNsMfxD0BXV4D931Ky3sdKsa4TTa5Fbius5w=; b=FTmFvViWYg8BxsrzxIMlCH4YtevEQNfim0MW8OjmLbxQoby3pq0FIMttwP780dCCLB PvQHLWAecwa+Vrp3eFkUxEhV1nbhQSmLL06jIG8gz0eqRCn/SW6oFp2sA+wXoDC/LNmD Lp9bQlJHYrXGQCW4ax80bZ5V2BL6RDNP0JFvF9PzgfpxACMJJeXAwq0QLxQKgEsm6BD6 2kXkjXSLNlQWc5cSTnhuzQQ5fCUl2FWmXyGXjLem3M4HX+P5U3Av0uJ693C2ESq2ajdK z3usBJ4v6TURqM6CxEZYLjUCeaz0s3KfO8lyzO05aGnooT3q3kwCXTmfvMNZUSMC2OBb 43VA== X-Forwarded-Encrypted: i=1; AJvYcCXjtI6VM1teIBnOiSSUcBbTqwTLcY0aCF8KTgVCGTqnhwaifM7IcdigBXXAGQSG1rHsjR1ZaN9vgozZhFc=@vger.kernel.org X-Gm-Message-State: AOJu0YwAEQqwznFy2KwowDmHnAU8w/836+o8fgReamPOJ7RsceEwzgJ1 8Xso3TjZdLqRbRF3/z8FtRe4Nb80if+VUZOqHf/eaKqP9XKUHX4Cp3v9 X-Gm-Gg: ATEYQzyVvHzzXuxx3BlvKTmR5rAN9lvuQb6W6CzleP8ha/Enx73Qc93HKsqkWpAS7xE vmCFZKIuC9cEmWptx/YFxjdgyI2ZsnuoBWx6amcC1WBmx+56YkBLKHv35zrhl74YAosyyZcJIvd wpNOprSS40Aik5C40zIyWRpt+uKEWj3rn2MBBmEh2jiLCta4K4KL4gXPDJYeG8C3JtFVS9lP69C nLHwAgkAPA2h9OnWWRDHSroDYmg1sRaHewVLdcHFyset0Zpy9I+pOpAMeiU1POSktBppSdJsUOb kdc5x/gwNw1JUa9kYTe03x1QIt24w3JXqSARb1s0mKRnthhSeIrL7XqI7FexATlAsrrShQuUzps 6RgBNVkIRIwljnry3gyxCp8n5G7oqhj/0EBkSqSEDU3n3rzO5SHH1IqG3GYY0fSr7u+yTFruN5a Zim5HhRZW+u6StEGKGo8LAcSlAxBFeHcVtT4mqnpvyNfCymUWT6k0T8LxHhQwVeCe5a1csiGzBU 1w= X-Received: by 2002:a17:903:3a8b:b0:2ad:da28:8c7a with SMTP id d9443c01a7336-2ae829622bemr21398275ad.8.1772805817813; Fri, 06 Mar 2026 06:03:37 -0800 (PST) Received: from mi-HP-ProDesk-680-G6-PCI-Microtower-PC.mioffice.cn ([43.224.245.226]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ae840ccb6csm29134715ad.92.2026.03.06.06.03.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Mar 2026 06:03:37 -0800 (PST) From: zhidao su X-Google-Original-From: zhidao su To: tj@kernel.org, sched-ext@lists.linux.dev, linux-kernel@vger.kernel.org Cc: void@manifault.com, arighi@nvidia.com, changwoo@igalia.com, linux-kselftest@vger.kernel.org, Su Zhidao Subject: [PATCH 2/5] sched_ext: Add comments to scx_bypass() for bypass depth semantics Date: Fri, 6 Mar 2026 22:03:22 +0800 Message-ID: <20260306140325.2710927-3-suzhidao@xiaomi.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260306140325.2710927-1-suzhidao@xiaomi.com> References: <20260306140325.2710927-1-suzhidao@xiaomi.com> 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" From: Su Zhidao The bypass depth counter (scx_bypass_depth) uses WRITE_ONCE/READ_ONCE to communicate that it can be observed locklessly from IRQ context, even though modifications are serialized by bypass_lock. The existing code did not explain this pattern or the re-queue loop's role in propagating the bypass state change to all CPUs. Add inline comments to clarify: - Why bypass_depth uses WRITE_ONCE/READ_ONCE despite lock protection - How the dequeue/enqueue cycle propagates bypass state to all per-CPU queu= es Signed-off-by: Su Zhidao --- kernel/sched/ext.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/kernel/sched/ext.c b/kernel/sched/ext.c index 56ff5874af94..053d99c58802 100644 --- a/kernel/sched/ext.c +++ b/kernel/sched/ext.c @@ -4229,6 +4229,14 @@ static void scx_bypass(bool bypass) if (bypass) { u32 intv_us; =20 + /* + * Increment bypass depth. Only the first caller (depth 0->1) + * needs to set up the bypass state; subsequent callers just + * increment the counter and return. The depth counter is + * protected by bypass_lock but READ_ONCE/WRITE_ONCE are used + * to communicate that the value can be observed locklessly + * (e.g., from scx_bypass_lb_timerfn() in softirq context). + */ WRITE_ONCE(scx_bypass_depth, scx_bypass_depth + 1); WARN_ON_ONCE(scx_bypass_depth <=3D 0); if (scx_bypass_depth !=3D 1) @@ -4263,6 +4271,10 @@ static void scx_bypass(bool bypass) * * This function can't trust the scheduler and thus can't use * cpus_read_lock(). Walk all possible CPUs instead of online. + * + * The dequeue/enqueue cycle forces tasks through the updated code + * paths: in bypass mode, do_enqueue_task() routes to the per-CPU + * bypass DSQ instead of calling ops.enqueue(). */ for_each_possible_cpu(cpu) { struct rq *rq =3D cpu_rq(cpu); --=20 2.43.0 From nobody Thu Apr 9 17:15:22 2026 Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) (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 D2F113AE18B for ; Fri, 6 Mar 2026 14:03:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772805823; cv=none; b=AHbv8yeuKT5ohptDBEQZ2AuFPh+5mDeVMJIDXFcXesCi41OCXXa1xnkV2jcmOhN4l5s85rJEPK+EF72f8dwkknwjsouxHiKzLpAWx6O4v8QMq0i0QKGpt5ndWpPlVtGEQLQe/E/puZTYC4Hx1VoGx4fTwoQ+lK8Te0ww5DjUHBc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772805823; c=relaxed/simple; bh=ELlzxJVqqauBzRnx2M/V3kWxTpAmlO4Sa9vwg7vpvVA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rwGMMBCFbs7p1O/o15mKF/xKoldH5LQ6H6kGXh8r4DC5J9oyqc7cr0uFJPJzGddTMPQwZrJ83v/Maxk3yQKBCrmKBlkcnZnhkzjBWyayiXIw5mivCzreVZHzUiexALRVGvezE6GQILXTt2QEvvd0goG+aQmSXQmKA/JjXw/JibQ= 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=iJ3ZT/i9; arc=none smtp.client-ip=209.85.214.172 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="iJ3ZT/i9" Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-2ae88e16485so778505ad.0 for ; Fri, 06 Mar 2026 06:03:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772805821; x=1773410621; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=lEmGv2FLRFuslu4qBQwLsjeV3m7Edv0VCgYCAY8R+hU=; b=iJ3ZT/i9pT5F+PL/lUqgCmJRyC7ErME0o8I+Ll/35cu1pjYYAe9qKaZNTUA2yGqoNe mjsGXB3YdGYRHwlgUIvrNxe2bbUY+Lm59Ft1j3uN7WuntEyCOsDGKaob4mvFFAd+5uZ4 1cJhqhWr8vIjASvLOcLyZT8/DOjiT3vc4SUHsAnsGQ49Da7bQI8yHG+Oe1EmSfsBYtI7 zKLX+rAbRJ7LvSrQWcsIYqAab48bYf7355ZK8R/DjUthaci+TYhqAu2NT7seRVJdc/yD 5wceVOlymYEnoiINxwH9sL6wcB/fpIl7B2oeHZSh0iROCPqlGX2MvZNr33AMoY7733Z1 bGlw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772805821; x=1773410621; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=lEmGv2FLRFuslu4qBQwLsjeV3m7Edv0VCgYCAY8R+hU=; b=T6+LeTunb1qJ2tu1b91nNaqHyaGJTpjdo6tsy1oSgXFdyc8B5ZhPYf/96F9UX7CHXk cUFad4h+9mdtLDrqmu7i11Gzwa+TYuo7cjXoMRBkzZti2iz48zpLOtq96u8KPNCQBmyk nEQqGVYcVqN7tJrajCOo9BpUe2GLwWC4mKNT8vj1aEOJc2lQ1CMmqJexwD1JP0ukjJAk d2m4hXHM1yo5y10jvRFFl558sXzhJoS3G+9RvTHfucsI95Q8+UC3M1BDa/8G3u3ag7ow P6ozB1pOIZoOFHvl3N7VNq05Psy4ArvDnAo0aJSUVojnzSEVTtPd8XHTM9msXzA/Dmi1 0pQA== X-Forwarded-Encrypted: i=1; AJvYcCVHnEpUHemfRie+YZfWctUp7Hsowh3mHKwgtdE0t90WvY9zm5XwstfxWJ+CdcseSd608ePGsIecrJfV1zg=@vger.kernel.org X-Gm-Message-State: AOJu0YyJFsG7gl3QudC6AR6oST9b5WgGkflUAjVNThtY9+ykjY9gCs0Y dQeMXNgrn29czDw0qHZ92Xdi/iV14Ec9fLdT6pMM8fWGYoBc5kySSlOo X-Gm-Gg: ATEYQzzRP/lLTWJ9Lr2lNwBcF4S2soYqUBjZ1c9bWW0xqVJpQwTFzrprig+p9KzRPlB P+Vuer0dGxzfajl7maqSTkWPfe8MBHJO21DgzVLeJLMoZP9vZhheLA+YQHmqSv464T/2JejEVCF 51mh1kRkrrJyslkDz50qTHarP+QS/74FMiDGVNQsNPQHOYbcXBkdqiE6SwF01plfNu05I+GYJvF 0sHWKUCqIs1Qli/yilQ/+PlpTG+3AZ4cF+7cK+C78hgyWEYatizhYzHTbLftbvOhCAI8sDWcSz4 rJLxA9rGkaDxL7Ru3Y821Cmd+Lxdg7M9PRxuXSswkvkh9590afo5AozaSQLgKdenZ48O63Zoyc9 Un80J0pOisRoEYAVGMUjlNyAzPxCzBm4fd6cpjwWXHZTAhGNhKVr5+T6QffawehcOmtpH7fEuec BzTxsMwjMasXnK02xVf3UVnxGFgLBf+tcWeVuA158s5l5+0PXwPL8T0V5XZcPaRuGe9JGI7bIjA SCwIJglz8LnZA== X-Received: by 2002:a17:902:c94a:b0:2ae:41d1:344b with SMTP id d9443c01a7336-2ae82418016mr27067745ad.6.1772805821034; Fri, 06 Mar 2026 06:03:41 -0800 (PST) Received: from mi-HP-ProDesk-680-G6-PCI-Microtower-PC.mioffice.cn ([43.224.245.226]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ae840ccb6csm29134715ad.92.2026.03.06.06.03.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Mar 2026 06:03:40 -0800 (PST) From: zhidao su X-Google-Original-From: zhidao su To: tj@kernel.org, sched-ext@lists.linux.dev, linux-kernel@vger.kernel.org Cc: void@manifault.com, arighi@nvidia.com, changwoo@igalia.com, linux-kselftest@vger.kernel.org, Su Zhidao Subject: [PATCH 3/5] sched_ext: Use rcu_dereference_bh() in scx_bypass_lb_timerfn() Date: Fri, 6 Mar 2026 22:03:23 +0800 Message-ID: <20260306140325.2710927-4-suzhidao@xiaomi.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260306140325.2710927-1-suzhidao@xiaomi.com> References: <20260306140325.2710927-1-suzhidao@xiaomi.com> 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" From: Su Zhidao scx_bypass_lb_timerfn() runs in softirq (BH) context, so rcu_dereference_bh() is the correct RCU accessor. The previous rcu_dereference_all() suppresses all sparse warnings and masks potential RCU context issues. Add a comment noting this is a transitional state: when multi-scheduler support lands, the bypass LB timer will become per-scheduler and the global scx_root reference will be removed. Signed-off-by: Su Zhidao --- kernel/sched/ext.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/kernel/sched/ext.c b/kernel/sched/ext.c index 053d99c58802..c269e489902c 100644 --- a/kernel/sched/ext.c +++ b/kernel/sched/ext.c @@ -4170,7 +4170,13 @@ static void scx_bypass_lb_timerfn(struct timer_list = *timer) int node; u32 intv_us; =20 - sch =3D rcu_dereference_all(scx_root); + /* + * scx_bypass_lb_timer is a global timer that fires in softirq + * context while bypass mode is active. Use rcu_dereference_bh() + * matching the BH context. When multi-scheduler support lands, + * this timer will become per-scheduler instance. + */ + sch =3D rcu_dereference_bh(scx_root); if (unlikely(!sch) || !READ_ONCE(scx_bypass_depth)) return; =20 --=20 2.43.0 From nobody Thu Apr 9 17:15:22 2026 Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) (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 2299E3AE708 for ; Fri, 6 Mar 2026 14:03:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772805826; cv=none; b=JSj3IsGjEEv7bQ0SC3NzmGfBvo4NNDpebbVGBVbWBeTMuvK0UV2hdJaaP+QWEW8R8ShsmVKaJLEZ4yUUbkAQUVPIJ8aF02rhsYtho5BacJJcTHI+NdXJhI1ArXp3WW3Upx2sJpB1WEA9uRKAYYDR5Eh43IDjROJ4KPSvmtQUEHM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772805826; c=relaxed/simple; bh=BZeeJ1JML7xaZoBvWAKlQYnkV7F90b7mZuzv0ATZ6Jw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=JuFd1UrO2OB751tocm3p42kuTBTr2TjDeKZfthBcIW81GscLekybpYpWsbBrzgnVGFW4vZisRSlMswPrBO2nS+hU1yb36AyIELl1cTd7LnNBZMvJ8trPRZkI+BoKW99JGHf8n1UhWiAM5VCG8kejrBDjm8K1U3ZW8xf+FIOkBaM= 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=BTynWW/r; arc=none smtp.client-ip=209.85.214.169 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="BTynWW/r" Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-2a7a9b8ed69so104074225ad.2 for ; Fri, 06 Mar 2026 06:03:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772805824; x=1773410624; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=6TnQKdPGtTuRU+46cutq94eviTJ71u1qZiPiKlbjQJQ=; b=BTynWW/rBPZ4TsF4UVh/IPVXD6/0mfdrGZdQmVJ48xToAKHY0g1CDJuqDZb2Zs6TIf wJoQNbl6uRp0C35s+bYbEPtQMCOsgD4En9gqjYPGle+Wr1LkW/TfKWj0P7FFrtLqxcdf KQ2E8sVGvXNIPvS5MeSOGgdVFq9ixcdh+xmyMyX4jTroAcuH/PLyeKz+RHVwkZTPb4et m7c0lKkfg10eG5RwdiAvirjJTSvTl/WInPiqj/mcM4KrU0j/DsDrolUpiG7nD7M9sUcO yuEB8L9izI5nFLyL0UKuGHcGHZKR8EK6zYOLnL4/FX6NS6DyuqVQSNsixd1BREiWzWfB YDdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772805824; x=1773410624; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=6TnQKdPGtTuRU+46cutq94eviTJ71u1qZiPiKlbjQJQ=; b=ruAePR3IJxDqmw1fJw9Ve6V2GqOgR9yncyBO7rixrIT/slIEJJEwB9PNOyUnwRSVKI kDywpl4RMrIvFLN1cvdvigs18iIpdr0Oj8WXhK+ihtMKp6948viWlH/2IO2rj9d7LPfn HB8JvbzjLKatCoW9RM5keS/yYkJDQ51xzrjOjNedRpyamFY50Cf43bsEQSQWJmPstqxW knq+tBxLloBEVOsA5XQrzRYWU2keNpTqNQ3kEUTHlIrNqlfRdzWItqg7dGot7b6BII6p vUJNkETHXwKeH2H0LvHtKVA1m9IHE1X0SHWGehpgQUWYVdIKDBbsTygLYCp9lPtbHATU MAGw== X-Forwarded-Encrypted: i=1; AJvYcCV/y5gNLoB7pniI0Oykl4wYNGwCXqH+DHFEpDxjQWgFifr5rbPZI2mjwl+ZEKoUxFZoPVSNbj4dArH+Boo=@vger.kernel.org X-Gm-Message-State: AOJu0YyRpVqLiL5/PChGCkAlPyCVEskotoR0npdHmSJk0h2pEyqhn9Oj bcb/v1wlxu0D56fNxzuAsDnp/Fd04E02ItVAvxwyOa74TquhPYDEtucq57vgQw7M X-Gm-Gg: ATEYQzzfwqLHB0br+Cz+GdPsRYSY/r1eH66si69whF2ygVDR4Fgq496C1bBLrsvPfJ0 mtJKpfZZn1I5RpscyJxAhdHW0VF5uRqZRh6KrhF2K9T4afLCor0OAciOOD1DFdF914d3GWutb/d qu81gds1xlFi8PrAZNBA9/gAeJsIlLrtEHB8WukJN6vvWDiUnxOSpKEXudkCQA49PCWkFK5eaCV cUClQAKkv0KHH/E9BgvbtSjaPJrQVf77xqAao7GUdUpJKNSmj3VS9IOrt4n3LwgQoD7/RXhCuxH eidQLY3/1CAJte/Ucz9NeKmEy9AKFSabPh4C/sDvQD/OAyu3wns8ZEFIx7hZrJFnqmCn11vHCLx 5txkeq1/GthVHMMv4JKGwbcXLUevQETdfbSIodY6oRFAWKgteIkQAN0fNEKE1lcHYxJgn7yTOW5 LGIS+Jl/5VuoU5xpzAZM7lUmkiVLVBMIhWOZj03OUL+prAEL+zypjNxeE+bbAq4KD29FbX0F6FH qI= X-Received: by 2002:a17:902:f78a:b0:2ae:4948:f866 with SMTP id d9443c01a7336-2ae8239bd5emr22877785ad.22.1772805824108; Fri, 06 Mar 2026 06:03:44 -0800 (PST) Received: from mi-HP-ProDesk-680-G6-PCI-Microtower-PC.mioffice.cn ([43.224.245.226]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ae840ccb6csm29134715ad.92.2026.03.06.06.03.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Mar 2026 06:03:43 -0800 (PST) From: zhidao su X-Google-Original-From: zhidao su To: tj@kernel.org, sched-ext@lists.linux.dev, linux-kernel@vger.kernel.org Cc: void@manifault.com, arighi@nvidia.com, changwoo@igalia.com, linux-kselftest@vger.kernel.org, Su Zhidao Subject: [PATCH 4/5] sched_ext/selftests: Add bypass mode operational test Date: Fri, 6 Mar 2026 22:03:24 +0800 Message-ID: <20260306140325.2710927-5-suzhidao@xiaomi.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260306140325.2710927-1-suzhidao@xiaomi.com> References: <20260306140325.2710927-1-suzhidao@xiaomi.com> 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" From: Su Zhidao Add a test that verifies the sched_ext bypass mechanism does not prevent tasks from running to completion. The test attaches a minimal global FIFO scheduler, spawns worker processes that complete a fixed computation, detaches the scheduler (which triggers bypass mode while workers are still active), and verifies all workers complete successfully under bypass mode. This exercises the scheduler attach/detach lifecycle and verifies that bypass mode (activated during unregistration to guarantee forward progress) does not stall running tasks. Signed-off-by: Su Zhidao --- tools/testing/selftests/sched_ext/Makefile | 1 + .../testing/selftests/sched_ext/bypass.bpf.c | 32 ++++++ tools/testing/selftests/sched_ext/bypass.c | 105 ++++++++++++++++++ 3 files changed, 138 insertions(+) create mode 100644 tools/testing/selftests/sched_ext/bypass.bpf.c create mode 100644 tools/testing/selftests/sched_ext/bypass.c diff --git a/tools/testing/selftests/sched_ext/Makefile b/tools/testing/sel= ftests/sched_ext/Makefile index a3bbe2c7911b..5fb6278d3f97 100644 --- a/tools/testing/selftests/sched_ext/Makefile +++ b/tools/testing/selftests/sched_ext/Makefile @@ -162,6 +162,7 @@ endef all_test_bpfprogs :=3D $(foreach prog,$(wildcard *.bpf.c),$(INCLUDE_DIR)/$= (patsubst %.c,%.skel.h,$(prog))) =20 auto-test-targets :=3D \ + bypass \ create_dsq \ dequeue \ enq_last_no_enq_fails \ diff --git a/tools/testing/selftests/sched_ext/bypass.bpf.c b/tools/testing= /selftests/sched_ext/bypass.bpf.c new file mode 100644 index 000000000000..cb37c8df6834 --- /dev/null +++ b/tools/testing/selftests/sched_ext/bypass.bpf.c @@ -0,0 +1,32 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * BPF scheduler for bypass mode operational test. + * + * Implements a minimal global FIFO scheduler. The userspace side + * attaches this scheduler, runs worker tasks to completion, and + * verifies that tasks complete successfully. + * + * Copyright (c) 2026 Xiaomi Corporation. + */ +#include + +char _license[] SEC("license") =3D "GPL"; + +UEI_DEFINE(uei); + +void BPF_STRUCT_OPS(bypass_enqueue, struct task_struct *p, u64 enq_flags) +{ + scx_bpf_dsq_insert(p, SCX_DSQ_GLOBAL, SCX_SLICE_DFL, enq_flags); +} + +void BPF_STRUCT_OPS(bypass_exit, struct scx_exit_info *ei) +{ + UEI_RECORD(uei, ei); +} + +SEC(".struct_ops.link") +struct sched_ext_ops bypass_ops =3D { + .enqueue =3D (void *)bypass_enqueue, + .exit =3D (void *)bypass_exit, + .name =3D "bypass_test", +}; diff --git a/tools/testing/selftests/sched_ext/bypass.c b/tools/testing/sel= ftests/sched_ext/bypass.c new file mode 100644 index 000000000000..952f09d76bdb --- /dev/null +++ b/tools/testing/selftests/sched_ext/bypass.c @@ -0,0 +1,105 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Verify the sched_ext bypass mechanism: spawn worker tasks and ensure + * they run to completion while a BPF scheduler is active. + * + * The bypass mechanism (activated on scheduler unregistration) must + * guarantee forward progress. This test verifies that worker tasks + * complete successfully when the scheduler is detached. + * + * Copyright (c) 2026 Xiaomi Corporation. + */ +#define _GNU_SOURCE +#include +#include +#include +#include +#include "scx_test.h" +#include "bypass.bpf.skel.h" + +#define NUM_BYPASS_WORKERS 4 + +static void worker_fn(void) +{ + volatile int sum =3D 0; + int i; + + /* + * Do enough work to still be running when bpf_link__destroy() + * is called, ensuring tasks are active during bypass mode. + */ + for (i =3D 0; i < 10000000; i++) + sum +=3D i; +} + +static enum scx_test_status setup(void **ctx) +{ + struct bypass *skel; + + skel =3D bypass__open(); + SCX_FAIL_IF(!skel, "Failed to open bypass skel"); + SCX_ENUM_INIT(skel); + SCX_FAIL_IF(bypass__load(skel), "Failed to load bypass skel"); + + *ctx =3D skel; + return SCX_TEST_PASS; +} + +static enum scx_test_status run(void *ctx) +{ + struct bypass *skel =3D ctx; + struct bpf_link *link; + pid_t pids[NUM_BYPASS_WORKERS]; + int i, status; + + link =3D bpf_map__attach_struct_ops(skel->maps.bypass_ops); + SCX_FAIL_IF(!link, "Failed to attach bypass scheduler"); + + /* + * Spawn worker processes. These must complete successfully + * even as the scheduler is active and then detached (which + * triggers bypass mode). + */ + for (i =3D 0; i < NUM_BYPASS_WORKERS; i++) { + pids[i] =3D fork(); + SCX_FAIL_IF(pids[i] < 0, "fork() failed for worker %d", i); + + if (pids[i] =3D=3D 0) { + worker_fn(); + _exit(0); + } + } + + /* + * Detach the scheduler while workers are still running. This + * triggers bypass mode, which must guarantee forward progress + * for all active tasks. + */ + bpf_link__destroy(link); + + /* Workers must complete successfully under bypass mode */ + for (i =3D 0; i < NUM_BYPASS_WORKERS; i++) { + SCX_FAIL_IF(waitpid(pids[i], &status, 0) !=3D pids[i], + "waitpid failed for worker %d", i); + SCX_FAIL_IF(!WIFEXITED(status) || WEXITSTATUS(status) !=3D 0, + "Worker %d did not exit cleanly", i); + } + + SCX_EQ(skel->data->uei.kind, EXIT_KIND(SCX_EXIT_UNREG)); + + return SCX_TEST_PASS; +} + +static void cleanup(void *ctx) +{ + bypass__destroy(ctx); +} + +struct scx_test bypass_test =3D { + .name =3D "bypass", + .description =3D "Verify tasks complete during bypass mode", + .setup =3D setup, + .run =3D run, + .cleanup =3D cleanup, +}; +REGISTER_SCX_TEST(&bypass_test) --=20 2.43.0 From nobody Thu Apr 9 17:15:22 2026 Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) (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 2C8DC3AE71A for ; Fri, 6 Mar 2026 14:03:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772805829; cv=none; b=pBkn8WzWwWfkm09RR0gjkDyK1tIFfmLB0I6OVtD5gsd75fEvj7JTa9KitlbxaT3GZbC2HT+3ptawPWCkWcW7x5u3bFJqYkr8w/Q8S5WKCcYiJxb+j5JMyG7h99ovAOBgqihPjprus0JkWM6HXfOaYa52f4MUL+zKXf4uNJxODBY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772805829; c=relaxed/simple; bh=KKJoiskobJLPVewH28+LF9Y4Ux/Lu7qzp3YYxz5tn6o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Ou3ZO09dF1whw6lONdC2SM8aMvdNtfsR/KyW+XB3524xQRv6IcIE7DEICPWBwXro1HbttnofY2R/hktQF7nM01+RdALorRy5LjXF3mlACqc9ri5zMGfb4kz9n1VRDD3oh4aO9GLEiBidLAW6Phd6a3khwzyrF4Kk4x0euOA1NcM= 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=PbF7Tgs1; arc=none smtp.client-ip=209.85.214.169 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="PbF7Tgs1" Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-2ae3a2f6007so47609385ad.2 for ; Fri, 06 Mar 2026 06:03:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772805827; x=1773410627; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=URwHQdDNBcfpjPgIZZmBOCF4w8QPrTIvO91J8esIlCE=; b=PbF7Tgs1GsJhphtrzQmJ9VgOEYENG6F5coDb+YjBmaO6uvDXGuUN377rU5siiEPkFv Z1Hh4pTEkt9f/VjASa0EnZs9nd6eYg0+Z6aNPa16M6pUofUbWmNP1h2Zi9BIoKa7vyoC XPLPRVjQ1vQ9ieCCJzzMwxyAYnBU7htydacT1cM0OQAMHixVpd+2DhEVf9cXo1wgRZ6r VN8pSOD/d0OLmveOmJnOt05HJgY4DUnCAGXUypJ7pb2ebtA/KSTrZL0KjfZ/EjNyce0E mfDKU+IVo0wp4lbA7mm3MKqsFmj+odTPNuv13gZXyQk1gvE9zkA8SM/VpQbeXwP6gh/8 xUlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772805827; x=1773410627; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=URwHQdDNBcfpjPgIZZmBOCF4w8QPrTIvO91J8esIlCE=; b=MdYdFSWP3f8J6D8gHptrtUJJRc/1s4/LmzLTwghdBlzaI8q9Z6TDP/Yn+zYsDgpHie /74IkZymD14D0pE2JLCC8Mg8TPcKvmRSydw2vxUw+UnI8+83PhRrfJKYnAtW8WoPv1qe 66yMY3mofhi5Qy47gfsMf42vACT/gw3u6E8S8l8sYNbhiNw8MVi9ntpKeh0yxXVcMihN 5v0Xx5wKI0MEt2okybcut51G7nZLvAAuxWzsAlkmyDccTQLEVKa+LYHXElNMV9gomI05 rfdoCdizwPiYMNzBbcetmstd885dllbXVNxo1Y6X6uXp7BchKtboqjMEqnm2l1Kz2iCi oZPw== X-Forwarded-Encrypted: i=1; AJvYcCXVkHHSGHQ1fhH5ovYm/zQ2+sRnsogeVuaU0orKGJNIcZO957IIaOmSRwtjZ8cSsEW1bPwuMkS/oajRFOM=@vger.kernel.org X-Gm-Message-State: AOJu0YxGkCV5/LrXGKkZYRYkVSAjuG04ZsFYssJ5yya9fgALykgp63Je DWkb1vqhKZwo+XibpcX5ptGUy9qYbdDmZFMDTE+M+nS93x/wwocO2gof X-Gm-Gg: ATEYQzxBgiGHgOccUN8Ek+quCcUAX7Q5v7bWuKMql6qnAF451BAcyWnbBhzlvW3Ujgt JYcVfX2TeyepYNRpNwj88IqCCdV+1Uq+X4UODGBwWJ7Ye/5noRKx6vI08xAp+B4XfJzMZpAj2YV vwhouk/CiFE8e4VT9OrZw5BA6r4WhQPWcZ5abipvtkMPgTKyivZYloz97ObI3Fgv6OZBJ1xtEKf bhsNicDnidU5YKGPPgYkmnCPO7kbhl3Tc+OCTlZk6NuVpEvoo87ZljbjHOSO72NjGQFByRQ2dnK tClpUubsdkJxMW4xB/NATLAF/Vt5GTsySdhguZuVmjPg3sDo+A0u+SyRNl6W4O6Mtdt8j635gnU M9LOUa85gflnnHScn/kpHsePQpIhJePtUewyTFld5BSY8seX4LegwlbGzYgrFcqsx2VwtWGwMNk tQYVQm4m5hDt67ydGKmYAgUs1TDGm21y2YVpMv8eKk1ex2qgqgqHnifgOtdsqtFJ9tbo/MxAGxB Cnj7ClapB9MMg== X-Received: by 2002:a17:902:db09:b0:2ae:5723:afa9 with SMTP id d9443c01a7336-2ae8253c933mr27839485ad.53.1772805827270; Fri, 06 Mar 2026 06:03:47 -0800 (PST) Received: from mi-HP-ProDesk-680-G6-PCI-Microtower-PC.mioffice.cn ([43.224.245.226]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ae840ccb6csm29134715ad.92.2026.03.06.06.03.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Mar 2026 06:03:46 -0800 (PST) From: zhidao su X-Google-Original-From: zhidao su To: tj@kernel.org, sched-ext@lists.linux.dev, linux-kernel@vger.kernel.org Cc: void@manifault.com, arighi@nvidia.com, changwoo@igalia.com, linux-kselftest@vger.kernel.org, Su Zhidao Subject: [PATCH 5/5] sched_ext: Document scx_bypass_depth migration path Date: Fri, 6 Mar 2026 22:03:25 +0800 Message-ID: <20260306140325.2710927-6-suzhidao@xiaomi.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260306140325.2710927-1-suzhidao@xiaomi.com> References: <20260306140325.2710927-1-suzhidao@xiaomi.com> 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" From: Su Zhidao scx_bypass_depth is a global counter that will be moved into struct scx_sched when multi-scheduler support lands. Add a comment explaining why READ_ONCE/WRITE_ONCE are used despite bypass_lock serialization: modifications are serialized by the lock, but the value can be observed locklessly from softirq context (e.g., in scx_bypass_lb_timerfn()). Signed-off-by: Su Zhidao --- kernel/sched/ext.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/kernel/sched/ext.c b/kernel/sched/ext.c index c269e489902c..b1e5a95682c1 100644 --- a/kernel/sched/ext.c +++ b/kernel/sched/ext.c @@ -33,6 +33,12 @@ static DEFINE_MUTEX(scx_enable_mutex); DEFINE_STATIC_KEY_FALSE(__scx_enabled); DEFINE_STATIC_PERCPU_RWSEM(scx_fork_rwsem); static atomic_t scx_enable_state_var =3D ATOMIC_INIT(SCX_DISABLED); +/* + * Counts the number of active bypass requests. Protected by bypass_lock + * inside scx_bypass(), but read locklessly (e.g., from + * scx_bypass_lb_timerfn() in softirq context) using READ_ONCE(). Will + * be moved into struct scx_sched when multi-scheduler support lands. + */ static int scx_bypass_depth; static cpumask_var_t scx_bypass_lb_donee_cpumask; static cpumask_var_t scx_bypass_lb_resched_cpumask; --=20 2.43.0