{"title":"eBPF-mm: Userspace-guided memory management in Linux with eBPF","authors":"Konstantinos Mores, Stratos Psomadakis, Georgios Goumas","doi":"arxiv-2409.11220","DOIUrl":null,"url":null,"abstract":"We leverage eBPF in order to implement custom policies in the Linux memory\nsubsystem. Inspired by CBMM, we create a mechanism that provides the kernel\nwith hints regarding the benefit of promoting a page to a specific size. We\nintroduce a new hook point in Linux page fault handling path for eBPF programs,\nproviding them the necessary context to determine the page size to be used. We\nthen develop a framework that allows users to define profiles for their\napplications and load them into the kernel. A profile consists of memory\nregions of interest and their expected benefit from being backed by 4KB, 64KB\nand 2MB pages. In our evaluation, we profiled our workloads to identify hot\nmemory regions using DAMON.","PeriodicalId":501333,"journal":{"name":"arXiv - CS - Operating Systems","volume":"13 1","pages":""},"PeriodicalIF":0.0000,"publicationDate":"2024-09-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"arXiv - CS - Operating Systems","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/arxiv-2409.11220","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
We leverage eBPF in order to implement custom policies in the Linux memory
subsystem. Inspired by CBMM, we create a mechanism that provides the kernel
with hints regarding the benefit of promoting a page to a specific size. We
introduce a new hook point in Linux page fault handling path for eBPF programs,
providing them the necessary context to determine the page size to be used. We
then develop a framework that allows users to define profiles for their
applications and load them into the kernel. A profile consists of memory
regions of interest and their expected benefit from being backed by 4KB, 64KB
and 2MB pages. In our evaluation, we profiled our workloads to identify hot
memory regions using DAMON.