On Wed, May 15, 2024 at 3:17 PM Yu Zhao wrote: > > On Thu, Feb 29, 2024 at 11:34 AM Yu Zhao 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. Let me compress the PDF and try again.