linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [RFC v2 0/3] move PG_slab to page_type
@ 2022-11-06 14:03 Hyeonggon Yoo
  2022-11-06 14:03 ` [RFC v2 1/3] mm: move PG_slab flag " Hyeonggon Yoo
                   ` (2 more replies)
  0 siblings, 3 replies; 15+ messages in thread
From: Hyeonggon Yoo @ 2022-11-06 14:03 UTC (permalink / raw)
  To: linux-mm
  Cc: Andrew Morton, Christoph Lameter, Pekka Enberg, David Rientjes,
	Vlastimil Babka, Naoya Horiguchi, Miaohe Lin, Matthew Wilcox,
	Minchan Kim, Mel Gorman, Andrea Arcangeli, Dan Williams,
	Hugh Dickins, Muchun Song, David Hildenbrand, Hyeonggon Yoo

RFC v1: https://lore.kernel.org/all/Y0BpuxUb+Y8BKHIM@casper.infradead.org/T/

This series moves PG_slab from page->flags to page->page_type.
as page_type field is also used number of active objects in slab,
upper half (16 bits) are used as page type and lower half (16 bits) are
used as slab->active.

It simplifies checking page_mapped() and folio_mapped() and
frees a bit in page->flags.

This also adds new %pGt printf format that prints human-readable
page_type, and show_page_flags() (for tracepoints).

More tests are still needed, but I think it's worth to get some early
feedbacks.

TO HWPOISON DEVELOPERS:
	I think it would be best to add a code that identifies a type of
	page from page_type like page flags. but I'm not sure how to
	properly test it.

v1 -> v2:
  - use page flag policy for pages that uses page_type
    (PF_NO_TAIL for slab and PF_ANY for others) (Matthew WilCox)

  - store slab->active in negative form and use helpers to
    access/modify it (Matthew WilCox)

  - Fix logical errors and some cleanup in fs/proc/page.c and kernel/crash_core.c

  - add show_page_flags() (patch 2) and %pGt format (patch 3)


Any feedbacks are appreciated.

Hyeonggon Yoo (3):
  mm: move PG_slab flag to page_type
  mm: introduce show_page_types() to provide human-readable page_type
  mm, printk: introduce new format %pGt for page_type

 Documentation/core-api/printk-formats.rst |  3 +-
 fs/proc/page.c                            | 13 ++--
 include/linux/mm_types.h                  | 11 ++--
 include/linux/page-flags.h                | 77 ++++++++++++++++-------
 include/trace/events/mmflags.h            | 13 +++-
 include/trace/events/page_ref.h           | 10 ++-
 kernel/crash_core.c                       |  3 +-
 lib/test_printf.c                         | 23 +++++++
 lib/vsprintf.c                            | 24 +++++++
 mm/debug.c                                |  7 +++
 mm/internal.h                             |  1 +
 mm/memory-failure.c                       |  8 ---
 mm/slab.c                                 | 44 ++++++++-----
 mm/slab.h                                 |  3 +-
 14 files changed, 175 insertions(+), 65 deletions(-)

-- 
2.32.0



^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2022-11-09  8:14 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-11-06 14:03 [RFC v2 0/3] move PG_slab to page_type Hyeonggon Yoo
2022-11-06 14:03 ` [RFC v2 1/3] mm: move PG_slab flag " Hyeonggon Yoo
2022-11-08  5:39   ` HORIGUCHI NAOYA(堀口 直也)
2022-11-09  5:45     ` Hyeonggon Yoo
2022-11-06 14:03 ` [RFC v2 2/3] mm: introduce show_page_types() to provide human-readable page_type Hyeonggon Yoo
2022-11-06 18:23   ` Steven Rostedt
2022-11-09  6:19     ` Hyeonggon Yoo
2022-11-06 14:03 ` [RFC v2 3/3] mm, printk: introduce new format %pGt for page_type Hyeonggon Yoo
2022-11-06 18:04   ` Joe Perches
2022-11-09  6:14     ` Hyeonggon Yoo
2022-11-09  8:13       ` Petr Mladek
2022-11-07 11:18   ` Andy Shevchenko
2022-11-07 14:20     ` Petr Mladek
2022-11-07 14:41       ` Andy Shevchenko
2022-11-09  6:04       ` Hyeonggon Yoo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).