On Thu, Feb 29, 2024 at 11:34 AM Yu Zhao <yuzhao@xxxxxxxxxx> wrote: > > 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(-) Attaching the deck for this topic.
Attachment:
TAO (LSF_MM_BPF 2024).pdf
Description: Adobe PDF document