mbox series

[RESEND,0/6] Constify struct page arguments

Message ID 20210416231531.2521383-1-willy@infradead.org (mailing list archive)
Headers show
Series Constify struct page arguments | expand

Message

Matthew Wilcox April 16, 2021, 11:15 p.m. UTC
[I'm told that patches 2-6 did not make it to the list; resending and
cc'ing lkml this time]

While working on various solutions to the 32-bit struct page size
regression, one of the problems I found was the networking stack expects
to be able to pass const struct page pointers around, and the mm doesn't
provide a lot of const-friendly functions to call.  The root tangle of
problems is that a lot of functions call VM_BUG_ON_PAGE(), which calls
dump_page(), which calls a lot of functions which don't take a const
struct page (but could be const).

I have other things I need to work on, but I offer these patches as a few
steps towards being able to make dump_page() take a const page pointer.

Matthew Wilcox (Oracle) (6):
  mm: Make __dump_page static
  mm/debug: Factor PagePoisoned out of __dump_page
  mm/page_owner: Constify dump_page_owner
  mm: Make compound_head const-preserving
  mm: Constify get_pfnblock_flags_mask and get_pfnblock_migratetype
  mm: Constify page_count and page_ref_count

 include/linux/mmdebug.h         |  3 +--
 include/linux/page-flags.h      | 10 +++++-----
 include/linux/page_owner.h      |  6 +++---
 include/linux/page_ref.h        |  4 ++--
 include/linux/pageblock-flags.h |  2 +-
 mm/debug.c                      | 25 +++++++------------------
 mm/page_alloc.c                 | 16 ++++++++--------
 mm/page_owner.c                 |  2 +-
 8 files changed, 28 insertions(+), 40 deletions(-)

Comments

William Kucharski April 17, 2021, 7:14 a.m. UTC | #1
Looks good to me and I like the cleanup.

For the series:

Reviewed-by: William Kucharski <william.kucharski@oracle.com>

> On Apr 16, 2021, at 5:15 PM, Matthew Wilcox (Oracle) <willy@infradead.org> wrote:
> 
> [I'm told that patches 2-6 did not make it to the list; resending and
> cc'ing lkml this time]
> 
> While working on various solutions to the 32-bit struct page size
> regression, one of the problems I found was the networking stack expects
> to be able to pass const struct page pointers around, and the mm doesn't
> provide a lot of const-friendly functions to call.  The root tangle of
> problems is that a lot of functions call VM_BUG_ON_PAGE(), which calls
> dump_page(), which calls a lot of functions which don't take a const
> struct page (but could be const).
> 
> I have other things I need to work on, but I offer these patches as a few
> steps towards being able to make dump_page() take a const page pointer.
> 
> Matthew Wilcox (Oracle) (6):
>  mm: Make __dump_page static
>  mm/debug: Factor PagePoisoned out of __dump_page
>  mm/page_owner: Constify dump_page_owner
>  mm: Make compound_head const-preserving
>  mm: Constify get_pfnblock_flags_mask and get_pfnblock_migratetype
>  mm: Constify page_count and page_ref_count
> 
> include/linux/mmdebug.h         |  3 +--
> include/linux/page-flags.h      | 10 +++++-----
> include/linux/page_owner.h      |  6 +++---
> include/linux/page_ref.h        |  4 ++--
> include/linux/pageblock-flags.h |  2 +-
> mm/debug.c                      | 25 +++++++------------------
> mm/page_alloc.c                 | 16 ++++++++--------
> mm/page_owner.c                 |  2 +-
> 8 files changed, 28 insertions(+), 40 deletions(-)
> 
> -- 
> 2.30.2
> 
>