Message ID | 20230319114214.2133332-1-rppt@kernel.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | mm: move get_page_from_free_area() to mm/page_alloc.c | expand |
On Sun, Mar 19, 2023 at 01:42:14PM +0200, Mike Rapoport wrote: > From: "Mike Rapoport (IBM)" <rppt@kernel.org> > > The get_page_from_free_area() helper is only used in mm/page_alloc.c so > move it there to reduce noise in include/linux/mmzone.h > > Signed-off-by: Mike Rapoport (IBM) <rppt@kernel.org> > --- > include/linux/mmzone.h | 7 ------- > mm/page_alloc.c | 7 +++++++ > 2 files changed, 7 insertions(+), 7 deletions(-) > > diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h > index 96599cb9eb62..8f5a9e2c722a 100644 > --- a/include/linux/mmzone.h > +++ b/include/linux/mmzone.h > @@ -108,13 +108,6 @@ struct free_area { > unsigned long nr_free; > }; > > -static inline struct page *get_page_from_free_area(struct free_area *area, > - int migratetype) > -{ > - return list_first_entry_or_null(&area->free_list[migratetype], > - struct page, lru); > -} > - > static inline bool free_area_empty(struct free_area *area, int migratetype) > { > return list_empty(&area->free_list[migratetype]); > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > index 87d760236dba..2e72fdbdd8db 100644 > --- a/mm/page_alloc.c > +++ b/mm/page_alloc.c > @@ -1048,6 +1048,13 @@ static inline void del_page_from_free_list(struct page *page, struct zone *zone, > zone->free_area[order].nr_free--; > } > > +static inline struct page *get_page_from_free_area(struct free_area *area, > + int migratetype) > +{ > + return list_first_entry_or_null(&area->free_list[migratetype], > + struct page, lru); > +} > + > /* > * If this is not the largest possible page, check if the buddy > * of the next-highest order is free. If it is, it's possible > > base-commit: 4018ab1f7cec061b8425737328edefebdc0ab832 > -- > 2.35.1 > Good catch, I wonder if there are more functions like this that can be dropped from headers? Reviewed-by: Lorenzo Stoakes <lstoakes@gmail.com>
On Sun, Mar 19, 2023 at 01:42:14PM +0200, Mike Rapoport wrote: > From: "Mike Rapoport (IBM)" <rppt@kernel.org> > > The get_page_from_free_area() helper is only used in mm/page_alloc.c so > move it there to reduce noise in include/linux/mmzone.h > > Signed-off-by: Mike Rapoport (IBM) <rppt@kernel.org> Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
On Sun, Mar 19, 2023 at 12:07:43PM +0000, Lorenzo Stoakes wrote: > On Sun, Mar 19, 2023 at 01:42:14PM +0200, Mike Rapoport wrote: > > From: "Mike Rapoport (IBM)" <rppt@kernel.org> > > > > The get_page_from_free_area() helper is only used in mm/page_alloc.c so > > move it there to reduce noise in include/linux/mmzone.h Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org> > Good catch, I wonder if there are more functions like this that can be dropped > from headers? I don't think anything outside mm/ has any reason to see 'struct free_area'. Unfortunately, it's a field in struct zone, so moving it out of mmzone.h will be hard (unless we can move struct zone out of mmzone.h?) free_area_empty() can move to mm/internal.h though
On Sun, Mar 19, 2023 at 08:22:14PM +0000, Matthew Wilcox wrote: > On Sun, Mar 19, 2023 at 12:07:43PM +0000, Lorenzo Stoakes wrote: > > On Sun, Mar 19, 2023 at 01:42:14PM +0200, Mike Rapoport wrote: > > > From: "Mike Rapoport (IBM)" <rppt@kernel.org> > > > > > > The get_page_from_free_area() helper is only used in mm/page_alloc.c so > > > move it there to reduce noise in include/linux/mmzone.h > > Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org> > > > Good catch, I wonder if there are more functions like this that can be dropped > > from headers? > > I don't think anything outside mm/ has any reason to see 'struct > free_area'. Unfortunately, it's a field in struct zone, so moving > it out of mmzone.h will be hard (unless we can move struct zone out of > mmzone.h?) Seems possible but not trivial. > free_area_empty() can move to mm/internal.h though Yes.
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index 96599cb9eb62..8f5a9e2c722a 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h @@ -108,13 +108,6 @@ struct free_area { unsigned long nr_free; }; -static inline struct page *get_page_from_free_area(struct free_area *area, - int migratetype) -{ - return list_first_entry_or_null(&area->free_list[migratetype], - struct page, lru); -} - static inline bool free_area_empty(struct free_area *area, int migratetype) { return list_empty(&area->free_list[migratetype]); diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 87d760236dba..2e72fdbdd8db 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -1048,6 +1048,13 @@ static inline void del_page_from_free_list(struct page *page, struct zone *zone, zone->free_area[order].nr_free--; } +static inline struct page *get_page_from_free_area(struct free_area *area, + int migratetype) +{ + return list_first_entry_or_null(&area->free_list[migratetype], + struct page, lru); +} + /* * If this is not the largest possible page, check if the buddy * of the next-highest order is free. If it is, it's possible