Re: [PATCH 3/8] mm/ksm: convert process iterator to for_each_process_rcu

From: Michal Hocko

Date: Fri Sep 04 2026 - 07:34:03 EST


On Fri 04-09-26 16:29:55, Ye Liu wrote:
> From: Ye Liu <liuye@xxxxxxxxxx>
>
> Replace the manual rcu_read_lock()/rcu_read_unlock() pair combined
> with for_each_process() loop in mm/ksm.c with for_each_process_rcu().
>
> No functional change.
>
> Signed-off-by: Ye Liu <liuye@xxxxxxxxxx>

Acked-by: Michal Hocko <mhocko@xxxxxxxx>

> ---
> mm/ksm.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/mm/ksm.c b/mm/ksm.c
> index 49d48d1e0998..fa5e4c47fb1b 100644
> --- a/mm/ksm.c
> +++ b/mm/ksm.c
> @@ -3280,8 +3280,7 @@ void collect_procs_ksm(const struct folio *folio, const struct page *page,
> struct anon_vma *av = rmap_item->anon_vma;
>
> anon_vma_lock_read(av);
> - rcu_read_lock();
> - for_each_process(tsk) {
> + for_each_process_rcu(tsk) {
> struct anon_vma_chain *vmac;
> const unsigned long addr = rmap_item->address & PAGE_MASK;
> const unsigned long index = rmap_item->linear_page_index;
> @@ -3298,7 +3297,6 @@ void collect_procs_ksm(const struct folio *folio, const struct page *page,
> }
> }
> }
> - rcu_read_unlock();
> anon_vma_unlock_read(av);
> }
> }
> --
> 2.25.1
>

--
Michal Hocko
SUSE Labs