On Tue, Mar 29, 2016 at 12:23:13PM -0700, Andrew Morton wrote: > On Tue, 29 Mar 2016 11:27:47 +0200 Vlastimil Babka <vba...@suse.cz> wrote: > > > > v2: change more _count usages to _refcount > > > > There's also > > Documentation/vm/transhuge.txt talking about ->_count > > include/linux/mm.h: * requires to already have an elevated > > page->_count. > > include/linux/mm_types.h: * Keep _count separate > > from slub cmpxchg_double data. > > include/linux/mm_types.h: * slab_lock but _count is > > not. > > include/linux/pagemap.h: * If the page is free (_count == 0), then _count > > is untouched, and 0 > > include/linux/pagemap.h: * is returned. Otherwise, _count is incremented by > > 1 and 1 is returned. > > include/linux/pagemap.h: * this allows allocators to use a > > synchronize_rcu() to stabilize _count. > > include/linux/pagemap.h: * Remove-side that cares about stability of _count > > (eg. reclaim) has the > > mm/huge_memory.c: * tail_page->_count is zero and not changing from > > under us. But > > mm/huge_memory.c: /* Prevent deferred_split_scan() touching ->_count > > */ > > mm/internal.h: * Turn a non-refcounted page (->_count == 0) into refcounted > > with > > mm/page_alloc.c: bad_reason = "nonzero _count"; > > mm/page_alloc.c: bad_reason = "nonzero _count"; > > mm/page_alloc.c: * because their page->_count is zero at > > all time. > > mm/slub.c: * as page->_count. If we assign to ->counters directly > > mm/slub.c: * we run the risk of losing updates to page->_count, so > > mm/vmscan.c: * load is not satisfied before that of page->_count. > > mm/vmscan.c: * The downside is that we have to touch page->_count against > > each page. > > > > I've arrived at the following command to find this: > > git grep "[^a-zA-Z0-9_]_count[^_]" > > > > Not that many false positives in the output :) > > > From: Andrew Morton <a...@linux-foundation.org> > Subject: mm-rename-_count-field-of-the-struct-page-to-_refcount-fix > > fix comments, per Vlastimil
Andrew and Vlastimil, great thanks! Thanks.