Message ID | 20210317064730.546507-1-npiggin@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2,1/3] mm: add __ prefix to page_cpupid_reset_last because it is non-atomic | expand |
Ping? Any concerns about these patches? Thanks, Nick Excerpts from Nicholas Piggin's message of March 17, 2021 4:47 pm: > Add a __ prefix to indicate that it should be used in non-atomic > situations (where the page is not subject to concurrent flags > access, following the pattern of the other page flags modifications). > > This prepares for an atomic version. > > Signed-off-by: Nicholas Piggin <npiggin@gmail.com> > --- > Rebase only. Any comments on this idea? > > Thanks, > Nick > > include/linux/mm.h | 6 +++--- > mm/page_alloc.c | 4 ++-- > 2 files changed, 5 insertions(+), 5 deletions(-) > > diff --git a/include/linux/mm.h b/include/linux/mm.h > index 64a71bf20536..086ab710383f 100644 > --- a/include/linux/mm.h > +++ b/include/linux/mm.h > @@ -1396,7 +1396,7 @@ static inline int page_cpupid_last(struct page *page) > { > return page->_last_cpupid; > } > -static inline void page_cpupid_reset_last(struct page *page) > +static inline void __page_cpupid_reset_last(struct page *page) > { > page->_last_cpupid = -1 & LAST_CPUPID_MASK; > } > @@ -1408,7 +1408,7 @@ static inline int page_cpupid_last(struct page *page) > > extern int page_cpupid_xchg_last(struct page *page, int cpupid); > > -static inline void page_cpupid_reset_last(struct page *page) > +static inline void __page_cpupid_reset_last(struct page *page) > { > page->flags |= LAST_CPUPID_MASK << LAST_CPUPID_PGSHIFT; > } > @@ -1449,7 +1449,7 @@ static inline bool cpupid_pid_unset(int cpupid) > return true; > } > > -static inline void page_cpupid_reset_last(struct page *page) > +static inline void __page_cpupid_reset_last(struct page *page) > { > } > > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > index cfc72873961d..172368357e73 100644 > --- a/mm/page_alloc.c > +++ b/mm/page_alloc.c > @@ -1266,7 +1266,7 @@ static __always_inline bool free_pages_prepare(struct page *page, > if (bad) > return false; > > - page_cpupid_reset_last(page); > + __page_cpupid_reset_last(page); > page->flags &= ~PAGE_FLAGS_CHECK_AT_PREP; > reset_page_owner(page, order); > > @@ -1463,7 +1463,7 @@ static void __meminit __init_single_page(struct page *page, unsigned long pfn, > set_page_links(page, zone, nid, pfn); > init_page_count(page); > page_mapcount_reset(page); > - page_cpupid_reset_last(page); > + __page_cpupid_reset_last(page); > page_kasan_tag_reset(page); > > INIT_LIST_HEAD(&page->lru); > -- > 2.23.0 > >
On Tue, Jun 01, 2021 at 03:06:01PM +1000, Nicholas Piggin wrote: > Ping? Any concerns about these patches? For all three: Acked-by: Peter Zijlstra (Intel) <peterz@infradead>
Excerpts from Peter Zijlstra's message of June 1, 2021 4:42 pm: > On Tue, Jun 01, 2021 at 03:06:01PM +1000, Nicholas Piggin wrote: >> Ping? Any concerns about these patches? > > For all three: > > Acked-by: Peter Zijlstra (Intel) <peterz@infradead> > Great, thanks for taking a look. Thanks, Nick
diff --git a/include/linux/mm.h b/include/linux/mm.h index 64a71bf20536..086ab710383f 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -1396,7 +1396,7 @@ static inline int page_cpupid_last(struct page *page) { return page->_last_cpupid; } -static inline void page_cpupid_reset_last(struct page *page) +static inline void __page_cpupid_reset_last(struct page *page) { page->_last_cpupid = -1 & LAST_CPUPID_MASK; } @@ -1408,7 +1408,7 @@ static inline int page_cpupid_last(struct page *page) extern int page_cpupid_xchg_last(struct page *page, int cpupid); -static inline void page_cpupid_reset_last(struct page *page) +static inline void __page_cpupid_reset_last(struct page *page) { page->flags |= LAST_CPUPID_MASK << LAST_CPUPID_PGSHIFT; } @@ -1449,7 +1449,7 @@ static inline bool cpupid_pid_unset(int cpupid) return true; } -static inline void page_cpupid_reset_last(struct page *page) +static inline void __page_cpupid_reset_last(struct page *page) { } diff --git a/mm/page_alloc.c b/mm/page_alloc.c index cfc72873961d..172368357e73 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -1266,7 +1266,7 @@ static __always_inline bool free_pages_prepare(struct page *page, if (bad) return false; - page_cpupid_reset_last(page); + __page_cpupid_reset_last(page); page->flags &= ~PAGE_FLAGS_CHECK_AT_PREP; reset_page_owner(page, order); @@ -1463,7 +1463,7 @@ static void __meminit __init_single_page(struct page *page, unsigned long pfn, set_page_links(page, zone, nid, pfn); init_page_count(page); page_mapcount_reset(page); - page_cpupid_reset_last(page); + __page_cpupid_reset_last(page); page_kasan_tag_reset(page); INIT_LIST_HEAD(&page->lru);
Add a __ prefix to indicate that it should be used in non-atomic situations (where the page is not subject to concurrent flags access, following the pattern of the other page flags modifications). This prepares for an atomic version. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> --- Rebase only. Any comments on this idea? Thanks, Nick include/linux/mm.h | 6 +++--- mm/page_alloc.c | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-)