From: Yu Zhao <yuzhao@google.com>
To: lsf-pc@lists.linux-foundation.org
Cc: linux-mm@kvack.org, Jonathan Corbet <corbet@lwn.net>,
Yu Zhao <yuzhao@google.com>
Subject: [LSF/MM/BPF TOPIC] TAO: THP Allocator Optimizations
Date: Thu, 29 Feb 2024 11:34:32 -0700 [thread overview]
Message-ID: <20240229183436.4110845-1-yuzhao@google.com> (raw)
TAO is an umbrella project aiming at a better economy of physical
contiguity viewed as a valuable resource. A few examples are:
1. A multi-tenant system can have guaranteed THP coverage while
hosting abusers/misusers of the resource.
2. Abusers/misusers, e.g., workloads excessively requesting and then
splitting THPs, should be punished if necessary.
3. Good citizens should be awarded with, e.g., lower allocation
latency and less cost of metadata (struct page).
4. Better interoperability with userspace memory allocators when
transacting the resource.
This project puts the same emphasis on the established use case for
servers and the emerging use case for clients so that client workloads
like Android and ChromeOS can leverage the recent multi-sized THPs
[1][2].
Chapter One introduces the cornerstone of TAO: an abstraction called
policy (virtual) zones, which are overlayed on the physical zones.
This is in line with item 1 above.
A new door is open after Chapter One. The following two chapters
discuss the reverse of THP collapsing, called THP shattering, and THP
HVO, which brings the hugeTLB feature [3] to THP. They are in line
with items 2 & 3 above.
Advanced use cases are discussed in Epilogue, since they require the
cooperation of userspace memory allocators. This is in line with item
4 above.
[1] https://lwn.net/Articles/932386/
[2] https://lwn.net/Articles/937239/
[3] https://www.kernel.org/doc/html/next/mm/vmemmap_dedup.html
Yu Zhao (4):
THP zones: the use cases of policy zones
THP shattering: the reverse of collapsing
THP HVO: bring the hugeTLB feature to THP
Profile-Guided Heap Optimization and THP fungibility
.../admin-guide/kernel-parameters.txt | 10 +
drivers/virtio/virtio_mem.c | 2 +-
include/linux/gfp.h | 24 +-
include/linux/huge_mm.h | 6 -
include/linux/memcontrol.h | 5 +
include/linux/mempolicy.h | 2 +-
include/linux/mm.h | 140 ++++++
include/linux/mm_inline.h | 24 +
include/linux/mm_types.h | 8 +-
include/linux/mmzone.h | 53 +-
include/linux/nodemask.h | 2 +-
include/linux/rmap.h | 4 +
include/linux/vm_event_item.h | 5 +-
include/trace/events/mmflags.h | 4 +-
init/main.c | 1 +
mm/compaction.c | 12 +
mm/gup.c | 3 +-
mm/huge_memory.c | 304 ++++++++++--
mm/hugetlb_vmemmap.c | 2 +-
mm/internal.h | 47 +-
mm/madvise.c | 11 +-
mm/memcontrol.c | 47 ++
mm/memory-failure.c | 2 +-
mm/memory.c | 11 +-
mm/mempolicy.c | 14 +-
mm/migrate.c | 51 +-
mm/mm_init.c | 452 ++++++++++--------
mm/page_alloc.c | 199 +++++++-
mm/page_isolation.c | 2 +-
mm/rmap.c | 21 +-
mm/shmem.c | 4 +-
mm/swap_slots.c | 3 +-
mm/truncate.c | 6 +-
mm/userfaultfd.c | 2 +-
mm/vmscan.c | 41 +-
mm/vmstat.c | 12 +-
36 files changed, 1194 insertions(+), 342 deletions(-)
base-commit: d206a76d7d2726f3b096037f2079ce0bd3ba329b
--
2.44.0.rc1.240.g4c46232300-goog
next reply other threads:[~2024-02-29 18:34 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-29 18:34 Yu Zhao [this message]
2024-02-29 18:34 ` [Chapter One] THP zones: the use cases of policy zones Yu Zhao
2024-02-29 20:28 ` Matthew Wilcox
2024-03-06 3:51 ` Yu Zhao
2024-03-06 4:33 ` Matthew Wilcox
2024-02-29 23:31 ` Yang Shi
2024-03-03 2:47 ` Yu Zhao
2024-03-04 15:19 ` Matthew Wilcox
2024-03-05 17:22 ` Matthew Wilcox
2024-03-05 8:41 ` Barry Song
2024-03-05 10:07 ` Vlastimil Babka
2024-03-05 21:04 ` Barry Song
2024-03-06 3:05 ` Yu Zhao
2024-02-29 18:34 ` [Chapter Two] THP shattering: the reverse of collapsing Yu Zhao
2024-02-29 21:55 ` Zi Yan
2024-03-03 1:17 ` Yu Zhao
2024-03-03 1:21 ` Zi Yan
2024-02-29 18:34 ` [Chapter Three] THP HVO: bring the hugeTLB feature to THP Yu Zhao
2024-02-29 22:54 ` Yang Shi
2024-03-01 15:42 ` David Hildenbrand
2024-03-03 1:46 ` Yu Zhao
2024-02-29 18:34 ` [Epilogue] Profile-Guided Heap Optimization and THP fungibility Yu Zhao
2024-03-05 8:37 ` [LSF/MM/BPF TOPIC] TAO: THP Allocator Optimizations Barry Song
2024-03-06 15:51 ` Johannes Weiner
2024-03-06 16:40 ` Zi Yan
2024-03-13 22:09 ` Kaiyang Zhao
[not found] ` <CAOUHufZE87n_rR9EdjHLkyOt7T+Bc3a9g1Kct6cnGHXo26TDcQ@mail.gmail.com>
2024-05-15 21:52 ` Yu Zhao
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=20240229183436.4110845-1-yuzhao@google.com \
--to=yuzhao@google.com \
--cc=corbet@lwn.net \
--cc=linux-mm@kvack.org \
--cc=lsf-pc@lists.linux-foundation.org \
/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 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).