On Tue, Feb 20, 2024 at 11:26:13AM -0800, Alexei Starovoitov wrote: > From: Alexei Starovoitov <ast@xxxxxxxxxx> > > vmap() API is used to map a set of pages into contiguous kernel virtual space. > > BPF would like to extend the vmap API to implement a lazily-populated > contiguous kernel virtual space which size and start address is fixed early. > > The vmap API has functions to request and release areas of kernel address space: > get_vm_area() and free_vm_area(). As said before I really hate growing more get_vm_area and free_vm_area outside the core vmalloc code. We have a few of those mostly due to ioremap (which is beeing consolidate) and executable code allocation (which there have been various attempts at consolidation, and hopefully one finally succeeds..). So let's take a step back and think how we can do that without it. For the dynamically growing part do you need a special allocator or can we just go straight to the page allocator and implement this in common code? > For BPF use case the area_size will be 4Gbyte plus 64Kbyte of guard pages and > area->addr known and fixed at the program verification time. How is this ever going to to work on 32-bit platforms?