From nobody Thu Sep 24 20:02:03 2026 Received: from mta1.migadu.com (out-190.mta1.migadu.com [95.215.58.190]) (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 09F26466B58 for ; Mon, 21 Sep 2026 09:21:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=95.215.58.190 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789982501; cv=none; b=elGSR8xPoW4F+qJqlZ/St/hLmPEl5+JdZShngikzneMpKT/EHvL7hjlAsFklU3xD3ir8jH/4Web4AJObW7to/vR9hsTouVWSu+6SXelJVu3bHGllb5a7mJaQAATuxB7gh+ajovU8BHZV/lUFBoJTZrSaSCNYbh7xq+9hBhbaYAQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789982501; c=relaxed/simple; bh=deuDjh4KY/glu2qz4/gRNLs6D8kmr7YlUzYiZcAnK9k=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=uRL7Pim6FBejnf2RUWipy31DjaQK/8eJl9z0m5gJ7RgiizeGnRe5lJbRnc6hHaRogXKVEbIGbLa7kf+aJUhqGtOa68ucYj7IbEUSwencxnJOczPmEHnhBgNZsA43itf6oHWQ2j8JkBmeo1vMyOH/TXCbDTqM+8L4WOrK0W9eo5A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=jE26O8Ub; arc=none smtp.client-ip=95.215.58.190 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="jE26O8Ub" X-Envelope-To: linux-kernel@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=deuDjh4KY/glu2qz4/gRNLs6D8kmr7YlUzYiZcAnK9k=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1789982496; v=1; x=1790587296; b=jE26O8UbS4Z3kIKMNZSQL5KFYomCRx7Qq8SpYpIyWgtqnLRcYXZ/6iH2p0gC9ofZdQmA+TYg yTlOkvh1o31XXLbCCEbMBnxZD0CguEuJ4xRkXhLrIOtcFe0wtCv3zxMHfteJLONnhyBQqzztgx2 oe69VTlBxIT6eGKSj8L4rjZA= X-Envelope-To: linux-kernel@vger.kernel.org Received: by smtp.migadu.com with ESMTPS id 8d62996ef121fa9e; Mon, 21 Sep 2026 09:21:36 +0000 X-Mizu-Trace-ID: 8d62996ef121fa9e X-Migadu-Flow: FLOW_OUT From: Ye Liu To: "Peter Zijlstra (Intel)" , Marco Elver , Oleg Nesterov , Bart Van Assche , Christian Brauner , Ye Liu Cc: Michal Hocko , SJ Park , Gregory Price , Lorenzo Stoakes , akpm@linux-foundation.org, paulmck@kernel.org, mingo@redhat.com, rostedt@goodmis.org, jpoimboe@kernel.org, mic@digikod.net, tglx@kernel.org, david@kernel.org, linmiaohe@huawei.com, nao.horiguchi@gmail.com, rafael@kernel.org, gnoack3000@gmail.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, rcu@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-security-module@vger.kernel.org, rientjes@google.com, shakeel.butt@linux.dev, xu.xin16@zte.com.cn, chengming.zhou@linux.dev, will@kernel.org, boqun@kernel.org, frederic@kernel.org, neeraj.upadhyay@kernel.org, joelagnelf@nvidia.com, josh@joshtriplett.org, urezki@gmail.com, juri.lelli@redhat.com, vincent.guittot@linaro.org, tony.luck@intel.com, reinette.chatre@intel.com, x86@kernel.org, paul@paul-moore.com, jmorris@namei.org, serge@hallyn.com, pavel@kernel.org, lance.yang@linux.dev, mhiramat@kernel.org, pmladek@suse.com, longman@redhat.com, mathieu.desnoyers@efficios.com, jiangshanlai@gmail.com, qiang.zhang@linux.dev, dietmar.eggemann@arm.com, bsegall@google.com, mgorman@suse.de, vschneid@redhat.com, kprateek.nayak@amd.com, mark.rutland@arm.com, Dave.Martin@arm.com, james.morse@arm.com, babu.moger@amd.com Subject: [PATCH v4 01/15] sched: introduce for_each_process_rculock and for_each_thread_rculock Date: Mon, 21 Sep 2026 17:20:47 +0800 Message-Id: <20260921092101.89285-2-ye.liu@linux.dev> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260921092101.89285-1-ye.liu@linux.dev> References: <20260921092101.89285-1-ye.liu@linux.dev> 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: Ye Liu Introduce for_each_process_rculock(), for_each_thread_rculock() and for_each_process_thread_rculock() macros that acquire the RCU read lock before the iteration starts and release it when the loop is left, so that the RCU read-side critical section is scoped to the loop body instead of an externally managed rcu_read_lock()/rcu_read_unlock() pair. Signed-off-by: Ye Liu Acked-by: Michal Hocko Reviewed-by: SJ Park Reviewed-by: Gregory Price (Meta) Reviewed-by: Oleg Nesterov Reviewed-by: Lorenzo Stoakes (ARM) --- include/linux/sched/signal.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/include/linux/sched/signal.h b/include/linux/sched/signal.h index 584ae88b435e..ea23c7e9db33 100644 --- a/include/linux/sched/signal.h +++ b/include/linux/sched/signal.h @@ -2,6 +2,7 @@ #ifndef _LINUX_SCHED_SIGNAL_H #define _LINUX_SCHED_SIGNAL_H =20 +#include #include #include #include @@ -663,6 +664,31 @@ extern bool current_is_single_threaded(void); #define for_each_process_thread(p, t) \ for_each_process(p) for_each_thread(p, t) =20 +/* + * Variants of for_each_process(), for_each_thread() and + * for_each_process_thread() that automatically acquire and release the + * RCU read lock via scoped_guard(rcu). The lock is held for the + * duration of the loop and released on exit, including via break, + * goto, or return. + */ +#define for_each_process_rculock(p) \ + scoped_guard(rcu) \ + for (p =3D &init_task ; (p =3D next_task(p)) !=3D &init_task ; ) + +#define for_each_thread_rculock(p, t) \ + scoped_guard(rcu) \ + __for_each_thread((p)->signal, t) + +/* + * Double loop: 'break' only exits the inner for_each_thread() loop. + * Use 'goto' to exit both loops; the RCU read lock is released + * automatically when the scoped_guard scope is left. + */ +#define for_each_process_thread_rculock(p, t) \ + scoped_guard(rcu) \ + for_each_process(p) \ + for_each_thread(p, t) + typedef int (*proc_visitor)(struct task_struct *p, void *data); void walk_process_tree(struct task_struct *top, proc_visitor, void *); =20 --=20 2.25.1 From nobody Thu Sep 24 20:02:03 2026 Received: from mta0.migadu.com (out-54.mta0.migadu.com [91.218.175.54]) (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 BF4B04534A9 for ; Mon, 21 Sep 2026 09:21:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789982517; cv=none; b=YEON819bmSVc7o0Q2J29HTwBAD9xIUkR9hq0ce7Yrhb/7HMIPkAN/CJmD6AiAUQudE+VM+7IW2RJYn5cBJynm/28SnrtUS00F2KMn0yHg9EUm+A2DcUiZ6nnYXOwcnoUXFuaFFiA3g9Qk1bT2YubDVDIIRudzMjtRhXHv4NiQ+s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789982517; c=relaxed/simple; bh=ftt2VmSueNigEmRUzim7RcAInXHUvUyDkJasA+sP/sI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=XOtGeorUdmfBtLsCGJN8Rfgy8flxeRWnmybxU1oMLLwzsrbvxzHEDo9kAqlrur+3k6uzEvvdZXyQAFUFoonXII+r8sw4M48qFsedlnjrXzqB/M9S2Q87Z6QKf/VC9Lg5bESHOrjBKGTVs6Eu3VmU59h0fCZulPVwaD172S7W8b8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=jWsbvQJn; arc=none smtp.client-ip=91.218.175.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="jWsbvQJn" X-Envelope-To: linux-kernel@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=ftt2VmSueNigEmRUzim7RcAInXHUvUyDkJasA+sP/sI=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1789982513; v=1; x=1790587313; b=jWsbvQJno9CuCyQVTZB9lhN7qsOidsqwQTyAIOnMC7/GD/rn2vKIe+LgRS26jI5FcznCU58R mIUL3pOsfkgA9Jr6AuJrp73cNcmcaSTvjS0o1R5wKXId1z/TjWu1fFmM0N1QApAjsWPJrdeFXv3 L2EIteOtnYoad3rIZ50U9dg0= X-Envelope-To: linux-kernel@vger.kernel.org Received: by smtp.migadu.com with ESMTPS id 63f02883ed771dab; Mon, 21 Sep 2026 09:21:53 +0000 X-Mizu-Trace-ID: 63f02883ed771dab X-Migadu-Flow: FLOW_OUT From: Ye Liu To: Michal Hocko , Andrew Morton Cc: Ye Liu , SJ Park , Gregory Price , Lorenzo Stoakes , peterz@infradead.org, paulmck@kernel.org, mingo@redhat.com, rostedt@goodmis.org, jpoimboe@kernel.org, mic@digikod.net, oleg@redhat.com, tglx@kernel.org, david@kernel.org, linmiaohe@huawei.com, nao.horiguchi@gmail.com, rafael@kernel.org, gnoack3000@gmail.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, rcu@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-security-module@vger.kernel.org, rientjes@google.com, shakeel.butt@linux.dev, xu.xin16@zte.com.cn, chengming.zhou@linux.dev, will@kernel.org, boqun@kernel.org, frederic@kernel.org, neeraj.upadhyay@kernel.org, joelagnelf@nvidia.com, josh@joshtriplett.org, urezki@gmail.com, juri.lelli@redhat.com, vincent.guittot@linaro.org, tony.luck@intel.com, reinette.chatre@intel.com, x86@kernel.org, paul@paul-moore.com, jmorris@namei.org, serge@hallyn.com, pavel@kernel.org, lance.yang@linux.dev, mhiramat@kernel.org, pmladek@suse.com, longman@redhat.com, mathieu.desnoyers@efficios.com, jiangshanlai@gmail.com, qiang.zhang@linux.dev, dietmar.eggemann@arm.com, bsegall@google.com, mgorman@suse.de, vschneid@redhat.com, kprateek.nayak@amd.com, mark.rutland@arm.com, Dave.Martin@arm.com, james.morse@arm.com, babu.moger@amd.com Subject: [PATCH v4 02/15] mm/oom_kill: convert process/thread iterators to for_each_*_rculock Date: Mon, 21 Sep 2026 17:20:48 +0800 Message-Id: <20260921092101.89285-3-ye.liu@linux.dev> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260921092101.89285-1-ye.liu@linux.dev> References: <20260921092101.89285-1-ye.liu@linux.dev> 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: Ye Liu Replace the manual rcu_read_lock()/rcu_read_unlock() pairs wrapping for_each_process()/for_each_thread() loops with for_each_process_rculock() and for_each_thread_rculock(), which scope the RCU read lock to the loop body via scoped_guard(rcu). No functional change. Signed-off-by: Ye Liu Acked-by: Michal Hocko Reviewed-by: SJ Park Reviewed-by: Gregory Price (Meta) Reviewed-by: Lorenzo Stoakes (ARM) Reviewed-by: Oleg Nesterov --- mm/oom_kill.c | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/mm/oom_kill.c b/mm/oom_kill.c index 5f372f6e26fa..ef2e1c423c1d 100644 --- a/mm/oom_kill.c +++ b/mm/oom_kill.c @@ -94,8 +94,7 @@ static bool oom_cpuset_eligible(struct task_struct *start, bool ret =3D false; const nodemask_t *mask =3D oc->nodemask; =20 - rcu_read_lock(); - for_each_thread(start, tsk) { + for_each_thread_rculock(start, tsk) { if (mask) { /* * If this is a mempolicy constrained oom, tsk's @@ -114,7 +113,6 @@ static bool oom_cpuset_eligible(struct task_struct *sta= rt, if (ret) break; } - rcu_read_unlock(); =20 return ret; } @@ -368,11 +366,9 @@ static void select_bad_process(struct oom_control *oc) else { struct task_struct *p; =20 - rcu_read_lock(); - for_each_process(p) + for_each_process_rculock(p) if (oom_evaluate_task(p, oc)) break; - rcu_read_unlock(); } } =20 @@ -430,14 +426,12 @@ static void dump_tasks(struct oom_control *oc) struct task_struct *p; int i =3D 0; =20 - rcu_read_lock(); - for_each_process(p) { + for_each_process_rculock(p) { /* Avoid potential softlockup warning */ if ((++i & 1023) =3D=3D 0) touch_softlockup_watchdog(); dump_task(p, oc); } - rcu_read_unlock(); } } =20 @@ -894,8 +888,7 @@ static bool task_will_free_mem(struct task_struct *task) * are dying as well to make sure that a) nobody pins its mm and * b) the task is also reapable by the oom reaper. */ - rcu_read_lock(); - for_each_process(p) { + for_each_process_rculock(p) { if (!process_shares_mm(p, mm)) continue; if (same_thread_group(task, p)) @@ -904,7 +897,6 @@ static bool task_will_free_mem(struct task_struct *task) if (!ret) break; } - rcu_read_unlock(); =20 return ret; } @@ -960,8 +952,7 @@ static void __oom_kill_process(struct task_struct *vict= im, const char *message) * That thread will now get access to memory reserves since it has a * pending fatal signal. */ - rcu_read_lock(); - for_each_process(p) { + for_each_process_rculock(p) { if (!process_shares_mm(p, mm)) continue; if (same_thread_group(p, victim)) @@ -982,7 +973,6 @@ static void __oom_kill_process(struct task_struct *vict= im, const char *message) continue; do_send_sig_info(SIGKILL, SEND_SIG_PRIV, p, PIDTYPE_TGID); } - rcu_read_unlock(); =20 if (can_oom_reap) queue_oom_reaper(victim); --=20 2.25.1 From nobody Thu Sep 24 20:02:03 2026 Received: from mta1.migadu.com (out-249.mta1.migadu.com [95.215.58.249]) (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 0CBE346984A for ; Mon, 21 Sep 2026 09:22:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=95.215.58.249 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789982534; cv=none; b=lB4p7Jmvu6h1mKMDzj+bHq+xee+JWievvVInqu+7rgpB+/fhlFUKJ1LSA6ZFiSUuyhl/f3gFo4WqN93k1RLHuFOp3eORG1xyf0Vo7dlVyb82JivVTdhJ/yH6oF6cWe88qEyXS4nbBQRawJCh4LS2KcvV7RpwcUU1Gao/y19Zr6I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789982534; c=relaxed/simple; bh=gg1y5J6wvSizwC3gFVsggog4FN4dVg6+drI/OX9nv8o=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=s3LY2M72tuGLm99Fi0zygpK9nxtTG4ma/Tywfx06v0BQ73Gf6AakO8UO1NCNL/yFBKSSCL9EAopHgEB9p7c7njbSEIIHMi154DiER4b0N3g2SEY/ZE2QW4Rwf4vES6tiQFxu7yOxNU6UHc8JDb2yCUCbJb31bBeTKfHkQPtVZuQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=W7g7jKUi; arc=none smtp.client-ip=95.215.58.249 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="W7g7jKUi" X-Envelope-To: linux-kernel@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=gg1y5J6wvSizwC3gFVsggog4FN4dVg6+drI/OX9nv8o=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1789982530; v=1; x=1790587330; b=W7g7jKUizUZ9nspF8xvE7oYsI/6MDEC4F4BT8uIYNpkqMBgCYm1VKABuvLzzX5xk6GihvnW4 Kba7Ddtk9hkKw4FFRsLyKYYAw67zyJSYsLaBSJh4VYgtSi44SsgivNbGm+njg1Hdob9GtvFRhHQ 2zpF6qEh/rZTncHiI6WOhct8= X-Envelope-To: linux-kernel@vger.kernel.org Received: by smtp.migadu.com with ESMTPS id e1e273a490565660; Mon, 21 Sep 2026 09:22:09 +0000 X-Mizu-Trace-ID: e1e273a490565660 X-Migadu-Flow: FLOW_OUT From: Ye Liu To: Andrew Morton , David Hildenbrand Cc: Ye Liu , Michal Hocko , SJ Park , Gregory Price , Lorenzo Stoakes , peterz@infradead.org, paulmck@kernel.org, mingo@redhat.com, rostedt@goodmis.org, jpoimboe@kernel.org, mic@digikod.net, oleg@redhat.com, tglx@kernel.org, linmiaohe@huawei.com, nao.horiguchi@gmail.com, rafael@kernel.org, gnoack3000@gmail.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, rcu@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-security-module@vger.kernel.org, rientjes@google.com, shakeel.butt@linux.dev, xu.xin16@zte.com.cn, chengming.zhou@linux.dev, will@kernel.org, boqun@kernel.org, frederic@kernel.org, neeraj.upadhyay@kernel.org, joelagnelf@nvidia.com, josh@joshtriplett.org, urezki@gmail.com, juri.lelli@redhat.com, vincent.guittot@linaro.org, tony.luck@intel.com, reinette.chatre@intel.com, x86@kernel.org, paul@paul-moore.com, jmorris@namei.org, serge@hallyn.com, pavel@kernel.org, lance.yang@linux.dev, mhiramat@kernel.org, pmladek@suse.com, longman@redhat.com, mathieu.desnoyers@efficios.com, jiangshanlai@gmail.com, qiang.zhang@linux.dev, dietmar.eggemann@arm.com, bsegall@google.com, mgorman@suse.de, vschneid@redhat.com, kprateek.nayak@amd.com, mark.rutland@arm.com, Dave.Martin@arm.com, james.morse@arm.com, babu.moger@amd.com Subject: [PATCH v4 03/15] mm/ksm: convert process iterator to for_each_process_rculock Date: Mon, 21 Sep 2026 17:20:49 +0800 Message-Id: <20260921092101.89285-4-ye.liu@linux.dev> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260921092101.89285-1-ye.liu@linux.dev> References: <20260921092101.89285-1-ye.liu@linux.dev> 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: Ye Liu Replace the manual rcu_read_lock()/rcu_read_unlock() pair combined with for_each_process() loop in mm/ksm.c with for_each_process_rculock(), which scopes the RCU read lock to the loop body via scoped_guard(rcu). No functional change. Signed-off-by: Ye Liu Acked-by: Michal Hocko Reviewed-by: SJ Park Acked-by: David Hildenbrand (Arm) Reviewed-by: Gregory Price (Meta) Reviewed-by: Lorenzo Stoakes (ARM) Reviewed-by: Oleg Nesterov --- mm/ksm.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/mm/ksm.c b/mm/ksm.c index 49d48d1e0998..69d30e80a090 100644 --- a/mm/ksm.c +++ b/mm/ksm.c @@ -3280,8 +3280,7 @@ void collect_procs_ksm(const struct folio *folio, con= st struct page *page, struct anon_vma *av =3D rmap_item->anon_vma; =20 anon_vma_lock_read(av); - rcu_read_lock(); - for_each_process(tsk) { + for_each_process_rculock(tsk) { struct anon_vma_chain *vmac; const unsigned long addr =3D rmap_item->address & PAGE_MASK; const unsigned long index =3D rmap_item->linear_page_index; @@ -3298,7 +3297,6 @@ void collect_procs_ksm(const struct folio *folio, con= st struct page *page, } } } - rcu_read_unlock(); anon_vma_unlock_read(av); } } --=20 2.25.1 From nobody Thu Sep 24 20:02:03 2026 Received: from mta0.migadu.com (out-91.mta0.migadu.com [91.218.175.91]) (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 0A69E46984F for ; Mon, 21 Sep 2026 09:22:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.91 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789982549; cv=none; b=Ko8uQJ2eX/6GnzD/SAcEsdkxwoqOwUYtEc+f0IXI0FNJw7ay/oT5wOCQjludVRknIAw4cX8FvlZ6i2+7tY46Z+ppljglGZEbw15EYL75mbi55PoREABxTGeFasVmD11etRJ+DI8W7vGurpnyjlWZXGrOUmoAVrPLFHDhqLzc4fA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789982549; c=relaxed/simple; bh=surk1BCLeF5avvHG1soFt6VKsUb3Tew+Oslt4WkzeFY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=E4NInKiZzXgLnE75YLivbrfxqqe6ZesEVGmWjIX9BZBqKb4iLsbhnG5eEGUFWxS6goPup7Yj8gdskobJD0M79giEL75QABLJfOxWNguwXcOFmxU3ALCTN391oBnG5A3AHH0szcCWaaxk+iILXzsUYfKBm3y4UzIValnfyUY99J0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=gvcCXz8O; arc=none smtp.client-ip=91.218.175.91 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="gvcCXz8O" X-Envelope-To: linux-kernel@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=surk1BCLeF5avvHG1soFt6VKsUb3Tew+Oslt4WkzeFY=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1789982544; v=1; x=1790587344; b=gvcCXz8OGYtJMrZKg6eGQrflPUdG4L1eQa3e/ha4/vQd2MBjhhFiWJhafmmMDHwfm8B81AbR 5SyPg2zmaPoaeengg3pxFlxQhf6veQYbzKjXAldJoj/6/kL7Gr9Kvph+q+/k6AOsztjuo+BqIbM xDKM0K8jQD6wuw0vftZP49CA= X-Envelope-To: linux-kernel@vger.kernel.org Received: by smtp.migadu.com with ESMTPS id ae900405219d419d; Mon, 21 Sep 2026 09:22:24 +0000 X-Mizu-Trace-ID: ae900405219d419d X-Migadu-Flow: FLOW_OUT From: Ye Liu To: Miaohe Lin , Andrew Morton Cc: Ye Liu , Michal Hocko , Lorenzo Stoakes , SJ Park , Gregory Price , peterz@infradead.org, paulmck@kernel.org, mingo@redhat.com, rostedt@goodmis.org, jpoimboe@kernel.org, mic@digikod.net, oleg@redhat.com, tglx@kernel.org, david@kernel.org, nao.horiguchi@gmail.com, rafael@kernel.org, gnoack3000@gmail.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, rcu@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-security-module@vger.kernel.org, rientjes@google.com, shakeel.butt@linux.dev, xu.xin16@zte.com.cn, chengming.zhou@linux.dev, will@kernel.org, boqun@kernel.org, frederic@kernel.org, neeraj.upadhyay@kernel.org, joelagnelf@nvidia.com, josh@joshtriplett.org, urezki@gmail.com, juri.lelli@redhat.com, vincent.guittot@linaro.org, tony.luck@intel.com, reinette.chatre@intel.com, x86@kernel.org, paul@paul-moore.com, jmorris@namei.org, serge@hallyn.com, pavel@kernel.org, lance.yang@linux.dev, mhiramat@kernel.org, pmladek@suse.com, longman@redhat.com, mathieu.desnoyers@efficios.com, jiangshanlai@gmail.com, qiang.zhang@linux.dev, dietmar.eggemann@arm.com, bsegall@google.com, mgorman@suse.de, vschneid@redhat.com, kprateek.nayak@amd.com, mark.rutland@arm.com, Dave.Martin@arm.com, james.morse@arm.com, babu.moger@amd.com Subject: [PATCH v4 04/15] mm/memory-failure: convert process iterator to for_each_process_rculock Date: Mon, 21 Sep 2026 17:20:50 +0800 Message-Id: <20260921092101.89285-5-ye.liu@linux.dev> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260921092101.89285-1-ye.liu@linux.dev> References: <20260921092101.89285-1-ye.liu@linux.dev> 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: Ye Liu Replace the manual rcu_read_lock()/rcu_read_unlock() pairs combined with for_each_process() loop in mm/memory-failure.c with for_each_process_rculock(), which scopes the RCU read lock to the loop body via scoped_guard(rcu). In collect_procs_file(), the page_pgoff() call now falls outside the RCU read-side critical section. This is safe because page_pgoff() only reads folio->index and does not traverse any RCU-protected structures. Signed-off-by: Ye Liu Acked-by: Michal Hocko Acked-by: Miaohe Lin Reviewed-by: Lorenzo Stoakes (ARM) Reviewed-by: SJ Park Reviewed-by: Gregory Price (Meta) --- mm/memory-failure.c | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/mm/memory-failure.c b/mm/memory-failure.c index a8b03e2920ba..7d93deb1f7b3 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -555,8 +555,7 @@ static void collect_procs_anon(const struct folio *foli= o, return; =20 pgoff =3D page_pgoff(folio, page); - rcu_read_lock(); - for_each_process(tsk) { + for_each_process_rculock(tsk) { struct vm_area_struct *vma; struct anon_vma_chain *vmac; struct task_struct *t =3D task_early_kill(tsk, force_early); @@ -572,7 +571,6 @@ static void collect_procs_anon(const struct folio *foli= o, add_to_kill_anon_file(t, page, vma, to_kill, addr); } } - rcu_read_unlock(); anon_vma_unlock_read(av); } =20 @@ -589,9 +587,8 @@ static void collect_procs_file(const struct folio *foli= o, pgoff_t pgoff; =20 i_mmap_lock_read(mapping); - rcu_read_lock(); pgoff =3D page_pgoff(folio, page); - for_each_process(tsk) { + for_each_process_rculock(tsk) { struct task_struct *t =3D task_early_kill(tsk, force_early); unsigned long addr; =20 @@ -611,7 +608,6 @@ static void collect_procs_file(const struct folio *foli= o, add_to_kill_anon_file(t, page, vma, to_kill, addr); } } - rcu_read_unlock(); i_mmap_unlock_read(mapping); } =20 @@ -635,8 +631,7 @@ static void collect_procs_fsdax(const struct page *page, struct task_struct *tsk; =20 i_mmap_lock_read(mapping); - rcu_read_lock(); - for_each_process(tsk) { + for_each_process_rculock(tsk) { struct task_struct *t =3D tsk; =20 /* @@ -653,7 +648,6 @@ static void collect_procs_fsdax(const struct page *page, add_to_kill_fsdax(t, page, vma, to_kill, pgoff); } } - rcu_read_unlock(); i_mmap_unlock_read(mapping); } #endif /* CONFIG_FS_DAX */ @@ -2288,8 +2282,7 @@ static void collect_procs_pfn(struct pfn_address_spac= e *pfn_space, struct address_space *mapping =3D pfn_space->mapping; =20 i_mmap_lock_read(mapping); - rcu_read_lock(); - for_each_process(tsk) { + for_each_process_rculock(tsk) { struct task_struct *t =3D tsk; =20 t =3D task_early_kill(tsk, true); @@ -2303,7 +2296,6 @@ static void collect_procs_pfn(struct pfn_address_spac= e *pfn_space, add_to_kill_pgoff(t, vma, to_kill, pgoff); } } - rcu_read_unlock(); i_mmap_unlock_read(mapping); } =20 --=20 2.25.1 From nobody Thu Sep 24 20:02:03 2026 Received: from mta1.migadu.com (out-43.mta1.migadu.com [95.215.58.43]) (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 BEE0045FFA4 for ; Mon, 21 Sep 2026 09:22:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=95.215.58.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789982565; cv=none; b=I8pMKCDiN9C6sZiJpPyDyPI2dy/s89fLW81mjyMqfA3qqi2R0kOWzVqoq2cODoS0xhHNFoxT09fzSUS2lWEC3f+9rzeIsK1uQ7K2Xu0CWDZGnHDASyaYT5yUwwTdpTsyEJqgl4TvlvWyTaEodSW4GDpImUf8+gXk27TM9AQdVyY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789982565; c=relaxed/simple; bh=FGT5bYNhb7F30R7KVhWzfpI91BeKfJqsry/WZ5Za0+s=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ACFvXygYynrkIDwSFfB+Dy1u8u02BRwT0TGfLkiCvzJoBvJBJijpFvHsrjJw+2KD1Ip4uu6dhNLH3i1ZMQ2A1BDKNT5gCgD0cph0xpUWdodgjPHiwXbRFunpIW2iEJVVKXxQ9Q5eF5n5/gm3AXfPXdB0JlnkOY9vE3k0pUbgI2k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=cbeFATl/; arc=none smtp.client-ip=95.215.58.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="cbeFATl/" X-Envelope-To: linux-kernel@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=FGT5bYNhb7F30R7KVhWzfpI91BeKfJqsry/WZ5Za0+s=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1789982560; v=1; x=1790587360; b=cbeFATl/S/mO56iCGH+rcO9I9RDaMqRXPfnxr9OtC/n7BpWdSxMIb7F73keo7iHEgeIWKLj7 w5IkbclUpZdkLKPGFHVcCkayQUatur6sUPPjGy1YUvMqirnPoAQwi1F5AWevXbPOkyrxWXxMsgL 0NnzqRhYOJVlNlh/TecAs9B4= X-Envelope-To: linux-kernel@vger.kernel.org Received: by smtp.migadu.com with ESMTPS id 311c3a7172cefc8c; Mon, 21 Sep 2026 09:22:40 +0000 X-Mizu-Trace-ID: 311c3a7172cefc8c X-Migadu-Flow: FLOW_OUT From: Ye Liu To: Thomas Gleixner , Peter Zijlstra Cc: Ye Liu , Michal Hocko , SJ Park , Lorenzo Stoakes , Oleg Nesterov , akpm@linux-foundation.org, paulmck@kernel.org, mingo@redhat.com, rostedt@goodmis.org, jpoimboe@kernel.org, mic@digikod.net, david@kernel.org, linmiaohe@huawei.com, nao.horiguchi@gmail.com, rafael@kernel.org, gnoack3000@gmail.com, gourry@gourry.net, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, rcu@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-security-module@vger.kernel.org, rientjes@google.com, shakeel.butt@linux.dev, xu.xin16@zte.com.cn, chengming.zhou@linux.dev, will@kernel.org, boqun@kernel.org, frederic@kernel.org, neeraj.upadhyay@kernel.org, joelagnelf@nvidia.com, josh@joshtriplett.org, urezki@gmail.com, juri.lelli@redhat.com, vincent.guittot@linaro.org, tony.luck@intel.com, reinette.chatre@intel.com, x86@kernel.org, paul@paul-moore.com, jmorris@namei.org, serge@hallyn.com, pavel@kernel.org, lance.yang@linux.dev, mhiramat@kernel.org, pmladek@suse.com, longman@redhat.com, mathieu.desnoyers@efficios.com, jiangshanlai@gmail.com, qiang.zhang@linux.dev, dietmar.eggemann@arm.com, bsegall@google.com, mgorman@suse.de, vschneid@redhat.com, kprateek.nayak@amd.com, mark.rutland@arm.com, Dave.Martin@arm.com, james.morse@arm.com, babu.moger@amd.com Subject: [PATCH v4 05/15] cpu/hotplug: convert process iterator to for_each_process_rculock Date: Mon, 21 Sep 2026 17:20:51 +0800 Message-Id: <20260921092101.89285-6-ye.liu@linux.dev> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260921092101.89285-1-ye.liu@linux.dev> References: <20260921092101.89285-1-ye.liu@linux.dev> 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: Ye Liu Replace the manual rcu_read_lock()/rcu_read_unlock() pair combined with for_each_process() loop in kernel/cpu.c with for_each_process_rculock(= ), which scopes the RCU read lock to the loop body via scoped_guard(rcu). No functional change. Signed-off-by: Ye Liu Acked-by: Michal Hocko Reviewed-by: SJ Park Reviewed-by: Lorenzo Stoakes (ARM) Reviewed-by: Oleg Nesterov --- kernel/cpu.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/kernel/cpu.c b/kernel/cpu.c index b3c8553d7bd6..00638d2abc0f 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c @@ -1254,8 +1254,7 @@ void clear_tasks_mm_cpumask(int cpu) * full-fledged tasklist_lock. */ WARN_ON(cpu_online(cpu)); - rcu_read_lock(); - for_each_process(p) { + for_each_process_rculock(p) { struct task_struct *t; =20 /* @@ -1268,7 +1267,6 @@ void clear_tasks_mm_cpumask(int cpu) arch_clear_mm_cpumask_cpu(cpu, t->mm); task_unlock(t); } - rcu_read_unlock(); } =20 /* Take this CPU down. */ --=20 2.25.1 From nobody Thu Sep 24 20:02:03 2026 Received: from mta1.migadu.com (out-64.mta1.migadu.com [95.215.58.64]) (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 8318746A5EE for ; Mon, 21 Sep 2026 09:22:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=95.215.58.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789982580; cv=none; b=tdQR5IqcPpg5mQH40afk795MrGF1MjmulgEI+kG4k3rkL8fn8GgucyjngPl7QoOKbpTkPV8KNfjzmoGWlRn+cKvyZdld5TWkl9LkoKihBClienYZjbnSNpXs1qOuzlwOpq1QNmavM/47yNK7XsVTrUMrSpd1LpNIudwIjz0w4d8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789982580; c=relaxed/simple; bh=+apiCWXB2L/Ctun6eWEUkwbOkaFG907R5s++lFpj7MQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=OSp+Za7jkhCjK20OSodU/6Tnf2ydGNabNyA2WcdQxv4FBBzmyH5tbgDNaZx2lLGWtsR2weXc1+IIc8/E0R9HDR2jPAhPIKTJzTmDZWjMpzcvh/HE+dvJcmQhJ/WP2ytYhCZM663gMjLdZYVG+dH+2jfXiNIUUGOVwU8QhAFIKp0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=WTUC2a2V; arc=none smtp.client-ip=95.215.58.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="WTUC2a2V" X-Envelope-To: linux-kernel@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=+apiCWXB2L/Ctun6eWEUkwbOkaFG907R5s++lFpj7MQ=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1789982576; v=1; x=1790587376; b=WTUC2a2VzrlQ2BMfoVUjs85qxry4/YDC6KfWMIl/amxO7xxZPqyBhOw1LIUWCxQeW2PK43I5 RzpLMOhMh37dI09MpeG65XP2bED7/NdLdCVzWVbz0zc/qiZR41Gk6mFPIsk00QMbzrxrtj2wxAk +G6rWuh6+lNFCSeR9dF3xtmg= X-Envelope-To: linux-kernel@vger.kernel.org Received: by smtp.migadu.com with ESMTPS id 0629d28ba88758c8; Mon, 21 Sep 2026 09:22:56 +0000 X-Mizu-Trace-ID: 0629d28ba88758c8 X-Migadu-Flow: FLOW_OUT From: Ye Liu To: "Rafael J. Wysocki" Cc: Ye Liu , Michal Hocko , SJ Park , Lorenzo Stoakes , Oleg Nesterov , akpm@linux-foundation.org, peterz@infradead.org, paulmck@kernel.org, mingo@redhat.com, rostedt@goodmis.org, jpoimboe@kernel.org, mic@digikod.net, tglx@kernel.org, david@kernel.org, linmiaohe@huawei.com, nao.horiguchi@gmail.com, gnoack3000@gmail.com, gourry@gourry.net, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, rcu@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-security-module@vger.kernel.org, rientjes@google.com, shakeel.butt@linux.dev, xu.xin16@zte.com.cn, chengming.zhou@linux.dev, will@kernel.org, boqun@kernel.org, frederic@kernel.org, neeraj.upadhyay@kernel.org, joelagnelf@nvidia.com, josh@joshtriplett.org, urezki@gmail.com, juri.lelli@redhat.com, vincent.guittot@linaro.org, tony.luck@intel.com, reinette.chatre@intel.com, x86@kernel.org, paul@paul-moore.com, jmorris@namei.org, serge@hallyn.com, pavel@kernel.org, lance.yang@linux.dev, mhiramat@kernel.org, pmladek@suse.com, longman@redhat.com, mathieu.desnoyers@efficios.com, jiangshanlai@gmail.com, qiang.zhang@linux.dev, dietmar.eggemann@arm.com, bsegall@google.com, mgorman@suse.de, vschneid@redhat.com, kprateek.nayak@amd.com, mark.rutland@arm.com, Dave.Martin@arm.com, james.morse@arm.com, babu.moger@amd.com Subject: [PATCH v4 06/15] freezer: convert thread iterator to for_each_thread_rculock Date: Mon, 21 Sep 2026 17:20:52 +0800 Message-Id: <20260921092101.89285-7-ye.liu@linux.dev> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260921092101.89285-1-ye.liu@linux.dev> References: <20260921092101.89285-1-ye.liu@linux.dev> 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: Ye Liu Replace the manual rcu_read_lock()/rcu_read_unlock() pair combined with for_each_thread() loop in kernel/freezer.c with for_each_thread_rculock(), which scopes the RCU read lock to the loop body via scoped_guard(rcu). No functional change. Signed-off-by: Ye Liu Acked-by: Michal Hocko Reviewed-by: SJ Park Reviewed-by: Lorenzo Stoakes (ARM) Reviewed-by: Oleg Nesterov --- kernel/freezer.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/kernel/freezer.c b/kernel/freezer.c index a76bf957fb32..7a870f71dcf6 100644 --- a/kernel/freezer.c +++ b/kernel/freezer.c @@ -217,11 +217,9 @@ void thaw_process(struct task_struct *p) { struct task_struct *t; =20 - rcu_read_lock(); - for_each_thread(p, t) { + for_each_thread_rculock(p, t) { __thaw_task(t); } - rcu_read_unlock(); } =20 /** --=20 2.25.1 From nobody Thu Sep 24 20:02:03 2026 Received: from mta0.migadu.com (out-165.mta0.migadu.com [91.218.175.165]) (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 A1E5545FFBB for ; Mon, 21 Sep 2026 09:23:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.165 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789982592; cv=none; b=VaPwhD/HZ8gaAbdpyrmF/Ec0+C5DehEwl0rLF+2Fby+GrU/+KSpa6p6zhfLVHp4dayltsWNI04T/TrBWFuWq9lFEXySVBSWcbQWR5AzjAno1m3mlO6PpJJMfUIQdNTo7QQYpi50IOEA0iCWKlBhoJ+ipk5MRZMczPQt6ql3Kxag= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789982592; c=relaxed/simple; bh=66wflbyis4BetWzKnN/o4fNs3siEXCRm0GuSiVvDJXk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=J8IudBdNf2dYAJSk5jvzem6U+77dULS1COjHx+9P/09Kqr2/g3NxVN9n71Q7hOOiS6I+pHva9uNQg7//de1/eMAwGuembH8NoJhFVfIVJRp1n6QIGiX+Vv5f5IxeCpxlobqMFrEqR8VHM5D4Higz+Obb8OUBjNIZeMNYP84YNCA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=D9oKassi; arc=none smtp.client-ip=91.218.175.165 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="D9oKassi" X-Envelope-To: linux-kernel@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=66wflbyis4BetWzKnN/o4fNs3siEXCRm0GuSiVvDJXk=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1789982588; v=1; x=1790587388; b=D9oKassi8FGfFTqHza0cIFeIN+4H+uuY20i2nfNdFOhWsqPLrfrXKez6NoTGByO3MB3Es2Dj QmMw+w10l3It6/ORf8KaIKeRqbAeqzz0Oa7gJzrNQe/iWWwO3QPIUDpM7VEBgiaKfrpvG7uouqF DCfUE+CZSkS6GWrAyHEvjhk0= X-Envelope-To: linux-kernel@vger.kernel.org Received: by smtp.migadu.com with ESMTPS id 515370f5e6daff6a; Mon, 21 Sep 2026 09:23:08 +0000 X-Mizu-Trace-ID: 515370f5e6daff6a X-Migadu-Flow: FLOW_OUT From: Ye Liu To: Andrew Morton Cc: Ye Liu , Michal Hocko , SJ Park , Lorenzo Stoakes , Oleg Nesterov , peterz@infradead.org, paulmck@kernel.org, mingo@redhat.com, rostedt@goodmis.org, jpoimboe@kernel.org, mic@digikod.net, tglx@kernel.org, david@kernel.org, linmiaohe@huawei.com, nao.horiguchi@gmail.com, rafael@kernel.org, gnoack3000@gmail.com, gourry@gourry.net, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, rcu@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-security-module@vger.kernel.org, rientjes@google.com, shakeel.butt@linux.dev, xu.xin16@zte.com.cn, chengming.zhou@linux.dev, will@kernel.org, boqun@kernel.org, frederic@kernel.org, neeraj.upadhyay@kernel.org, joelagnelf@nvidia.com, josh@joshtriplett.org, urezki@gmail.com, juri.lelli@redhat.com, vincent.guittot@linaro.org, tony.luck@intel.com, reinette.chatre@intel.com, x86@kernel.org, paul@paul-moore.com, jmorris@namei.org, serge@hallyn.com, pavel@kernel.org, lance.yang@linux.dev, mhiramat@kernel.org, pmladek@suse.com, longman@redhat.com, mathieu.desnoyers@efficios.com, jiangshanlai@gmail.com, qiang.zhang@linux.dev, dietmar.eggemann@arm.com, bsegall@google.com, mgorman@suse.de, vschneid@redhat.com, kprateek.nayak@amd.com, mark.rutland@arm.com, Dave.Martin@arm.com, james.morse@arm.com, babu.moger@amd.com Subject: [PATCH v4 07/15] hung_task: convert process/thread iterators to for_each_*_rculock Date: Mon, 21 Sep 2026 17:20:53 +0800 Message-Id: <20260921092101.89285-8-ye.liu@linux.dev> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260921092101.89285-1-ye.liu@linux.dev> References: <20260921092101.89285-1-ye.liu@linux.dev> 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: Ye Liu Replace the manual rcu_read_lock()/rcu_read_unlock() pair combined with for_each_process_thread() loop in kernel/hung_task.c with for_each_process_thread_rculock(), which scopes the RCU read lock to the loop body via scoped_guard(rcu). No functional change. Signed-off-by: Ye Liu Acked-by: Michal Hocko Reviewed-by: SJ Park Reviewed-by: Lorenzo Stoakes (ARM) Reviewed-by: Oleg Nesterov --- kernel/hung_task.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/kernel/hung_task.c b/kernel/hung_task.c index 6fcc94ce4ca9..73a5ad3be9a8 100644 --- a/kernel/hung_task.c +++ b/kernel/hung_task.c @@ -315,13 +315,12 @@ static void check_hung_uninterruptible_tasks(unsigned= long timeout) return; =20 this_round_count =3D 0; - rcu_read_lock(); - for_each_process_thread(g, t) { + for_each_process_thread_rculock(g, t) { if (!max_count--) - goto unlock; + goto out; if (time_after(jiffies, last_break + HUNG_TASK_LOCK_BREAK)) { if (!rcu_lock_break(g, t)) - goto unlock; + goto out; last_break =3D jiffies; } =20 @@ -337,9 +336,7 @@ static void check_hung_uninterruptible_tasks(unsigned l= ong timeout) hung_task_info(t, timeout, this_round_count); } } - unlock: - rcu_read_unlock(); - +out: if (!this_round_count) return; =20 --=20 2.25.1 From nobody Thu Sep 24 20:02:03 2026 Received: from mta0.migadu.com (out-187.mta0.migadu.com [91.218.175.187]) (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 71ECD46A5EE for ; Mon, 21 Sep 2026 09:23:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.187 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789982608; cv=none; b=o4eD4NwBQcZQcQsLSUQxgxcmwGT8wWI5Yl43VmKRVXKq4vvNJpOWDWyvfIjNX2RlMMA7ddIzVkYeZl9FtzqgpXt8tJ4cPOdLIxsjq8pEJTofthrK+YKjlxNF0vQLfXT9gEzTTouDaXxG5J6HdLv6ln8qdwErLz2qhV2KN1HJfVU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789982608; c=relaxed/simple; bh=hvpqBrTuGQdelxQxV7LAEzeK1Pu58637uGt8AyWJtr4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=GMngahXC/6X2/AGzPyuZHdiBp0eJ1u3ASNnmhYu9/aqeOjiGG9hxrwB8ByYwlPfjRU5MjsztobcAAfsCFNKuCA6KIw6k1WqQk1mjxkRp1WR4hjHWmLbU6G0bHSBJ2bsg5XOsIVAY9Pui4OXWNFU3oVu/c+7jaTYKUhqofxAdH1E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=UjCgDvee; arc=none smtp.client-ip=91.218.175.187 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="UjCgDvee" X-Envelope-To: linux-kernel@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=hvpqBrTuGQdelxQxV7LAEzeK1Pu58637uGt8AyWJtr4=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1789982603; v=1; x=1790587403; b=UjCgDveeFLOD/PHHgF+rQI+KUm3sTeCxnsAh9q2sAKndYMz+0n0u945lFRj5bicxwpJegF17 ySIWsumrwbLdNOhqTadT1MXLnuu4oumQdcM5K2T77wC1hukw2NYTrwsh/CcdMRbZ6CYl5UgdLXt 34E0TJ7sFIi7QlcyBJF4kzSY= X-Envelope-To: linux-kernel@vger.kernel.org Received: by smtp.migadu.com with ESMTPS id c4a69cd911b0a5e9; Mon, 21 Sep 2026 09:23:23 +0000 X-Mizu-Trace-ID: c4a69cd911b0a5e9 X-Migadu-Flow: FLOW_OUT From: Ye Liu To: Peter Zijlstra , Ingo Molnar , Will Deacon , Boqun Feng Cc: Ye Liu , Michal Hocko , SJ Park , Lorenzo Stoakes , Oleg Nesterov , akpm@linux-foundation.org, paulmck@kernel.org, rostedt@goodmis.org, jpoimboe@kernel.org, mic@digikod.net, tglx@kernel.org, david@kernel.org, linmiaohe@huawei.com, nao.horiguchi@gmail.com, rafael@kernel.org, gnoack3000@gmail.com, gourry@gourry.net, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, rcu@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-security-module@vger.kernel.org, rientjes@google.com, shakeel.butt@linux.dev, xu.xin16@zte.com.cn, chengming.zhou@linux.dev, frederic@kernel.org, neeraj.upadhyay@kernel.org, joelagnelf@nvidia.com, josh@joshtriplett.org, urezki@gmail.com, juri.lelli@redhat.com, vincent.guittot@linaro.org, tony.luck@intel.com, reinette.chatre@intel.com, x86@kernel.org, paul@paul-moore.com, jmorris@namei.org, serge@hallyn.com, pavel@kernel.org, lance.yang@linux.dev, mhiramat@kernel.org, pmladek@suse.com, longman@redhat.com, mathieu.desnoyers@efficios.com, jiangshanlai@gmail.com, qiang.zhang@linux.dev, dietmar.eggemann@arm.com, bsegall@google.com, mgorman@suse.de, vschneid@redhat.com, kprateek.nayak@amd.com, mark.rutland@arm.com, Dave.Martin@arm.com, james.morse@arm.com, babu.moger@amd.com Subject: [PATCH v4 08/15] locking/lockdep: convert process/thread iterators to for_each_*_rculock Date: Mon, 21 Sep 2026 17:20:54 +0800 Message-Id: <20260921092101.89285-9-ye.liu@linux.dev> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260921092101.89285-1-ye.liu@linux.dev> References: <20260921092101.89285-1-ye.liu@linux.dev> 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: Ye Liu Replace the manual rcu_read_lock()/rcu_read_unlock() pair combined with for_each_process_thread() loop in kernel/locking/lockdep.c with for_each_process_thread_rculock(), which scopes the RCU read lock to the loop body via scoped_guard(rcu). No functional change. Signed-off-by: Ye Liu Acked-by: Michal Hocko Reviewed-by: SJ Park Reviewed-by: Lorenzo Stoakes (ARM) Reviewed-by: Oleg Nesterov --- kernel/locking/lockdep.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c index c56a7f91d72e..ea218dc75ad5 100644 --- a/kernel/locking/lockdep.c +++ b/kernel/locking/lockdep.c @@ -6834,15 +6834,13 @@ void debug_show_all_locks(void) } pr_warn("\nShowing all locks held in the system:\n"); =20 - rcu_read_lock(); - for_each_process_thread(g, p) { + for_each_process_thread_rculock(g, p) { if (!p->lockdep_depth) continue; lockdep_print_held_locks(p); touch_nmi_watchdog(); touch_all_softlockup_watchdogs(); } - rcu_read_unlock(); =20 pr_warn("\n"); pr_warn("=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D\n\= n"); --=20 2.25.1 From nobody Thu Sep 24 20:02:03 2026 Received: from mta1.migadu.com (out-136.mta1.migadu.com [95.215.58.136]) (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 197FD468C23 for ; Mon, 21 Sep 2026 09:23:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=95.215.58.136 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789982623; cv=none; b=Dm4ngAsTnv1pJKSs2y0kiS06l25Q4msEm6BeR+U8xTzZv4DopyU4fmxVfNmiROkzOYsvto/ScJiuQk9+3O8zH5u8s3pYOTWHfB8XbnW2qhcnrZG9KS9S6kutf2IU7Fx9EVYTEGegwwgn0sZBjBshWl4U5hMW+zkPZKJAm3YkrDs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789982623; c=relaxed/simple; bh=7BvEFNtRHP1Kn+ktJB3UzR2F40Rkin63WssI085fxec=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=rCPMl+g5GruqRHu5qqut2B0W02R2e7UMZpPCUItvI91l91DqAWb109OXeBZJ5fDy9CDB6y7tCkHjBwa0PtUbkksqj8MN1rUfvcIGXN0KzQpCCAnr/XLV+wBOIXiMAUe7GZxO0l+wxIoHL1ZjvWpb27ESSqsCCBoKh5zWqDyRdqQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=aNL80u/d; arc=none smtp.client-ip=95.215.58.136 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="aNL80u/d" X-Envelope-To: linux-kernel@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=7BvEFNtRHP1Kn+ktJB3UzR2F40Rkin63WssI085fxec=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1789982619; v=1; x=1790587419; b=aNL80u/d2xopWc0w5ukYZmXhzLYGrq0EySqesrxN6WairP9Dxruzh1fnrHZf47uyRdgaSdZ9 45AeJg7NBDWk2IXtOdkMEvqovo1HShggNq/Vez0GuMgc+UsWRt4eQzLEfisti2zoqLkrfQUj5eG 1XygJB7dl9Z6g7gpP5LCpjLI= X-Envelope-To: linux-kernel@vger.kernel.org Received: by smtp.migadu.com with ESMTPS id 04c788aff0412b12; Mon, 21 Sep 2026 09:23:38 +0000 X-Mizu-Trace-ID: 04c788aff0412b12 X-Migadu-Flow: FLOW_OUT From: Ye Liu To: "Paul E. McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Uladzislau Rezki Cc: Ye Liu , Michal Hocko , SJ Park , Lorenzo Stoakes , Oleg Nesterov , akpm@linux-foundation.org, peterz@infradead.org, mingo@redhat.com, rostedt@goodmis.org, jpoimboe@kernel.org, mic@digikod.net, tglx@kernel.org, david@kernel.org, linmiaohe@huawei.com, nao.horiguchi@gmail.com, rafael@kernel.org, gnoack3000@gmail.com, gourry@gourry.net, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, rcu@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-security-module@vger.kernel.org, rientjes@google.com, shakeel.butt@linux.dev, xu.xin16@zte.com.cn, chengming.zhou@linux.dev, will@kernel.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, tony.luck@intel.com, reinette.chatre@intel.com, x86@kernel.org, paul@paul-moore.com, jmorris@namei.org, serge@hallyn.com, pavel@kernel.org, lance.yang@linux.dev, mhiramat@kernel.org, pmladek@suse.com, longman@redhat.com, mathieu.desnoyers@efficios.com, jiangshanlai@gmail.com, qiang.zhang@linux.dev, dietmar.eggemann@arm.com, bsegall@google.com, mgorman@suse.de, vschneid@redhat.com, kprateek.nayak@amd.com, mark.rutland@arm.com, Dave.Martin@arm.com, james.morse@arm.com, babu.moger@amd.com Subject: [PATCH v4 09/15] rcu: convert process/thread iterator to for_each_process_thread_rculock Date: Mon, 21 Sep 2026 17:20:55 +0800 Message-Id: <20260921092101.89285-10-ye.liu@linux.dev> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260921092101.89285-1-ye.liu@linux.dev> References: <20260921092101.89285-1-ye.liu@linux.dev> 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: Ye Liu Replace the manual rcu_read_lock()/rcu_read_unlock() pair combined with for_each_process_thread() loop in kernel/rcu/update.c with for_each_process_thread_rculock(), which scopes the RCU read lock to the loop body via scoped_guard(rcu). No functional change. Signed-off-by: Ye Liu Acked-by: Michal Hocko Reviewed-by: SJ Park Reviewed-by: Lorenzo Stoakes (ARM) Reviewed-by: Oleg Nesterov Reviewed-by: Paul E. McKenney --- kernel/rcu/update.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/kernel/rcu/update.c b/kernel/rcu/update.c index 2a778b8ab4ad..d8e0b5896db9 100644 --- a/kernel/rcu/update.c +++ b/kernel/rcu/update.c @@ -548,15 +548,13 @@ void synchronize_rcu_trivial_preempt(void) struct task_struct *t; =20 smp_mb(); // Order prior accesses before grace-period start. - rcu_read_lock(); // Protect task list. - for_each_process_thread(g, t) { + for_each_process_thread_rculock(g, t) { if (t =3D=3D current) continue; // Don't deadlock on ourselves! // Order later rcu_read_lock() on other tasks after QS. while (smp_load_acquire(&t->rcu_trivial_preempt_nesting)) continue; } - rcu_read_unlock(); } EXPORT_SYMBOL_GPL(synchronize_rcu_trivial_preempt); #endif // #if IS_ENABLED(CONFIG_TRIVIAL_PREEMPT_RCU) --=20 2.25.1 From nobody Thu Sep 24 20:02:03 2026 Received: from mta1.migadu.com (out-156.mta1.migadu.com [95.215.58.156]) (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 C1A054582C8 for ; Mon, 21 Sep 2026 09:23:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=95.215.58.156 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789982636; cv=none; b=eiifr3Sveqr3WYjfDnVNw893uLvF6+saTpaSZahRsfM8utEubNbPhEKApKXuyFznqT3Es/P/nRYwBvn6ozsbKV9F4N3rS4rSVc1wacnukKcHpkLffII105HYnqJSGyS3pO77QQg0CUauEmgyVsGvuuvLJxPwHffLCpr6wzbLXs0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789982636; c=relaxed/simple; bh=JmZnNdNWu/MHbh4iVosFA0RR44Xc7VFrViTR+zioOBM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=WM1kkJNaKZgzgx/mqXZFAiJhq/pMZCApPanUXrJrBSvJ7M9HSrwBg1Lwfx/aahAvJruMZoP0e9vOKsG9ML7xqQI0USLPzDjSw07ai66+n/OYeyub6RMj/cHCGMwvYP+HvnCCyzTzodiWTqBwU7jIncyEMFdoryAAuQfeU3y9wbE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=Nd2YedFb; arc=none smtp.client-ip=95.215.58.156 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="Nd2YedFb" X-Envelope-To: linux-kernel@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=JmZnNdNWu/MHbh4iVosFA0RR44Xc7VFrViTR+zioOBM=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1789982631; v=1; x=1790587431; b=Nd2YedFbPQlJZwOFSjV7Uav1emqVZ361evkMut/lCudxWrcDlALOhoLCj/G9YtZy8wXGtJmt RklNHbnUJowDBnTNpW+U4G5DdDrXXHXJJFKymF7cG9OY1nL4YNV2guE9JjCa4pv5UGBn1preh2d 7erhcnbj+J4ll2DhHx9lRuG8= X-Envelope-To: linux-kernel@vger.kernel.org Received: by smtp.migadu.com with ESMTPS id 24a1d58a18ab436c; Mon, 21 Sep 2026 09:23:51 +0000 X-Mizu-Trace-ID: 24a1d58a18ab436c X-Migadu-Flow: FLOW_OUT From: Ye Liu To: Ingo Molnar , Peter Zijlstra , Juri Lelli , Vincent Guittot Cc: Ye Liu , Michal Hocko , SJ Park , Lorenzo Stoakes , Oleg Nesterov , akpm@linux-foundation.org, paulmck@kernel.org, rostedt@goodmis.org, jpoimboe@kernel.org, mic@digikod.net, tglx@kernel.org, david@kernel.org, linmiaohe@huawei.com, nao.horiguchi@gmail.com, rafael@kernel.org, gnoack3000@gmail.com, gourry@gourry.net, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, rcu@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-security-module@vger.kernel.org, rientjes@google.com, shakeel.butt@linux.dev, xu.xin16@zte.com.cn, chengming.zhou@linux.dev, will@kernel.org, boqun@kernel.org, frederic@kernel.org, neeraj.upadhyay@kernel.org, joelagnelf@nvidia.com, josh@joshtriplett.org, urezki@gmail.com, tony.luck@intel.com, reinette.chatre@intel.com, x86@kernel.org, paul@paul-moore.com, jmorris@namei.org, serge@hallyn.com, pavel@kernel.org, lance.yang@linux.dev, mhiramat@kernel.org, pmladek@suse.com, longman@redhat.com, mathieu.desnoyers@efficios.com, jiangshanlai@gmail.com, qiang.zhang@linux.dev, dietmar.eggemann@arm.com, bsegall@google.com, mgorman@suse.de, vschneid@redhat.com, kprateek.nayak@amd.com, mark.rutland@arm.com, Dave.Martin@arm.com, james.morse@arm.com, babu.moger@amd.com Subject: [PATCH v4 10/15] sched: convert process/thread iterators to for_each_*_rculock Date: Mon, 21 Sep 2026 17:20:56 +0800 Message-Id: <20260921092101.89285-11-ye.liu@linux.dev> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260921092101.89285-1-ye.liu@linux.dev> References: <20260921092101.89285-1-ye.liu@linux.dev> 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: Ye Liu Replace the manual rcu_read_lock()/rcu_read_unlock() and guard(rcu) pairs combined with for_each_process_thread() loops in kernel/sched/ with for_each_process_thread_rculock(), which scopes the RCU read lock to the loop body via scoped_guard(rcu). No functional change. Signed-off-by: Ye Liu Acked-by: Michal Hocko Reviewed-by: SJ Park Reviewed-by: Lorenzo Stoakes (ARM) Reviewed-by: Oleg Nesterov --- kernel/sched/core.c | 3 +-- kernel/sched/debug.c | 4 +--- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 0697ed0f1c3d..fd5bdd2cb798 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -2005,8 +2005,7 @@ static void uclamp_sync_util_min_rt_default(void) smp_mb__after_spinlock(); read_unlock(&tasklist_lock); =20 - guard(rcu)(); - for_each_process_thread(g, p) + for_each_process_thread_rculock(g, p) uclamp_update_util_min_rt_default(p); } =20 diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c index 72236db67983..cdae165b98f7 100644 --- a/kernel/sched/debug.c +++ b/kernel/sched/debug.c @@ -1029,14 +1029,12 @@ static void print_rq(struct seq_file *m, struct rq = *rq, int rq_cpu) #endif "\n"); =20 - rcu_read_lock(); - for_each_process_thread(g, p) { + for_each_process_thread_rculock(g, p) { if (task_cpu(p) !=3D rq_cpu) continue; =20 print_task(m, rq, p); } - rcu_read_unlock(); } =20 void print_cfs_rq(struct seq_file *m, int cpu, struct cfs_rq *cfs_rq) --=20 2.25.1 From nobody Thu Sep 24 20:02:03 2026 Received: from mta0.migadu.com (out-1.mta0.migadu.com [91.218.175.1]) (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 37782469837 for ; Mon, 21 Sep 2026 09:24:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.1 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789982652; cv=none; b=Sh1qVkxjEaJEgWAXE0QG8LlN2SaIGWPjbYNeJOyX0wFdY4W5y7azhxaebiJG0TZsMqKGYXBpaJgEuHBjGq3r7hqKwIEazo/hF+RPtKW7avfFdvqoMUGT5fKq+mqeVmCz+scEuY5vg/qUZwGOmNsxN0wizZCRAArpBthWPj2pKvk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789982652; c=relaxed/simple; bh=VqnVaCdhVlGtZkszWTI2vWRw1i1BnDWykkewz9dTKKk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=CkcIj4Ts076Iad5F7ApnR8F6iocmau2Eqn81ei/56Pn6Ma7of1klLLPCj+K0jjr2+qenwvzTBJe8Xl9xPZv0aYDTfqXDAnTTO0WtpTCZ57YnWBS7DTUygBZfMo8PyNL/rRBIymkF/ETnNaRON+cGKb/mwcGDQUPUfJ9NOSS8Okw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=CsrOzaLb; arc=none smtp.client-ip=91.218.175.1 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="CsrOzaLb" X-Envelope-To: linux-kernel@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=VqnVaCdhVlGtZkszWTI2vWRw1i1BnDWykkewz9dTKKk=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1789982648; v=1; x=1790587448; b=CsrOzaLbncf1jifun0BnzCbuZmSUkImkyOH6UEG7P6A+Vt+UHtkBjSpvOZsQen6Gs1BBhnKf JJXOgk+/vI3k3CHqWgDGCdFFhAEbadIg2OFSrD2Kh+26utEq24v1OUZK1+aPv3rnawiazblk0N+ iblvXkKpkWKJQgTM3UnRfQM0= X-Envelope-To: linux-kernel@vger.kernel.org Received: by smtp.migadu.com with ESMTPS id d6ffecb1f71c0195; Mon, 21 Sep 2026 09:24:08 +0000 X-Mizu-Trace-ID: d6ffecb1f71c0195 X-Migadu-Flow: FLOW_OUT From: Ye Liu To: Steven Rostedt , Masami Hiramatsu Cc: Ye Liu , Michal Hocko , SJ Park , Lorenzo Stoakes , Oleg Nesterov , akpm@linux-foundation.org, peterz@infradead.org, paulmck@kernel.org, mingo@redhat.com, jpoimboe@kernel.org, mic@digikod.net, tglx@kernel.org, david@kernel.org, linmiaohe@huawei.com, nao.horiguchi@gmail.com, rafael@kernel.org, gnoack3000@gmail.com, gourry@gourry.net, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, rcu@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-security-module@vger.kernel.org, rientjes@google.com, shakeel.butt@linux.dev, xu.xin16@zte.com.cn, chengming.zhou@linux.dev, will@kernel.org, boqun@kernel.org, frederic@kernel.org, neeraj.upadhyay@kernel.org, joelagnelf@nvidia.com, josh@joshtriplett.org, urezki@gmail.com, juri.lelli@redhat.com, vincent.guittot@linaro.org, tony.luck@intel.com, reinette.chatre@intel.com, x86@kernel.org, paul@paul-moore.com, jmorris@namei.org, serge@hallyn.com, pavel@kernel.org, lance.yang@linux.dev, pmladek@suse.com, longman@redhat.com, mathieu.desnoyers@efficios.com, jiangshanlai@gmail.com, qiang.zhang@linux.dev, dietmar.eggemann@arm.com, bsegall@google.com, mgorman@suse.de, vschneid@redhat.com, kprateek.nayak@amd.com, mark.rutland@arm.com, Dave.Martin@arm.com, james.morse@arm.com, babu.moger@amd.com Subject: [PATCH v4 11/15] tracing/fgraph: convert process/thread iterator to for_each_process_thread_rculock Date: Mon, 21 Sep 2026 17:20:57 +0800 Message-Id: <20260921092101.89285-12-ye.liu@linux.dev> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260921092101.89285-1-ye.liu@linux.dev> References: <20260921092101.89285-1-ye.liu@linux.dev> 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: Ye Liu Replace the manual rcu_read_lock()/rcu_read_unlock() pair combined with for_each_process_thread() loop in kernel/trace/fgraph.c with for_each_process_thread_rculock(), which scopes the RCU read lock to the loop body via scoped_guard(rcu). No functional change. Signed-off-by: Ye Liu Acked-by: Michal Hocko Reviewed-by: SJ Park Reviewed-by: Lorenzo Stoakes (ARM) Reviewed-by: Oleg Nesterov Acked-by: Steven Rostedt --- kernel/trace/fgraph.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/kernel/trace/fgraph.c b/kernel/trace/fgraph.c index 40d373d65f9b..f797ce119223 100644 --- a/kernel/trace/fgraph.c +++ b/kernel/trace/fgraph.c @@ -1057,11 +1057,10 @@ static int alloc_retstack_tasklist(unsigned long **= ret_stack_list) } } =20 - rcu_read_lock(); - for_each_process_thread(g, t) { + for_each_process_thread_rculock(g, t) { if (start =3D=3D end) { ret =3D -EAGAIN; - goto unlock; + goto free; } =20 if (t->ret_stack =3D=3D NULL) { @@ -1074,9 +1073,6 @@ static int alloc_retstack_tasklist(unsigned long **re= t_stack_list) t->ret_stack =3D ret_stack_list[start++]; } } - -unlock: - rcu_read_unlock(); free: for (i =3D start; i < end; i++) kmem_cache_free(fgraph_stack_cachep, ret_stack_list[i]); --=20 2.25.1 From nobody Thu Sep 24 20:02:03 2026 Received: from mta1.migadu.com (out-209.mta1.migadu.com [95.215.58.209]) (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 0F77E46C847 for ; Mon, 21 Sep 2026 09:24:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=95.215.58.209 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789982669; cv=none; b=qg7AhpqtaLP4uiyo2kCz/FztJyk3cmjiH8jdABGDK+6UOV7mIfAJ5qJvNXtmwrSxPfZj3bc0ONB9ZREZblDag1REMHK+J6Eky4Wc527r3x0a/GxGgJ/jGVI14Aso0CPCMezA2kNrzedYFnPx1RN+6hvNHPy3BCUUXj6GB2ijtwE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789982669; c=relaxed/simple; bh=2f1S6gRWH7DPHgoPeU6kEsDfvjq6VTeSt0plIQ0isA4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=i1ee4TN8And/7D/QNv+mhrQS/jSKsOvCWzpthJ4bqrxH0kAH1/3lqcj/jz4F8UqM3MyEF9y1+J5B/w57Yy6jX0UY3PE1bJuiYMw2p2KNxOwdycBKbW7u1F6HXBVkhjFez7OI7WBkanyyRcWm7NdpSWtfUhNKVlk0UX4l9xKICwg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=WHMTgbRv; arc=none smtp.client-ip=95.215.58.209 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="WHMTgbRv" X-Envelope-To: linux-kernel@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=2f1S6gRWH7DPHgoPeU6kEsDfvjq6VTeSt0plIQ0isA4=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1789982665; v=1; x=1790587465; b=WHMTgbRvPSSXnOlneVAcev5VyOtGncaE0y3Jpse/ogTNR7KWreK5/5ybkWnl6Trv6v8EoRnN NKPfhVOT/BK3vrvilsbYl6fSjbqd4E+Z3BBQPcX5PvekNmQO6byuEByeva6zdZylPafhW45DTFU N9nBdyWHMhw8BBIBmq7T+keA= X-Envelope-To: linux-kernel@vger.kernel.org Received: by smtp.migadu.com with ESMTPS id fe7b1edeab76f221; Mon, 21 Sep 2026 09:24:24 +0000 X-Mizu-Trace-ID: fe7b1edeab76f221 X-Migadu-Flow: FLOW_OUT From: Ye Liu To: Josh Poimboeuf , Steven Rostedt Cc: Ye Liu , Michal Hocko , SJ Park , Lorenzo Stoakes , Oleg Nesterov , akpm@linux-foundation.org, peterz@infradead.org, paulmck@kernel.org, mingo@redhat.com, mic@digikod.net, tglx@kernel.org, david@kernel.org, linmiaohe@huawei.com, nao.horiguchi@gmail.com, rafael@kernel.org, gnoack3000@gmail.com, gourry@gourry.net, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, rcu@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-security-module@vger.kernel.org, rientjes@google.com, shakeel.butt@linux.dev, xu.xin16@zte.com.cn, chengming.zhou@linux.dev, will@kernel.org, boqun@kernel.org, frederic@kernel.org, neeraj.upadhyay@kernel.org, joelagnelf@nvidia.com, josh@joshtriplett.org, urezki@gmail.com, juri.lelli@redhat.com, vincent.guittot@linaro.org, tony.luck@intel.com, reinette.chatre@intel.com, x86@kernel.org, paul@paul-moore.com, jmorris@namei.org, serge@hallyn.com, pavel@kernel.org, lance.yang@linux.dev, mhiramat@kernel.org, pmladek@suse.com, longman@redhat.com, mathieu.desnoyers@efficios.com, jiangshanlai@gmail.com, qiang.zhang@linux.dev, dietmar.eggemann@arm.com, bsegall@google.com, mgorman@suse.de, vschneid@redhat.com, kprateek.nayak@amd.com, mark.rutland@arm.com, Dave.Martin@arm.com, james.morse@arm.com, babu.moger@amd.com Subject: [PATCH v4 12/15] unwind: convert process/thread iterator to for_each_process_thread_rculock Date: Mon, 21 Sep 2026 17:20:58 +0800 Message-Id: <20260921092101.89285-13-ye.liu@linux.dev> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260921092101.89285-1-ye.liu@linux.dev> References: <20260921092101.89285-1-ye.liu@linux.dev> 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: Ye Liu Replace guard(rcu)() combined with for_each_process_thread() loop in kernel/unwind/deferred.c with for_each_process_thread_rculock(), which scopes the RCU read lock to the loop body via scoped_guard(rcu). No functional change. Signed-off-by: Ye Liu Acked-by: Michal Hocko Reviewed-by: SJ Park Reviewed-by: Lorenzo Stoakes (ARM) Reviewed-by: Oleg Nesterov Acked-by: Steven Rostedt --- kernel/unwind/deferred.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/kernel/unwind/deferred.c b/kernel/unwind/deferred.c index 5bea47314254..ecfe1336095e 100644 --- a/kernel/unwind/deferred.c +++ b/kernel/unwind/deferred.c @@ -319,9 +319,8 @@ void unwind_deferred_cancel(struct unwind_work *work) =20 synchronize_srcu(&unwind_srcu); =20 - guard(rcu)(); /* Clear this bit from all threads */ - for_each_process_thread(g, t) { + for_each_process_thread_rculock(g, t) { atomic_long_andnot(BIT(bit), &t->unwind_info.unwind_mask); if (t->unwind_info.cache) --=20 2.25.1 From nobody Thu Sep 24 20:02:03 2026 Received: from mta1.migadu.com (out-233.mta1.migadu.com [95.215.58.233]) (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 60746469845 for ; Mon, 21 Sep 2026 09:24:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=95.215.58.233 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789982689; cv=none; b=o+P6ccvxDzVY8r+MCSEp64ImlN7u15XgsBOElfS10wP2P1X8NHc8OHd4OCtwXh/sVrKArOYzaAQVXts80HMTiH/r+7mrG2Ey9le5yTq6WLJHatssy6XKUVUCA+V0h2k2/9WdAeP1J3WP/SMH0UF33NqpqLK521JitmIsbnQci/Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789982689; c=relaxed/simple; bh=0W3ikDRTYv+yUei/a0Mgw/XZMKUGQdz8H5UTyurLOdI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Rq7BpSQPHYPFSBWiMfxhmc8lIaYi0B91PpHNNbbr+6Abra6uW11ihAFcRbPN7cOTpdxbR6K665sU/anbPZ/ZWXPNdjQBlDeArLy9MAGWe64H4ghnhZDyz9afqMM0nO1fewFuw4SbwTpwlWBcXKNmAnf/3ZwgYm/qmlV/7KhJhM4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=FwBQ5bUJ; arc=none smtp.client-ip=95.215.58.233 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="FwBQ5bUJ" X-Envelope-To: linux-kernel@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=0W3ikDRTYv+yUei/a0Mgw/XZMKUGQdz8H5UTyurLOdI=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1789982684; v=1; x=1790587484; b=FwBQ5bUJzvbXiqI9kD+wPhtVGOuCgPk1yXA85jK65Zfk/fS84cAx1DRDcN1z+BQfS6fqe8KG lw/9Re1fKjn+4IxvMEqA4ZemhWuaz+d8OSSmQAsLLhLR7o3XAfn8zNE2JCr3l5Y1yomBUVHs4wo N6g5GQ1OMsEaArKSb4YSh+Mc= X-Envelope-To: linux-kernel@vger.kernel.org Received: by smtp.migadu.com with ESMTPS id c113fa249d93a37b; Mon, 21 Sep 2026 09:24:43 +0000 X-Mizu-Trace-ID: c113fa249d93a37b X-Migadu-Flow: FLOW_OUT From: Ye Liu To: Tony Luck , Reinette Chatre , x86@kernel.org, Christian Brauner , Jann Horn , Jan Kara , Al Viro , Andrew Morton , Alexey Dobriyan , Ye Liu , "Mike Rapoport (Microsoft)" , Oleg Nesterov Cc: Michal Hocko , SJ Park , Gregory Price , Lorenzo Stoakes , peterz@infradead.org, paulmck@kernel.org, mingo@redhat.com, rostedt@goodmis.org, jpoimboe@kernel.org, mic@digikod.net, tglx@kernel.org, david@kernel.org, linmiaohe@huawei.com, nao.horiguchi@gmail.com, rafael@kernel.org, gnoack3000@gmail.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, rcu@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-security-module@vger.kernel.org, rientjes@google.com, shakeel.butt@linux.dev, xu.xin16@zte.com.cn, chengming.zhou@linux.dev, will@kernel.org, boqun@kernel.org, frederic@kernel.org, neeraj.upadhyay@kernel.org, joelagnelf@nvidia.com, josh@joshtriplett.org, urezki@gmail.com, juri.lelli@redhat.com, vincent.guittot@linaro.org, paul@paul-moore.com, jmorris@namei.org, serge@hallyn.com, pavel@kernel.org, lance.yang@linux.dev, mhiramat@kernel.org, pmladek@suse.com, longman@redhat.com, mathieu.desnoyers@efficios.com, jiangshanlai@gmail.com, qiang.zhang@linux.dev, dietmar.eggemann@arm.com, bsegall@google.com, mgorman@suse.de, vschneid@redhat.com, kprateek.nayak@amd.com, mark.rutland@arm.com, Dave.Martin@arm.com, james.morse@arm.com, babu.moger@amd.com Subject: [PATCH v4 13/15] fs: convert process/thread iterators to for_each_*_rculock Date: Mon, 21 Sep 2026 17:20:59 +0800 Message-Id: <20260921092101.89285-14-ye.liu@linux.dev> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260921092101.89285-1-ye.liu@linux.dev> References: <20260921092101.89285-1-ye.liu@linux.dev> 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: Ye Liu Replace the manual rcu_read_lock()/rcu_read_unlock() pairs combined with for_each_process() and for_each_process_thread() loops in fs/ with the for_each_*_rculock() macros, which scope the RCU read lock to the loop body via scoped_guard(rcu). No functional change. Signed-off-by: Ye Liu Acked-by: Michal Hocko Reviewed-by: SJ Park Reviewed-by: Gregory Price (Meta) Reviewed-by: Lorenzo Stoakes (ARM) --- fs/proc/base.c | 4 +--- fs/resctrl/rdtgroup.c | 8 ++------ 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/fs/proc/base.c b/fs/proc/base.c index 6a39de424f62..3de4f4557e4c 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c @@ -1160,8 +1160,7 @@ static int __set_oom_adj(struct file *file, int oom_a= dj, bool legacy) if (mm) { struct task_struct *p; =20 - rcu_read_lock(); - for_each_process(p) { + for_each_process_rculock(p) { if (same_thread_group(task, p)) continue; =20 @@ -1177,7 +1176,6 @@ static int __set_oom_adj(struct file *file, int oom_a= dj, bool legacy) } task_unlock(p); } - rcu_read_unlock(); mmdrop(mm); } err_unlock: diff --git a/fs/resctrl/rdtgroup.c b/fs/resctrl/rdtgroup.c index 5dcbb0a964e8..b14df8b23f1a 100644 --- a/fs/resctrl/rdtgroup.c +++ b/fs/resctrl/rdtgroup.c @@ -709,14 +709,12 @@ int rdtgroup_tasks_assigned(struct rdtgroup *r) =20 lockdep_assert_held(&rdtgroup_mutex); =20 - rcu_read_lock(); - for_each_process_thread(p, t) { + for_each_process_thread_rculock(p, t) { if (is_closid_match(t, r) || is_rmid_match(t, r)) { ret =3D 1; break; } } - rcu_read_unlock(); =20 return ret; } @@ -826,15 +824,13 @@ static void show_rdt_tasks(struct rdtgroup *r, struct= seq_file *s) struct task_struct *p, *t; pid_t pid; =20 - rcu_read_lock(); - for_each_process_thread(p, t) { + for_each_process_thread_rculock(p, t) { if (is_closid_match(t, r) || is_rmid_match(t, r)) { pid =3D task_pid_vnr(t); if (pid) seq_printf(s, "%d\n", pid); } } - rcu_read_unlock(); } =20 static int rdtgroup_tasks_show(struct kernfs_open_file *of, --=20 2.25.1 From nobody Thu Sep 24 20:02:03 2026 Received: from mta0.migadu.com (out-229.mta0.migadu.com [91.218.175.229]) (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 A832448F008 for ; Mon, 21 Sep 2026 09:33:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.229 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789983207; cv=none; b=UM7Ce7K/QJ+WIl1YoKeUosug38BN9b+pIVW1opOiBtGx/BWdV6eVF4IaUKqo+QzUsLQrRONPBpWGLPP79xBfejvQ/dsmj6p+bbGvDRjuBunmBXG5J1wMcdfopym+A4G8Rqz62QLi/b67pzshrgaBvjSOj855q9Me4xL6vcexLRI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789983207; c=relaxed/simple; bh=ngtWac8X3lY5A5SaQnbYXeWkN/JG2JLNpAbPKFOiOjM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=MaGYx0wYqnIT93+69inERDpBnL09PKpe4afu2rqDRnf51EmqCZQIDDiOK/kOYjVuY190KlbXQO3PNdktf577v5nHqFoEzHgVrVTtQRrck886t1RrgOeEsFBRHriQ1dmZ+pUe4qNMSCF67WK7Jdhdue1jltu5zG2TAw/eEfN+Dlk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=f9zsQ83j; arc=none smtp.client-ip=91.218.175.229 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="f9zsQ83j" X-Envelope-To: linux-kernel@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=ngtWac8X3lY5A5SaQnbYXeWkN/JG2JLNpAbPKFOiOjM=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1789983203; v=1; x=1790588003; b=f9zsQ83jctwgcHU/RmDsAzFpBmzcyeP8XJuu2OwoLEJIDVTZwJcC39vehYpLwR6qsxzsPI9Y 1+31/aiNiv1DKkowHmxvokW9QTtZDPyV4BGyLdG4qzQ6MDM57NXkFeWBffJ0r7oaY0jB/d2Xufl QY//agRj3sw71upZe3+FidVc= X-Envelope-To: linux-kernel@vger.kernel.org Received: by smtp.migadu.com with ESMTPS id 0b8bc6083ed009dd; Mon, 21 Sep 2026 09:33:23 +0000 X-Mizu-Trace-ID: 0b8bc6083ed009dd X-Migadu-Flow: FLOW_OUT From: Ye Liu To: Andrew Morton Cc: Ye Liu , Michal Hocko , Lorenzo Stoakes , Gregory Price , SJ Park , peterz@infradead.org, paulmck@kernel.org, mingo@redhat.com, rostedt@goodmis.org, jpoimboe@kernel.org, mic@digikod.net, oleg@redhat.com, tglx@kernel.org, david@kernel.org, linmiaohe@huawei.com, nao.horiguchi@gmail.com, rafael@kernel.org, gnoack3000@gmail.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, rcu@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-security-module@vger.kernel.org, rientjes@google.com, shakeel.butt@linux.dev, xu.xin16@zte.com.cn, chengming.zhou@linux.dev, will@kernel.org, boqun@kernel.org, frederic@kernel.org, neeraj.upadhyay@kernel.org, joelagnelf@nvidia.com, josh@joshtriplett.org, urezki@gmail.com, juri.lelli@redhat.com, vincent.guittot@linaro.org, tony.luck@intel.com, reinette.chatre@intel.com, x86@kernel.org, paul@paul-moore.com, jmorris@namei.org, serge@hallyn.com, pavel@kernel.org, lance.yang@linux.dev, mhiramat@kernel.org, pmladek@suse.com, longman@redhat.com, mathieu.desnoyers@efficios.com, jiangshanlai@gmail.com, qiang.zhang@linux.dev, dietmar.eggemann@arm.com, bsegall@google.com, mgorman@suse.de, vschneid@redhat.com, kprateek.nayak@amd.com, mark.rutland@arm.com, Dave.Martin@arm.com, james.morse@arm.com, babu.moger@amd.com Subject: [PATCH v4 14/15] lib: convert process iterator to for_each_process_rculock Date: Mon, 21 Sep 2026 17:33:10 +0800 Message-Id: <20260921093311.104814-1-ye.liu@linux.dev> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260921092101.89285-1-ye.liu@linux.dev> References: <20260921092101.89285-1-ye.liu@linux.dev> 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: Ye Liu Replace the manual rcu_read_lock()/rcu_read_unlock() pair combined with for_each_process() loop in lib/ with for_each_process_rculock(), which scopes the RCU read lock to the loop body via scoped_guard(rcu). No functional change. Signed-off-by: Ye Liu Acked-by: Michal Hocko Reviewed-by: Lorenzo Stoakes (ARM) Reviewed-by: Gregory Price (Meta) Reviewed-by: SJ Park Reviewed-by: Oleg Nesterov --- lib/is_single_threaded.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/lib/is_single_threaded.c b/lib/is_single_threaded.c index 8c98b20bfc41..4e7fe85454ab 100644 --- a/lib/is_single_threaded.c +++ b/lib/is_single_threaded.c @@ -26,8 +26,7 @@ bool current_is_single_threaded(void) return true; =20 ret =3D false; - rcu_read_lock(); - for_each_process(p) { + for_each_process_rculock(p) { if (unlikely(p->flags & PF_KTHREAD)) continue; if (unlikely(p =3D=3D task->group_leader)) @@ -48,7 +47,5 @@ bool current_is_single_threaded(void) } ret =3D true; found: - rcu_read_unlock(); - return ret; } --=20 2.25.1 From nobody Thu Sep 24 20:02:03 2026 Received: from mta0.migadu.com (out-251.mta0.migadu.com [91.218.175.251]) (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 95ACB4921BC for ; Mon, 21 Sep 2026 09:33:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.251 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789983234; cv=none; b=u2vslfq1tr4604Q12ItR70B30I6Yzxpaswm57otCnzVMkNlggyA28DJk0vV1OWLuj9TVPrzIEIfqxgOiuRFwE7d6VICgd8g2MGF7xNkhU9O5/KmvOgQyNeb9ySMR5SQcimwIvEm741ngLeGGvMsVrInsdVvZDclFx02tCT04VPI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789983234; c=relaxed/simple; bh=EYCPbF4GXVvVmlhwTlUPGyo1CDrWSEx3JYzEGtOW8IA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=ZYqrYQtA3Iz1GEOpBfzOVF/x0ifrMHK2hXEWJwaTeDmT8pQ4XyGg5xKc3LXlMQ6JiRw0PQ1v+ft6qgAWi7bJnX9v8U89cRU6FMaq8nxulNNG1uD6/3c8SdkGkLoGXt+vSlvQbqoTsCAbfkZWTXxEOIHS+uZ0+oYS4BSCx7mmwZo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=FEhrKxGt; arc=none smtp.client-ip=91.218.175.251 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="FEhrKxGt" X-Envelope-To: linux-kernel@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=EYCPbF4GXVvVmlhwTlUPGyo1CDrWSEx3JYzEGtOW8IA=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1789983230; v=1; x=1790588030; b=FEhrKxGt9s7lgZ8WqPH7VDOpF9udhJxQW05bDn7s2BKy9QTjk71eT9cayi63uddxNYwj6pZi 5K7kE42mv1lqv4JNC/vhgbvMckfm+eqadNwsvuctYY/1cp0g3ALobxhSCCSOuCV6dsZP5DUu63i 1S/f/93BjKz+hEZFsUypIk+I= X-Envelope-To: linux-kernel@vger.kernel.org Received: by smtp.migadu.com with ESMTPS id 5246bf0a6504571f; Mon, 21 Sep 2026 09:33:50 +0000 X-Mizu-Trace-ID: 5246bf0a6504571f X-Migadu-Flow: FLOW_OUT From: Ye Liu To: =?UTF-8?q?Micka=C3=ABl=20Sala=C3=BCn?= , Paul Moore , James Morris , "Serge E. Hallyn" Cc: Ye Liu , Justin Suess , =?UTF-8?q?G=C3=BCnther=20Noack?= , Gregory Price , SJ Park , Lorenzo Stoakes , akpm@linux-foundation.org, mhocko@suse.com, peterz@infradead.org, paulmck@kernel.org, mingo@redhat.com, rostedt@goodmis.org, jpoimboe@kernel.org, oleg@redhat.com, tglx@kernel.org, david@kernel.org, linmiaohe@huawei.com, nao.horiguchi@gmail.com, rafael@kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, rcu@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-security-module@vger.kernel.org, rientjes@google.com, shakeel.butt@linux.dev, xu.xin16@zte.com.cn, chengming.zhou@linux.dev, will@kernel.org, boqun@kernel.org, frederic@kernel.org, neeraj.upadhyay@kernel.org, joelagnelf@nvidia.com, josh@joshtriplett.org, urezki@gmail.com, juri.lelli@redhat.com, vincent.guittot@linaro.org, tony.luck@intel.com, reinette.chatre@intel.com, x86@kernel.org, pavel@kernel.org, lance.yang@linux.dev, mhiramat@kernel.org, pmladek@suse.com, longman@redhat.com, mathieu.desnoyers@efficios.com, jiangshanlai@gmail.com, qiang.zhang@linux.dev, dietmar.eggemann@arm.com, bsegall@google.com, mgorman@suse.de, vschneid@redhat.com, kprateek.nayak@amd.com, mark.rutland@arm.com, Dave.Martin@arm.com, james.morse@arm.com, babu.moger@amd.com Subject: [PATCH v4 15/15] security/landlock: convert thread iterator to for_each_thread_rculock Date: Mon, 21 Sep 2026 17:33:33 +0800 Message-Id: <20260921093334.105291-1-ye.liu@linux.dev> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260921092101.89285-1-ye.liu@linux.dev> References: <20260921092101.89285-1-ye.liu@linux.dev> 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" Content-Transfer-Encoding: quoted-printable From: Ye Liu Replace guard(rcu)() + for_each_thread() with for_each_thread_rculock(), which scopes the RCU read lock to the loop body via scoped_guard(rcu). No functional change. Signed-off-by: Ye Liu Reviewed-by: Justin Suess Reviewed-by: G=C3=BCnther Noack Reviewed-by: Gregory Price (Meta) Reviewed-by: SJ Park Reviewed-by: Lorenzo Stoakes (ARM) --- security/landlock/tsync.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/security/landlock/tsync.c b/security/landlock/tsync.c index 0b71e158c3f5..a578af640aad 100644 --- a/security/landlock/tsync.c +++ b/security/landlock/tsync.c @@ -335,9 +335,7 @@ static size_t count_additional_threads(const struct tsy= nc_works *works) =20 caller =3D current; =20 - guard(rcu)(); - - for_each_thread(caller, thread) { + for_each_thread_rculock(caller, thread) { /* Skip current, since it is initiating the sync. */ if (thread =3D=3D caller) continue; @@ -376,9 +374,7 @@ static bool schedule_task_work(struct tsync_works *work= s, =20 caller =3D current; =20 - guard(rcu)(); - - for_each_thread(caller, thread) { + for_each_thread_rculock(caller, thread) { /* Skip current, since it is initiating the sync. */ if (thread =3D=3D caller) continue; --=20 2.25.1