On Mon, Sep 07, 2026 at 04:13:29PM +0800, Ye Liu wrote: > From: Ye Liu <[email protected]> > > 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 <[email protected]> > Acked-by: Michal Hocko <[email protected]> > Reviewed-by: SJ Park <[email protected]>
LGTM so: Reviewed-by: Lorenzo Stoakes (ARM) <[email protected]> > --- > 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, 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_rculock(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 > -- Cheers, Lorenzo
