On Fri, 9 Feb 2024 at 05:06, Alexei Starovoitov <alexei.starovoitov@xxxxxxxxx> wrote: > > From: Alexei Starovoitov <ast@xxxxxxxxxx> > > BPF would like to use the vmap API to implement a lazily-populated > memory space which can be shared by multiple userspace threads. > > The vmap API is generally public and has functions to request and > release areas of kernel address space, as well as functions to map > various types of backing memory into that space. > > For example, there is the public ioremap_page_range(), which is used > to map device memory into addressable kernel space. > > The new BPF code needs the functionality of vmap_pages_range() in > order to incrementally map privately managed arrays of pages into its > vmap area. Indeed this function used to be public, but became private > when usecases other than vmalloc happened to disappear. > > Make it public again for the new external user. > > The next commits will introduce bpf_arena which is a sparsely populated shared > memory region between bpf program and user space process. It will map > privately-managed pages into an existing vm area. It's the same pattern and > layer of abstraction as ioremap_pages_range(). > > Signed-off-by: Alexei Starovoitov <ast@xxxxxxxxxx> > --- Acked-by: Kumar Kartikeya Dwivedi <memxor@xxxxxxxxx>