From nobody Fri Sep 25 14:30:57 2026 Received: from mta0.migadu.com (out-243.mta0.migadu.com [91.218.175.243]) (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 10E7644F546 for ; Fri, 11 Sep 2026 07:58:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.243 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789113520; cv=none; b=b0+gRzyphIPLX2bX3i7r0/NT/FOUxe5Q9HNIsg2M0DWNQNSU0YZC6kUlx1a2sjZI45HeOUFD1/nsKfMRtDHugU+lkV3vb+n0rhvxxZvmh5wRLrByKs5bFfwabLdJChuh8cb7JGhIgalHeJK6H+wJHeSan4X9E3YodKWguxWm18c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789113520; c=relaxed/simple; bh=Go12g+R4uFq+BJOyGZXb1onOnQjq2C3kX1LePEwX1Iw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ZP82Pga/VZUi+qWdIoFVPissfJMa2TIxPwWVGQWLELcFbhZ0GBoyfpN9CSaqr92Z5hbe42s27MbCZfCGKnXAXcJa+3AtOf3zdIbsc5ntKnxKrQULEOBLUhhC+Fi8AeMVXAgWhphd382e1qqNqHaXYhKxfEMLyvk6fK942bYBlcc= 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=YDo04jKQ; arc=none smtp.client-ip=91.218.175.243 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="YDo04jKQ" X-Envelope-To: linux-kernel@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=Go12g+R4uFq+BJOyGZXb1onOnQjq2C3kX1LePEwX1Iw=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1789113515; v=1; x=1789718315; b=YDo04jKQh3Y3S/7i66rcYtGSc3d7mvbF64LTRqP+Bg0FwPAfDTuo6bmkKDAwMAxUsAZx7or2 zMu+dH4a9q3u1OXnj6JEFkEU58VsCzOFCH1suvqM1aJ/NisObpY0vo7gaGIpYNr5XcjgYdsh60x t3glJoKXrukMfMOVzZIr/wDI= X-Envelope-To: linux-kernel@vger.kernel.org Received: by smtp.migadu.com with ESMTPS id 7120d82fe4ac0fd4; Fri, 11 Sep 2026 07:58:35 +0000 X-Mizu-Trace-ID: 7120d82fe4ac0fd4 X-Migadu-Flow: FLOW_OUT From: Ye Liu To: "Peter Zijlstra (Intel)" , Marco Elver , Oleg Nesterov , Ye Liu , Michal Hocko , Bart Van Assche , Christian Brauner Cc: SJ Park , Gregory Price , Lorenzo Stoakes , paulmck@kernel.org, mingo@redhat.com, rostedt@goodmis.org, jpoimboe@kernel.org, mic@digikod.net, tglx@kernel.org, akpm@linux-foundation.org, david@kernel.org, linmiaohe@huawei.com, nao.horiguchi@gmail.com, rafael@kernel.org, gnoack3000@gmail.com, 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, 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 Subject: [PATCH v3 01/15] sched: introduce for_each_process_rculock and for_each_thread_rculock Date: Fri, 11 Sep 2026 15:57:46 +0800 Message-Id: <20260911075800.491472-2-ye.liu@linux.dev> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260911075800.491472-1-ye.liu@linux.dev> References: <20260911075800.491472-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) --- Changes in v3: - Indent loop body to show scoped_guard scope (Lorenzo Stoakes) Changes in v2: - Rename macros from *_rcu to *_rculock (Steven Rostedt, Thomas Gleixner) - Improve comment on for_each_process_thread_rculock() double loop - Change prefix from mm: to sched: (Michal Hocko) 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 Fri Sep 25 14:30:57 2026 Received: from mta0.migadu.com (out-37.mta0.migadu.com [91.218.175.37]) (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 A3C864570F8 for ; Fri, 11 Sep 2026 07:58:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.37 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789113534; cv=none; b=JTFtn2y/CJlCEIwX+1gJ51woftOJKgliOWzaKLxM6jktXtZGYjeMzcy2AoRu/WeyQqdsZQ6E+5aX1en1BlbubRYsbvtp6LC1vNOI5EIh46QYGJfCtfkdMb528JgdF1wFyhA6+G+XNU4JBQY6H3jQxLCzXa1Wg6XR37A2ho8P/rU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789113534; c=relaxed/simple; bh=ZzvApGiwGsUs4MczJymZslP+9Pni4p9V/rT4UlhT+jA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=bWvtEJblX4uzktRoRrNbxAzs+1HtMbayYm42GjQ48GRjRQGd+lh3R5tA3wR6ucMvVBZc0LM6yI6g4MuPNjyXlQUEK+gLZZtubEkiCOHqQSjV5Uvoi8vzv2eNiLgKRwuXNjvKXLYeXzo8yjAK+zI0QrD3ztIBZXbioLyX5fV6ojY= 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=g/N/a6wE; arc=none smtp.client-ip=91.218.175.37 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="g/N/a6wE" X-Envelope-To: linux-kernel@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=ZzvApGiwGsUs4MczJymZslP+9Pni4p9V/rT4UlhT+jA=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1789113530; v=1; x=1789718330; b=g/N/a6wEWW1JgQaQextQ6/VTXs8j7sxSClSluCc0Z8w9fyHpPjuwVISX4Jzbq1YHxOTjn2mB keyopv/53ltGIoG1L0JfzLAStmQABybqjvFWHQhfPVnKvHWSuuJy1gfwWaOgAx2nTiy1xzxd8Zl lFp8mAFppfFXLA5wkO1Pd9dk= X-Envelope-To: linux-kernel@vger.kernel.org Received: by smtp.migadu.com with ESMTPS id 6843b9e642dbf692; Fri, 11 Sep 2026 07:58:50 +0000 X-Mizu-Trace-ID: 6843b9e642dbf692 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, 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, 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 Subject: [PATCH v3 02/15] mm/oom_kill: convert process/thread iterators to for_each_*_rculock Date: Fri, 11 Sep 2026 15:57:47 +0800 Message-Id: <20260911075800.491472-3-ye.liu@linux.dev> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260911075800.491472-1-ye.liu@linux.dev> References: <20260911075800.491472-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) --- Changes in v2: - Rename *_rcu to *_rculock 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 Fri Sep 25 14:30:57 2026 Received: from mta0.migadu.com (out-90.mta0.migadu.com [91.218.175.90]) (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 2BE5F45C717 for ; Fri, 11 Sep 2026 07:59:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.90 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789113551; cv=none; b=oxOHbfJq+b88Fs/k8m2LhD08P97MgCKvW4O9NTovPMJ/uPGfj0W5aa4z84K6XPzHRUn6eXrWiP2zuGZR9XfiMpymF3moHhulriXPVz+9X82Dz68WjZxC2hNpqeaE55bDLmpSTgGhauUqtMm5ek8FCMcIwwhK7lwaBdaR75yY6QA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789113551; c=relaxed/simple; bh=QXWV2YjR1N2qilXRn4ZL7vqePEkKN4kK8nW2DqNMaW0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ZukPqpQgoanWqwcFalkK9wm71zW2NTzTxDvqqkI5ceQzi/0xMYQJLiWXbIJeo+pOacCOSP6TLJ09bKc8RHIqaIpChAKXkZ3R0DsCjsTqjDAB7DrLMu9Rf4SBSCF+yV3LoPIH7M3QjQtegdrXVY2DvCmpc9mhm5FJpXL8GPxbMos= 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=VMFbb681; arc=none smtp.client-ip=91.218.175.90 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="VMFbb681" X-Envelope-To: linux-kernel@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=QXWV2YjR1N2qilXRn4ZL7vqePEkKN4kK8nW2DqNMaW0=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1789113545; v=1; x=1789718345; b=VMFbb681nsr3Q2UeYWmN12jBTTR+wN3QxH7ZniVkfk9Pxn4IGGhxdxSxhdNej97M2YWbwsHS Atr1+MiFXn8CdACLwAr3gmcBMDF9nck0ER4klm1CoC7Hef3votFxB7a7njSLRrATAh6LWW6JVg2 UR8kA0nzR/cspdFLDgo8PXjc= X-Envelope-To: linux-kernel@vger.kernel.org Received: by smtp.migadu.com with ESMTPS id 70c9cc29d1278767; Fri, 11 Sep 2026 07:59:05 +0000 X-Mizu-Trace-ID: 70c9cc29d1278767 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, 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, 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 Subject: [PATCH v3 03/15] mm/ksm: convert process iterator to for_each_process_rculock Date: Fri, 11 Sep 2026 15:57:48 +0800 Message-Id: <20260911075800.491472-4-ye.liu@linux.dev> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260911075800.491472-1-ye.liu@linux.dev> References: <20260911075800.491472-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) --- Changes in v2: - Rename *_rcu to *_rculock 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 Fri Sep 25 14:30:57 2026 Received: from mta0.migadu.com (out-121.mta0.migadu.com [91.218.175.121]) (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 EC97F45C6E8 for ; Fri, 11 Sep 2026 07:59:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.121 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789113564; cv=none; b=E+zXZrvg9KUpzOXpKGku4rVTffLUcGoBef6uMHyqkVkAF4coKRflIK3cJ0mOx1K2ZIwv5CKJ3yXNITRdS8Kq5x1GC/GEzSH1DT6D3cMR/ZTY8Z0C6jntGs5yz8RqecAs7Lq87FVK9Q4xoKSaor3ea5D8xebKi4Oi0SANUdM2zSM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789113564; c=relaxed/simple; bh=0l6apGFhEMmIZSU/2v9JnhqbwzgAnZO6eQl/TQrNqjs=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=QCX99aSClRkT5DWxuPKGxWDVkiUp1/aejU27zI8KCoSOmSQsbeptUpdAs9Ythck/jAOf08YU+ifpYmUEjgG/PB22r9jc0ZypJNv3AK6imCCjmFAC006HB1rhcGzaZ3aDiiO1DfujPr3Zk+vS5lXGwwbhd7Uk+RryDjbcJNkKAnM= 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=KnEcOPqB; arc=none smtp.client-ip=91.218.175.121 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="KnEcOPqB" X-Envelope-To: linux-kernel@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=0l6apGFhEMmIZSU/2v9JnhqbwzgAnZO6eQl/TQrNqjs=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1789113560; v=1; x=1789718360; b=KnEcOPqB29IjWgp5jthU8JbZQa2v3D0SIW/x4p91ktzgWaHzFTJXCLupscoIm3krB/uo/qf4 CveAx/UMZEtGXjGCoz4L5CzclBGBbpVM2DWgluhxFSSKospT58neG0dvynVp+8ueLx2smALKNmk GCEaHPmLpyqorFWiG7XG9oog= X-Envelope-To: linux-kernel@vger.kernel.org Received: by smtp.migadu.com with ESMTPS id 45b1a7c312529d85; Fri, 11 Sep 2026 07:59:19 +0000 X-Mizu-Trace-ID: 45b1a7c312529d85 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, 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, 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 Subject: [PATCH v3 04/15] mm/memory-failure: convert process iterator to for_each_process_rculock Date: Fri, 11 Sep 2026 15:57:49 +0800 Message-Id: <20260911075800.491472-5-ye.liu@linux.dev> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260911075800.491472-1-ye.liu@linux.dev> References: <20260911075800.491472-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) --- Changes in v2: - Rename *_rcu to *_rculock - Clarify page_pgoff() safety outside RCU lock (SJ Park) 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 Fri Sep 25 14:30:57 2026 Received: from mta0.migadu.com (out-166.mta0.migadu.com [91.218.175.166]) (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 86B2145DF49 for ; Fri, 11 Sep 2026 07:59:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.166 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789113575; cv=none; b=RJXQ9MX7+ApjATVcvjAcMd+VdtsHMNtkSTlyPTwJSpURW1fezhZBxS/0KYgXuGHFr7V01KP0fsTGO9md3i8FXxZqpvHOtDeGQc4pspfHefD8kymqqj7gSSG3iFWiifgr7HHN5a6iSuFVvg5xKKQMnRkv6uomKL+fwv980LJwWQ8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789113575; c=relaxed/simple; bh=hw2TjBAqEOVWc+zu96DY/c0ZeYo5WpD38F+07ZSfH/w=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=C0rgS/L+7SqoSaMiNyOKap5KcNiBoyt3qVUqWut2qFJxK7Ag8zfl+uYfbrZw2B3WtYpPDcdG4nIxyRlkwLhZUFAYFntb12fjSvTTCujxsGrIrmnulTxwCe7C/nlgOmJOMy4i++/wiNVObzeQ6iCNbweYcmXqfho5bfHCPD08/DU= 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=D65qpbOS; arc=none smtp.client-ip=91.218.175.166 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="D65qpbOS" X-Envelope-To: linux-kernel@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=hw2TjBAqEOVWc+zu96DY/c0ZeYo5WpD38F+07ZSfH/w=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1789113571; v=1; x=1789718371; b=D65qpbOSyBxEKN3XOVZrQzcIrNiHdrCIiKIFKQ5w9q6yoj6XymHoRvuxPsguJWTKmV1OwcYo 3eIfb9i8n2UKi1KwJ/Cd7hNNEHwD83Rzm37VXBKrskmn8DtRRwcfwHYJ0bu+tou4jg4sTTOX4f5 8yEp4uVIzM4G8Fo7s/ZTfots= X-Envelope-To: linux-kernel@vger.kernel.org Received: by smtp.migadu.com with ESMTPS id 31e1e1833329852b; Fri, 11 Sep 2026 07:59:30 +0000 X-Mizu-Trace-ID: 31e1e1833329852b X-Migadu-Flow: FLOW_OUT From: Ye Liu To: Thomas Gleixner , Peter Zijlstra Cc: Ye Liu , Michal Hocko , SJ Park , Lorenzo Stoakes , Oleg Nesterov , paulmck@kernel.org, mingo@redhat.com, rostedt@goodmis.org, jpoimboe@kernel.org, mic@digikod.net, akpm@linux-foundation.org, david@kernel.org, linmiaohe@huawei.com, nao.horiguchi@gmail.com, rafael@kernel.org, gnoack3000@gmail.com, gourry@gourry.net, 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, 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 Subject: [PATCH v3 05/15] cpu/hotplug: convert thread iterator to for_each_thread_rculock Date: Fri, 11 Sep 2026 15:57:50 +0800 Message-Id: <20260911075800.491472-6-ye.liu@linux.dev> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260911075800.491472-1-ye.liu@linux.dev> References: <20260911075800.491472-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/cpu.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 --- Changes in v3: - Split from kernel/ patch in v2 (Peter Zijlstra, Steven Rostedt) Changes in v2: - Rename *_rcu to *_rculock 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 Fri Sep 25 14:30:57 2026 Received: from mta0.migadu.com (out-202.mta0.migadu.com [91.218.175.202]) (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 AE8D4459AD3 for ; Fri, 11 Sep 2026 07:59:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789113590; cv=none; b=mMDiaiHOv95O4X97kbU+A79PZaQPYe3sq8tKCZOc2hoOQh8D5DTZ4CPmKRT1EUBWPQXaNBqYlKRN2S/S+7Ih42+dJvUpn28ls7Q/rc3s6IRM4VGatXZTLp/lXtPbJvrBBLt3GE5sOWLRSvywK7HGyO7OP2VORtV+VeRW+M6vrQI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789113590; c=relaxed/simple; bh=TDuvYwzdbuaBULIJ2jxj18W/NBHRAQZRTlKBQBMgQMs=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=PFnYiHz0UAAFB+6O/KNPu0MmVGGpkCUCOaKooPc8WQB8lFlzkyBUyWTcyAhCdWFlAjx4RGcB2v5FZTyss6xojlgmjxnvzl/D2fnj1RtneurvxxesHMhxp4QvMM82qef7xwqrL9Z6q37axIV5n5j7FDl80NCXJvV/z6tL9be51fs= 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=g8UHpIuH; arc=none smtp.client-ip=91.218.175.202 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="g8UHpIuH" X-Envelope-To: linux-kernel@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=TDuvYwzdbuaBULIJ2jxj18W/NBHRAQZRTlKBQBMgQMs=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1789113586; v=1; x=1789718386; b=g8UHpIuH1iiMFg9exMCp0oGDRdZkKwS0rKp01RPJ2FqZf1pbHq60jt/hle7Q83ez+zGV5PPW VXcKnnCODgMP8LJqBecns78Yasza6y60EBziaaCU7K6zZPjiRXJAcnEHFjc5oEhBw2Jmx/Av+F5 IZidRLrA5pukiKpMJDN8STQ4= X-Envelope-To: linux-kernel@vger.kernel.org Received: by smtp.migadu.com with ESMTPS id f84c3708b464234d; Fri, 11 Sep 2026 07:59:46 +0000 X-Mizu-Trace-ID: f84c3708b464234d X-Migadu-Flow: FLOW_OUT From: Ye Liu To: "Rafael J. Wysocki" 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, akpm@linux-foundation.org, david@kernel.org, linmiaohe@huawei.com, nao.horiguchi@gmail.com, gnoack3000@gmail.com, gourry@gourry.net, 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, 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 Subject: [PATCH v3 06/15] freezer: convert thread iterator to for_each_thread_rculock Date: Fri, 11 Sep 2026 15:57:51 +0800 Message-Id: <20260911075800.491472-7-ye.liu@linux.dev> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260911075800.491472-1-ye.liu@linux.dev> References: <20260911075800.491472-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 --- Changes in v3: - Split from kernel/ patch in v2 (Peter Zijlstra, Steven Rostedt) Changes in v2: - Rename *_rcu to *_rculock 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 Fri Sep 25 14:30:57 2026 Received: from mta0.migadu.com (out-14.mta0.migadu.com [91.218.175.14]) (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 2495437F312 for ; Fri, 11 Sep 2026 08:00:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.14 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789113630; cv=none; b=s8hJjMR4q4dxVdfTxThrjstGwYyzVKrs9Gu4fNX4d3BHkOhNSNAOBVPKTUynyT6frfqQx2SttEJSUdLFlj3erUjHCIvS4OJ1sdhVs6DG5WYbZHNxnS0cwxNDeiqCQULOu7qiHOx/Z4cItwPnukFVZZRXjlBB2WMwVw7OgTrZa0k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789113630; c=relaxed/simple; bh=3Bhv7ooPs5BmI+z9HsPTzdGyyICD44dDZ6H03uBSzOI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=F2Vez09lWaA/jvFTvpZAiP5FziTe8/XgkIDFDP3/yzkHK0wDMwYM4LTOoFmqV9o8CSu0qJmOFZk3ItqAuFfZCADGAKOKxD6/lph3UjjDl6WmrSG29eO9vH9XMhDceWd536rKzTYBw414qGCn3gHSAZ5IjddWVKzrJmO6SaXVUfo= 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=RDyI7eaN; arc=none smtp.client-ip=91.218.175.14 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="RDyI7eaN" X-Envelope-To: linux-kernel@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=3Bhv7ooPs5BmI+z9HsPTzdGyyICD44dDZ6H03uBSzOI=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1789113626; v=1; x=1789718426; b=RDyI7eaNTOGIMLMjkQCsB+pcnkWFA0PC+iMZyZsJDfn8aJjINLZtSpdjtpnSHdwb7IjsX5Se HI1beyyiFz2Q2oWYQhoihIiG5242gvgaOT2TzQlWl1fkN8xDQ/pbX48g03SzUyYNAfODC4YTUNy GdtNK5kUXCWjqFOtxYL3sVcw= X-Envelope-To: linux-kernel@vger.kernel.org Received: by smtp.migadu.com with ESMTPS id 430f4ef2b443db4c; Fri, 11 Sep 2026 08:00:00 +0000 X-Mizu-Trace-ID: 430f4ef2b443db4c 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, 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, 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 Subject: [PATCH v3 07/15] hung_task: convert process/thread iterators to for_each_*_rculock Date: Fri, 11 Sep 2026 15:57:52 +0800 Message-Id: <20260911075800.491472-8-ye.liu@linux.dev> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260911075800.491472-1-ye.liu@linux.dev> References: <20260911075800.491472-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 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 --- Changes in v3: - Split from kernel/ patch in v2 (Peter Zijlstra, Steven Rostedt) Changes in v2: - Rename *_rcu to *_rculock - Rename stale 'unlock:' label to 'out:' in hung_task.c (G=C3=BCnther Noa= ck) 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 Fri Sep 25 14:30:57 2026 Received: from mta0.migadu.com (out-64.mta0.migadu.com [91.218.175.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 0188545D906 for ; Fri, 11 Sep 2026 08:00:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789113645; cv=none; b=aAWHQt8PU0upgWn1g+s37uODZkZ/DAekpW1szkT5t1BC0UQW+xF5fxWJH+IFCkBZP0tqbdwCg1Cj84L9Nbx/3qE7rnaRY7e2nIxM4wj39ChOAqbaG7yLzvEspU1P6wmnC1E/u2+zKbnVXdPGnoF1fO2orOhYTx61Sm57wl48g0o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789113645; c=relaxed/simple; bh=MtMBUy3cqPkSQ7l9jm2rwShEJTacHCBGS65FBTs1ICA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=YYgXQOq53S8qFtgH2HwxG+3EOIHv3Ix5C0x9OC9z/ejUolJyRDerc4OlC65cg/rE3NnKlLSSwWcseikfVRE5/6QodNk9ib5JPWC5SrNgzWVlOmQCLzv/cJ8MfO0Z8kSrWJxAPj+0k5+3z6mtLfCLO+Rcr4je55I73jJQ+csPn98= 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=h+UYEGLu; arc=none smtp.client-ip=91.218.175.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="h+UYEGLu" X-Envelope-To: linux-kernel@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=MtMBUy3cqPkSQ7l9jm2rwShEJTacHCBGS65FBTs1ICA=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1789113640; v=1; x=1789718440; b=h+UYEGLu+JS6dSQAwygoKqN/w8blqIv7PNIoSYGhCFG+DyDpdRJmlZ6n/Pn6/3piqWH0gLJO tch7S15FW7DY/CF1ayzqIWxfIRwjpg6QP6XW5ce00zQBsg3PqGXqGUTIr+3NXK/kd0Lz7lxX5N9 l5EUO+smI4QrwoNDexUqD9h4= X-Envelope-To: linux-kernel@vger.kernel.org Received: by smtp.migadu.com with ESMTPS id 8a1a8142b4b29e09; Fri, 11 Sep 2026 08:00:40 +0000 X-Mizu-Trace-ID: 8a1a8142b4b29e09 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 , paulmck@kernel.org, rostedt@goodmis.org, jpoimboe@kernel.org, mic@digikod.net, tglx@kernel.org, akpm@linux-foundation.org, david@kernel.org, linmiaohe@huawei.com, nao.horiguchi@gmail.com, rafael@kernel.org, gnoack3000@gmail.com, gourry@gourry.net, 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, 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 Subject: [PATCH v3 08/15] locking/lockdep: convert process/thread iterators to for_each_*_rculock Date: Fri, 11 Sep 2026 15:57:53 +0800 Message-Id: <20260911075800.491472-9-ye.liu@linux.dev> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260911075800.491472-1-ye.liu@linux.dev> References: <20260911075800.491472-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 --- Changes in v3: - Split from kernel/ patch in v2 (Peter Zijlstra, Steven Rostedt) Changes in v2: - Rename *_rcu to *_rculock 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 Fri Sep 25 14:30:57 2026 Received: from mta0.migadu.com (out-120.mta0.migadu.com [91.218.175.120]) (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 BF4A3391836 for ; Fri, 11 Sep 2026 08:01:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.120 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789113663; cv=none; b=CHgoxb7eyKdIlsEq8wmVxhR4WDjTPPhdB/ZY2lY9QnR0IyOUpzZ+cEekckOr8JIYPwEPYl5ed++9GrfKd5zgIrUn6Eij1lxm6qpY1oKNZFeYaKej5NODA72F+ibmE3MQT7BQkxK54QtLB/xfgxpLr8PDexHRXVVuE7gqLkF+d5w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789113663; c=relaxed/simple; bh=vF8dJvwfO0k4j+Rhq4+Quj7N58x+aoewGF5Ku9uTa1M=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=dfrYa5UFUTZGOzUcL19X+c/9LTt3n1NSpWbfWRhkJ8tkTkc1Pa58DB4f3vNU3Z5xjZA+M7YaCtnJ8nNto8wNEJmDVl3zLmGBb+64Ml2T/Ge3tdGfqngZy8Soumqstgl6RN9EhDHSMaivnmZW75pDETHCzG5lwhrjLByaehkRvA0= 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=MfiO3KUv; arc=none smtp.client-ip=91.218.175.120 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="MfiO3KUv" X-Envelope-To: linux-kernel@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=vF8dJvwfO0k4j+Rhq4+Quj7N58x+aoewGF5Ku9uTa1M=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1789113659; v=1; x=1789718459; b=MfiO3KUvs2ayehQUR1oT0ZYnafFK1ZKlw7J9qdatwAyI/n6a/U6yECelsZHxvQWoVXt7Uoql 4lsOlfdsyJl7p8dAvZr7j1e6OvMOxkFXxvadZV04xuhUVcJk2WYiesYAfPvUZaDpHAaUSnbWEhj 3b6wjlKFsdHJqEHIHAd+LkXU= X-Envelope-To: linux-kernel@vger.kernel.org Received: by smtp.migadu.com with ESMTPS id 92b4a417acb68777; Fri, 11 Sep 2026 08:00:58 +0000 X-Mizu-Trace-ID: 92b4a417acb68777 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 , peterz@infradead.org, mingo@redhat.com, rostedt@goodmis.org, jpoimboe@kernel.org, mic@digikod.net, tglx@kernel.org, akpm@linux-foundation.org, david@kernel.org, linmiaohe@huawei.com, nao.horiguchi@gmail.com, rafael@kernel.org, gnoack3000@gmail.com, gourry@gourry.net, 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, 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 Subject: [PATCH v3 09/15] rcu: convert process/thread iterator to for_each_process_thread_rculock Date: Fri, 11 Sep 2026 15:57:54 +0800 Message-Id: <20260911075800.491472-10-ye.liu@linux.dev> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260911075800.491472-1-ye.liu@linux.dev> References: <20260911075800.491472-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 --- Changes in v3: - Split from kernel/ patch in v2 (Peter Zijlstra, Steven Rostedt) Changes in v2: - Rename *_rcu to *_rculock 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 Fri Sep 25 14:30:57 2026 Received: from mta0.migadu.com (out-174.mta0.migadu.com [91.218.175.174]) (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 A21F8442105 for ; Fri, 11 Sep 2026 08:01:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789113684; cv=none; b=AOtBIGPkCNFciYrtekL+1gTmeV0kb5cUkEebycCCEPxDTd6kHT21yhGZHXMNEpwq8GxPbRTIwYHoOzAqt7eU0jRmdqfQD7oQzNX+gtgH2J1wmOtmYdf+WYmvAC/iNRshGw6MOI2BFFODde2wgBG+8sbWiacbIUKv+PE//4rIFEA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789113684; c=relaxed/simple; bh=0hlRYPmyXV54QvYh0kyMJR49RsE/MghM4TVAvWeaXWw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=q8CY3/I0s5s8HlzebtMhLsi9Eh/DoS3RhG/ZkAMOtF9GLlAUqk7g9YIuePr+viF8YQcKzX1FrR4vPFjsKise/Ze4xoIFp1rj0A/YDeU832RGbJExrtWfuPzOiXvD59CslFfkLHdukKacOD2DkMyzSantbaMql+bRNM8UqFB1nLg= 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=K0T4axFF; arc=none smtp.client-ip=91.218.175.174 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="K0T4axFF" X-Envelope-To: linux-kernel@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=0hlRYPmyXV54QvYh0kyMJR49RsE/MghM4TVAvWeaXWw=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1789113678; v=1; x=1789718478; b=K0T4axFFAV3j7dfLX72ytjaA4PfYKcc7fDPwlpRoDhS5ZtKFLL72iTWfjc5JT7ObaS5kfWfY SF2ow5NZ3X/1EZmte6oABZ5GCFHu6htIjR1bkG25/nEvSny+T9P/ph9hxk3E+OM8taNI1ShcJdp A/0fvg7g+ehqYaK9EjeNApMw= X-Envelope-To: linux-kernel@vger.kernel.org Received: by smtp.migadu.com with ESMTPS id e4dd3759505df11b; Fri, 11 Sep 2026 08:01:17 +0000 X-Mizu-Trace-ID: e4dd3759505df11b 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 , paulmck@kernel.org, rostedt@goodmis.org, jpoimboe@kernel.org, mic@digikod.net, tglx@kernel.org, akpm@linux-foundation.org, david@kernel.org, linmiaohe@huawei.com, nao.horiguchi@gmail.com, rafael@kernel.org, gnoack3000@gmail.com, gourry@gourry.net, 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, 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 Subject: [PATCH v3 10/15] sched: convert process/thread iterators to for_each_*_rculock Date: Fri, 11 Sep 2026 15:57:55 +0800 Message-Id: <20260911075800.491472-11-ye.liu@linux.dev> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260911075800.491472-1-ye.liu@linux.dev> References: <20260911075800.491472-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 --- Changes in v3: - Split from kernel/ patch in v2 (Peter Zijlstra, Steven Rostedt) Changes in v2: - Rename *_rcu to *_rculock 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 Fri Sep 25 14:30:57 2026 Received: from mta0.migadu.com (out-239.mta0.migadu.com [91.218.175.239]) (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 74A15423EAE for ; Fri, 11 Sep 2026 08:01:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.239 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789113701; cv=none; b=n29sgNF7U/fdwnlTDYHaSp50ELdGvje00rU1m85LQJM4q8ljGewQOExk3g4q6EU+7P5+1sueaXby9H63H7LfLKBnio/DmZnt4Q9ETybPIFuXjUSZmVqNtNgBEKxC0Zm1zM0w0HXcPkwMRuXOL+XqY7TNRrj2J0jeXMI/Uj1wJ/k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789113701; c=relaxed/simple; bh=IUi1QxJJO9OkJwG+5y62kZo0PP6tS0vKjCkbB/pQE7o=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=GhJ9UaeDiOiheIPVVScEy8MpxMQLFk59jQlGnSxMSN7S9/VoDdgTqdpE8qblW9o96yLZvHah7iPqQO5GYhBBWWJNhmnsGhfN2/TCSJa2G/tjaWY+GcFHjN6hhsKysR0HR6kxaZxufP2IymZ9AqMYc9f3WZ8o/RdFl2lWjekJ1B8= 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=ITKbw41G; arc=none smtp.client-ip=91.218.175.239 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="ITKbw41G" X-Envelope-To: linux-kernel@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=IUi1QxJJO9OkJwG+5y62kZo0PP6tS0vKjCkbB/pQE7o=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1789113696; v=1; x=1789718496; b=ITKbw41GIqoryyNdtt8qpmC83viNLQyMmuoZW8dWz8JcJc0unVQ8J/nZdm9KxTFgnButgmGJ wiCYmtwrdxbb97eNtf9+weSiTGw+PYTAPRWcmIxdXGmrRf7AdeO2fEl1oddISNtk4J+GRgfSs0j TvtyaW+rSUFOPeoVoko6zkWc= X-Envelope-To: linux-kernel@vger.kernel.org Received: by smtp.migadu.com with ESMTPS id e9627d939de7aa3b; Fri, 11 Sep 2026 08:01:34 +0000 X-Mizu-Trace-ID: e9627d939de7aa3b X-Migadu-Flow: FLOW_OUT From: Ye Liu To: Steven Rostedt , Masami Hiramatsu Cc: Ye Liu , Michal Hocko , SJ Park , Lorenzo Stoakes , Oleg Nesterov , peterz@infradead.org, paulmck@kernel.org, mingo@redhat.com, jpoimboe@kernel.org, mic@digikod.net, tglx@kernel.org, akpm@linux-foundation.org, david@kernel.org, linmiaohe@huawei.com, nao.horiguchi@gmail.com, rafael@kernel.org, gnoack3000@gmail.com, gourry@gourry.net, 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, 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 Subject: [PATCH v3 11/15] tracing/fgraph: convert process/thread iterator to for_each_process_thread_rculock Date: Fri, 11 Sep 2026 15:57:56 +0800 Message-Id: <20260911075800.491472-12-ye.liu@linux.dev> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260911075800.491472-1-ye.liu@linux.dev> References: <20260911075800.491472-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 --- Changes in v3: - Split from kernel/ patch in v2 (Peter Zijlstra, Steven Rostedt) Changes in v2: - Rename *_rcu to *_rculock 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 Fri Sep 25 14:30:57 2026 Received: from mta0.migadu.com (out-39.mta0.migadu.com [91.218.175.39]) (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 6240845D5D9 for ; Fri, 11 Sep 2026 08:01:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.39 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789113717; cv=none; b=uU0/89WMFPxWjUC0STlIEzVRd1ux9LtZlDNvzXeOWQhMiqTg2M5k8j9eo3HgYyt05lP3cF2zhQKmzq7QMdkI5JGGRRDgqwnJQKrUQwqWH58z590XUMA/Rs3SB0uBJT79qjkopjRHmQ7zpiquSdqNfkTw5sryUjTCkUdTmW75Rt0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789113717; c=relaxed/simple; bh=Re/ZsMyjr8Kl1M8Xab8XaAEgyJ6r9rT2dZ2X4TDsND8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=TfTzs0+RuXX0vYEPfUIWRFPKdAxxIn4yNuxsvqp+ug1KUUFNTBpXQxAuvBp0i2VRwz8Tv9Ue0ZZiUXNccWxzfoIa2elRBEMBzH809zrUR+l6XOUbqigJYEqvGN+o6n9fbiCsxQW4iJ/cXJj2weEv2Ieb2dQiNzPquxSZYNgdzQ0= 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=UjcPcQDO; arc=none smtp.client-ip=91.218.175.39 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="UjcPcQDO" X-Envelope-To: linux-kernel@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=Re/ZsMyjr8Kl1M8Xab8XaAEgyJ6r9rT2dZ2X4TDsND8=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1789113714; v=1; x=1789718514; b=UjcPcQDOh7J6vkpFrcteNi1zUz7dIM0nAAKZgQgvTarbMJTiE3coDjU8Pj2EWY5fivxKe2dd LEC4NFSI9WGVGdZkhi4ERY6K2Yb8H0qpVALmaZf51lH8v27JXszGAfsroYwza3D5hPPzD0KUVFO U10C4ohj7jdtjyqcH6sxNZ9Q= X-Envelope-To: linux-kernel@vger.kernel.org Received: by smtp.migadu.com with ESMTPS id 67efd391483b1f6c; Fri, 11 Sep 2026 08:01:53 +0000 X-Mizu-Trace-ID: 67efd391483b1f6c X-Migadu-Flow: FLOW_OUT From: Ye Liu To: Josh Poimboeuf , Steven Rostedt Cc: Ye Liu , Michal Hocko , SJ Park , Lorenzo Stoakes , Oleg Nesterov , peterz@infradead.org, paulmck@kernel.org, mingo@redhat.com, mic@digikod.net, tglx@kernel.org, akpm@linux-foundation.org, david@kernel.org, linmiaohe@huawei.com, nao.horiguchi@gmail.com, rafael@kernel.org, gnoack3000@gmail.com, gourry@gourry.net, 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, 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 Subject: [PATCH v3 12/15] unwind: convert process/thread iterator to for_each_process_thread_rculock Date: Fri, 11 Sep 2026 15:57:57 +0800 Message-Id: <20260911075800.491472-13-ye.liu@linux.dev> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260911075800.491472-1-ye.liu@linux.dev> References: <20260911075800.491472-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 --- Changes in v3: - Split from kernel/ patch in v2 (Peter Zijlstra, Steven Rostedt) Changes in v2: - Rename *_rcu to *_rculock 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 Fri Sep 25 14:30:57 2026 Received: from mta0.migadu.com (out-98.mta0.migadu.com [91.218.175.98]) (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 BCB16457E79 for ; Fri, 11 Sep 2026 08:02:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.98 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789113739; cv=none; b=NmBBpxJHgv3pOfl/ZcyJSFMIzlhjiYDlMBcv+vm05BUwRZQpRgu2H1X7bdpDWRgZm++7658/GzS1iKHILVFxO09ubDbhabtmsMMpmBvuvtCZK6d9kpQBlhoeR+pBdXdtb/CBo3sGjNu57w69dAnDSZtBcFD5LP5IC5NIYPCO2B8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789113739; c=relaxed/simple; bh=qoSX5ca3+2R9T/SC58K8tjc6WdOgd2bgxhEA3kDokIM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=LU4cH4eKExAPfRmpvqCrIGKhslF1nP/ySLDKkT40A41eWdcxddtuabAYUIrvgV8KGQCuGoGAJTTbKjRgXkdpFaBXwvF3dRq9ZIQmRt2ZYtHtdqjaKOaivfvEHf1tXQ1pizixENUMtfrg6zffeWKPXoeQ2axyscZ5dvDpfCvKGbs= 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=uBbKjQP2; arc=none smtp.client-ip=91.218.175.98 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="uBbKjQP2" X-Envelope-To: linux-kernel@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=qoSX5ca3+2R9T/SC58K8tjc6WdOgd2bgxhEA3kDokIM=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1789113735; v=1; x=1789718535; b=uBbKjQP2EUFEE5hOrKY945vscJ8EiZRp/QjlrT/nUA2uof7ObFLnaQTzIwtMWoB5PtPeBbY8 Hz6PB2TrYIwKc3fkuv1VVm53juNElXExAWWjrPSz8LRPnN2oVGZ9IB+rPFrpL6gltcZ+dyuDjxC KftX2UpgqD5WH7VnNstP7CiI= X-Envelope-To: linux-kernel@vger.kernel.org Received: by smtp.migadu.com with ESMTPS id 7d384f5229d115c0; Fri, 11 Sep 2026 08:02:14 +0000 X-Mizu-Trace-ID: 7d384f5229d115c0 X-Migadu-Flow: FLOW_OUT From: Ye Liu To: Tony Luck , Reinette Chatre , x86@kernel.org, Christian Brauner , Andrew Morton , Jann Horn , Lorenzo Stoakes , "Mike Rapoport (Microsoft)" , Alexey Dobriyan , Al Viro , Oleg Nesterov Cc: Ye Liu , Michal Hocko , SJ Park , Gregory Price , 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, 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, 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 Subject: [PATCH v3 13/15] fs: convert process/thread iterators to for_each_*_rculock Date: Fri, 11 Sep 2026 15:57:58 +0800 Message-Id: <20260911075800.491472-14-ye.liu@linux.dev> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260911075800.491472-1-ye.liu@linux.dev> References: <20260911075800.491472-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) --- Changes in v2: - Rename *_rcu to *_rculock 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 Fri Sep 25 14:30:57 2026 Received: from mta0.migadu.com (out-141.mta0.migadu.com [91.218.175.141]) (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 1569538F651 for ; Fri, 11 Sep 2026 08:02:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.141 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789113752; cv=none; b=tSlAD/GWfOfQ1RiPJoUCJycL5qGu5ua+bMF7wopy3M9BE2YeCl/zKTp17utPD3S09aXYHBVYPofSs2+RbuwenLK+NsZHHxn0AXcTt8mu8FmPXa9tedYVbXaN5qAlWNoA5Mcdi3aeeZGEyPlj5AV4WDdg7IwdUWIMvHTIU4xdxIs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789113752; c=relaxed/simple; bh=DT3XFpe3pacIAc5YAypwgMYEhUAkDdTmk92G+6zy28I=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=KccLpeY+HmCWgaho8TQJTchBh5dsCZfCjJ5HWgO1Jv5WZc3amg9dquWaIByVNkic8JiI1sKDZnUxcXU7doM4Fr0RFVr4V3hH/qc0bn2WE/n3wMnplf5jfW1QgA2Z53l+/RiJitraeVPSD3n1xVIXJU0Fb6VSh83J6csX4owrDW8= 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=unUKJ8DY; arc=none smtp.client-ip=91.218.175.141 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="unUKJ8DY" X-Envelope-To: linux-kernel@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=DT3XFpe3pacIAc5YAypwgMYEhUAkDdTmk92G+6zy28I=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1789113749; v=1; x=1789718549; b=unUKJ8DYrcQ4bToz8c2edIi7z+fgZhzlq1fTA7zcUDp3SrYNjC6l4l89K6tSEwzP26gkF9BA URNdaFCPlvukjlJrwvIeVQ+HyByePZMThMsMxspzIvf69MdBtNQFx1nyOB9sP1cyAIOx9WzbW/q +x0B4Ox/jB+evgHktfLHQOOQ= X-Envelope-To: linux-kernel@vger.kernel.org Received: by smtp.migadu.com with ESMTPS id 7ddc78a39b3151cc; Fri, 11 Sep 2026 08:02:28 +0000 X-Mizu-Trace-ID: 7ddc78a39b3151cc 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, 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, 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 Subject: [PATCH v3 14/15] lib: convert process iterator to for_each_process_rculock Date: Fri, 11 Sep 2026 15:57:59 +0800 Message-Id: <20260911075800.491472-15-ye.liu@linux.dev> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260911075800.491472-1-ye.liu@linux.dev> References: <20260911075800.491472-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 --- Changes in v2: - Rename *_rcu to *_rculock 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 Fri Sep 25 14:30:57 2026 Received: from mta0.migadu.com (out-181.mta0.migadu.com [91.218.175.181]) (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 83B2E41A77C for ; Fri, 11 Sep 2026 08:02:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789113767; cv=none; b=bon6UNoNm6QBN4BUeryDVXNrWiMH9vuCmSuXOkDLJSvIV4hCEFKWfbc6Z4nbJiFu+7+2fs4njTniZfyK+0N5SteWjwl2/n3+d6J6tVJYf+e5++j7KfQO+e+8NCcAVG+on26Fu+3FYatsGjb1VxB8eIl5bv00a9PPR8GQdsPffGM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789113767; c=relaxed/simple; bh=gyEXa0FlQB4fnI8+b4wbMTxt20ejFsCIXyGvnAfz3fw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=fkQLQh0wulnvfS613oyq8ktZZDlj5lm13fxulkC85hO1zXeSRfalIRDTz1aMTpX9xEdmo7QjIXBCJt2bhXpK94hn11y92B+cpb35gSveS9vNMCCKDLc8Fz4hWGyHqHsMMDelG4dGot8HUPKVdoqcmc5nVXaieSdZj0WFc1G5PTI= 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=IrxlTkHG; arc=none smtp.client-ip=91.218.175.181 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="IrxlTkHG" X-Envelope-To: linux-kernel@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=gyEXa0FlQB4fnI8+b4wbMTxt20ejFsCIXyGvnAfz3fw=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1789113763; v=1; x=1789718563; b=IrxlTkHGp3cBFICxJ74x8FHozgFM9E1bm69zaff8sloIkZpR2vWsfVUpIM26W7FvO9CzmmP6 7bBPeobXxt/R4zkdHt0oBw22fzO7d5vJreo/2QYwar1FhOQ0GppcCZ+WZ+879JKaHVK3SQ/f6cD s0sH5Okj4GHAVuaqATj1rfIQ= X-Envelope-To: linux-kernel@vger.kernel.org Received: by smtp.migadu.com with ESMTPS id fec14dc499d20683; Fri, 11 Sep 2026 08:02:42 +0000 X-Mizu-Trace-ID: fec14dc499d20683 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 , mhocko@suse.com, peterz@infradead.org, paulmck@kernel.org, mingo@redhat.com, rostedt@goodmis.org, jpoimboe@kernel.org, oleg@redhat.com, tglx@kernel.org, akpm@linux-foundation.org, david@kernel.org, linmiaohe@huawei.com, nao.horiguchi@gmail.com, rafael@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, 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 Subject: [PATCH v3 15/15] security/landlock: convert thread iterator to for_each_thread_rculock Date: Fri, 11 Sep 2026 15:58:00 +0800 Message-Id: <20260911075800.491472-16-ye.liu@linux.dev> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260911075800.491472-1-ye.liu@linux.dev> References: <20260911075800.491472-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) --- Changes in v2: - Rename *_rcu to *_rculock 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