From: Matthew Wilcox <willy@infradead.org>
To: linux-mm@kvack.org
Cc: "Matthew Wilcox" <mawilcox@microsoft.com>,
"Andrew Morton" <akpm@linux-foundation.org>,
"Kirill A . Shutemov" <kirill.shutemov@linux.intel.com>,
"Christoph Lameter" <cl@linux.com>,
"Lai Jiangshan" <jiangshanlai@gmail.com>,
"Pekka Enberg" <penberg@kernel.org>,
"Vlastimil Babka" <vbabka@suse.cz>,
"Dave Hansen" <dave.hansen@linux.intel.com>,
"Jérôme Glisse" <jglisse@redhat.com>
Subject: [PATCH v5 00/17] Rearrange struct page
Date: Fri, 4 May 2018 11:33:01 -0700 [thread overview]
Message-ID: <20180504183318.14415-1-willy@infradead.org> (raw)
From: Matthew Wilcox <mawilcox@microsoft.com>
As presented at LSFMM, this patch-set rearranges struct page to give
more contiguous 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 in v5:
- Added acks from Christoph Lameter
- Dropped patch to make slub use page->private instead of page->counters.
- Combined slab/slob/slub into one union in struct page.
- Added patch to distinguish VMalloc pages.
- Added patch to remove slub's 'reserved' file in sysfs.
- Call the unions 'main union' and 'mapcount union' instead of 'first
union' and 'second union'.
- Removed a line which described which double-word slub's freelist was in.
Changes in 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 (17):
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
mm: Combine first three unions in struct page
mm: Use page->deferred_list
mm: Move lru union within struct page
mm: Combine LRU and main union 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
slub: Remove 'reserved' file from sysfs
mm: Distinguish VMalloc pages
arch/s390/mm/pgalloc.c | 21 ++-
arch/x86/mm/pgtable.c | 5 +-
fs/proc/page.c | 4 +
include/linux/hmm.h | 8 +-
include/linux/mm.h | 2 +
include/linux/mm_types.h | 238 ++++++++++++-------------
include/linux/page-flags.h | 76 ++++++--
include/linux/slub_def.h | 1 -
include/uapi/linux/kernel-page-flags.h | 3 +-
kernel/crash_core.c | 1 +
mm/huge_memory.c | 7 +-
mm/page_alloc.c | 17 +-
mm/slab.c | 2 -
mm/slub.c | 102 +++--------
mm/vmalloc.c | 5 +-
scripts/tags.sh | 6 +-
tools/vm/page-types.c | 2 +
17 files changed, 244 insertions(+), 256 deletions(-)
--
2.17.0
next reply other threads:[~2018-05-04 18:33 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-04 18:33 Matthew Wilcox [this message]
2018-05-04 18:33 ` [PATCH v5 01/17] s390: Use _refcount for pgtables Matthew Wilcox
2018-05-04 18:33 ` [PATCH v5 02/17] mm: Split page_type out from _mapcount Matthew Wilcox
2018-05-14 14:33 ` Vlastimil Babka
2018-05-04 18:33 ` [PATCH v5 03/17] mm: Mark pages in use for page tables Matthew Wilcox
2018-05-04 18:33 ` [PATCH v5 04/17] mm: Switch s_mem and slab_cache in struct page Matthew Wilcox
2018-05-07 14:58 ` Christopher Lameter
2018-05-14 14:37 ` Vlastimil Babka
2018-05-04 18:33 ` [PATCH v5 05/17] mm: Move 'private' union within " Matthew Wilcox
2018-05-04 18:33 ` [PATCH v5 06/17] mm: Move _refcount out of struct page union Matthew Wilcox
2018-05-04 18:33 ` [PATCH v5 07/17] mm: Combine first three unions in struct page Matthew Wilcox
2018-05-14 14:42 ` Vlastimil Babka
2018-05-04 18:33 ` [PATCH v5 08/17] mm: Use page->deferred_list Matthew Wilcox
2018-05-04 18:33 ` [PATCH v5 09/17] mm: Move lru union within struct page Matthew Wilcox
2018-05-04 18:33 ` [PATCH v5 10/17] mm: Combine LRU and main union in " Matthew Wilcox
2018-05-04 18:33 ` [PATCH v5 11/17] mm: Improve struct page documentation Matthew Wilcox
2018-05-15 9:22 ` Vlastimil Babka
2018-05-04 18:33 ` [PATCH v5 12/17] mm: Add pt_mm to struct page Matthew Wilcox
2018-05-15 9:27 ` Vlastimil Babka
2018-05-15 12:23 ` Matthew Wilcox
2018-05-04 18:33 ` [PATCH v5 13/17] mm: Add hmm_data " Matthew Wilcox
2018-05-15 9:32 ` Vlastimil Babka
2018-05-15 12:40 ` Vlastimil Babka
2018-05-04 18:33 ` [PATCH v5 14/17] slab,slub: Remove rcu_head size checks Matthew Wilcox
2018-05-15 11:30 ` Vlastimil Babka
2018-05-04 18:33 ` [PATCH v5 15/17] slub: Remove kmem_cache->reserved Matthew Wilcox
2018-05-04 18:33 ` [PATCH v5 16/17] slub: Remove 'reserved' file from sysfs Matthew Wilcox
2018-05-07 15:01 ` Christopher Lameter
2018-05-04 18:33 ` [PATCH v5 17/17] mm: Distinguish VMalloc pages Matthew Wilcox
2018-05-04 20:52 ` [PATCH v5 00/17] Rearrange struct page Andrew Morton
2018-05-04 21:25 ` Matthew Wilcox
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180504183318.14415-1-willy@infradead.org \
--to=willy@infradead.org \
--cc=akpm@linux-foundation.org \
--cc=cl@linux.com \
--cc=dave.hansen@linux.intel.com \
--cc=jglisse@redhat.com \
--cc=jiangshanlai@gmail.com \
--cc=kirill.shutemov@linux.intel.com \
--cc=linux-mm@kvack.org \
--cc=mawilcox@microsoft.com \
--cc=penberg@kernel.org \
--cc=vbabka@suse.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.