All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 00/16] Rearrange struct page
@ 2018-04-30 20:22 Matthew Wilcox
  2018-04-30 20:22 ` [PATCH v4 01/16] s390: Use _refcount for pgtables Matthew Wilcox
                   ` (15 more replies)
  0 siblings, 16 replies; 30+ messages in thread
From: Matthew Wilcox @ 2018-04-30 20:22 UTC (permalink / raw)
  To: linux-mm
  Cc: Matthew Wilcox, Andrew Morton, Kirill A . Shutemov,
	Christoph Lameter, Lai Jiangshan, Pekka Enberg, Vlastimil Babka,
	Dave Hansen, Jérôme Glisse

From: Matthew Wilcox <mawilcox@microsoft.com>

As presented at LSFMM last week, this patch-set rearranges struct page
to give more usable space to users who have allocated a struct page for
their own purposes.  For a graphical view of before-and-after, see the first
two tabs of https://docs.google.com/spreadsheets/d/1tvCszs_7FXrjei9_mtFiKV6nW1FLnYyvPvW-qNZhdog/edit?usp=sharing

Highlights:
 - slub's counters no longer share space with _refcount.
 - slub's freelist+counters are now naturally dword aligned.
 - It's now more obvious what fields in struct page are used by which
   owners (some owners still take advantage of the union aliasing).
 - deferred_list now really exists in struct page instead of just a
   comment.
 - slub loses a parameter to a lot of functions.
 - Several hidden uses of struct page are now documented in code.

Changes v3 -> v4:

 - Added acks/reviews from Kirill & Randy
 - Removed call to page_mapcount_reset from slub since it no longer uses
   mapcount union.
 - Add pt_mm and hmm_data to struct page

Matthew Wilcox (16):
  s390: Use _refcount for pgtables
  mm: Split page_type out from _mapcount
  mm: Mark pages in use for page tables
  mm: Switch s_mem and slab_cache in struct page
  mm: Move 'private' union within struct page
  mm: Move _refcount out of struct page union
  slub: Remove page->counters
  mm: Combine first three unions in struct page
  mm: Use page->deferred_list
  mm: Move lru union within struct page
  mm: Combine first two unions in struct page
  mm: Improve struct page documentation
  mm: Add pt_mm to struct page
  mm: Add hmm_data to struct page
  slab,slub: Remove rcu_head size checks
  slub: Remove kmem_cache->reserved

 arch/s390/mm/pgalloc.c                 |  21 ++-
 arch/x86/mm/pgtable.c                  |   5 +-
 fs/proc/page.c                         |   2 +
 include/linux/hmm.h                    |   8 +-
 include/linux/mm.h                     |   2 +
 include/linux/mm_types.h               | 218 ++++++++++++-------------
 include/linux/page-flags.h             |  51 +++---
 include/linux/slub_def.h               |   1 -
 include/uapi/linux/kernel-page-flags.h |   2 +-
 kernel/crash_core.c                    |   1 +
 mm/huge_memory.c                       |   7 +-
 mm/page_alloc.c                        |  17 +-
 mm/slab.c                              |   2 -
 mm/slub.c                              | 138 ++++++----------
 scripts/tags.sh                        |   6 +-
 tools/vm/page-types.c                  |   1 +
 16 files changed, 222 insertions(+), 260 deletions(-)

-- 
2.17.0

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

end of thread, other threads:[~2018-05-04 16:29 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-04-30 20:22 [PATCH v4 00/16] Rearrange struct page Matthew Wilcox
2018-04-30 20:22 ` [PATCH v4 01/16] s390: Use _refcount for pgtables Matthew Wilcox
2018-04-30 20:22 ` [PATCH v4 02/16] mm: Split page_type out from _mapcount Matthew Wilcox
2018-04-30 20:22 ` [PATCH v4 03/16] mm: Mark pages in use for page tables Matthew Wilcox
2018-04-30 20:22 ` [PATCH v4 04/16] mm: Switch s_mem and slab_cache in struct page Matthew Wilcox
2018-04-30 20:22 ` [PATCH v4 05/16] mm: Move 'private' union within " Matthew Wilcox
2018-04-30 20:22 ` [PATCH v4 06/16] mm: Move _refcount out of struct page union Matthew Wilcox
2018-04-30 20:22 ` [PATCH v4 07/16] slub: Remove page->counters Matthew Wilcox
2018-05-01 16:48   ` Christopher Lameter
2018-05-02 17:26     ` Matthew Wilcox
2018-05-02 22:17       ` Kirill A. Shutemov
2018-05-03  0:52         ` Matthew Wilcox
2018-05-03 15:03           ` Christopher Lameter
2018-05-03 18:28             ` Matthew Wilcox
2018-05-04 14:55               ` Christopher Lameter
2018-05-04 15:15                 ` Matthew Wilcox
2018-05-04 16:29                   ` Christopher Lameter
2018-04-30 20:22 ` [PATCH v4 08/16] mm: Combine first three unions in struct page Matthew Wilcox
2018-04-30 20:22 ` [PATCH v4 09/16] mm: Use page->deferred_list Matthew Wilcox
2018-04-30 20:22 ` [PATCH v4 10/16] mm: Move lru union within struct page Matthew Wilcox
2018-04-30 20:22 ` [PATCH v4 11/16] mm: Combine first two unions in " Matthew Wilcox
2018-04-30 20:22 ` [PATCH v4 12/16] mm: Improve struct page documentation Matthew Wilcox
2018-04-30 20:22 ` [PATCH v4 13/16] mm: Add pt_mm to struct page Matthew Wilcox
2018-05-02  8:12   ` Kirill A. Shutemov
2018-05-03  0:11     ` Matthew Wilcox
2018-04-30 20:22 ` [PATCH v4 14/16] mm: Add hmm_data " Matthew Wilcox
2018-04-30 20:22 ` [PATCH v4 15/16] slab,slub: Remove rcu_head size checks Matthew Wilcox
2018-05-01 16:46   ` Christopher Lameter
2018-04-30 20:22 ` [PATCH v4 16/16] slub: Remove kmem_cache->reserved Matthew Wilcox
2018-05-01 16:43   ` Christopher Lameter

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.