Message ID | 20240305030516.41519-1-alexei.starovoitov@gmail.com (mailing list archive) |
---|---|
Headers | show |
Series | mm: Enforce ioremap address space and introduce sparse vm_area | expand |
Hello: This series was applied to bpf/bpf-next.git (master) by Andrii Nakryiko <andrii@kernel.org>: On Mon, 4 Mar 2024 19:05:14 -0800 you wrote: > From: Alexei Starovoitov <ast@kernel.org> > > v3 -> v4 > - dropped VM_XEN patch for now. It will be in the follow up. > - fixed constant as pointed out by Mike > > v2 -> v3 > - added Christoph's reviewed-by to patch 1 > - cap commit log lines to 75 chars > - factored out common checks in patch 3 into helper > - made vm_area_unmap_pages() return void > > [...] Here is the summary with links: - [v4,bpf-next,1/2] mm: Enforce VM_IOREMAP flag and range in ioremap_page_range. https://git.kernel.org/bpf/bpf-next/c/3e49a866c9dc - [v4,bpf-next,2/2] mm: Introduce VM_SPARSE kind and vm_area_[un]map_pages(). https://git.kernel.org/bpf/bpf-next/c/6b66b3a4ed5e You are awesome, thank you!
From: Alexei Starovoitov <ast@kernel.org> v3 -> v4 - dropped VM_XEN patch for now. It will be in the follow up. - fixed constant as pointed out by Mike v2 -> v3 - added Christoph's reviewed-by to patch 1 - cap commit log lines to 75 chars - factored out common checks in patch 3 into helper - made vm_area_unmap_pages() return void There are various users of kernel virtual address space: vmalloc, vmap, ioremap, xen. - vmalloc use case dominates the usage. Such vm areas have VM_ALLOC flag and these areas are treated differently by KASAN. - the areas created by vmap() function should be tagged with VM_MAP (as majority of the users do). - ioremap areas are tagged with VM_IOREMAP and vm area start is aligned to size of the area unlike vmalloc/vmap. - there is also xen usage that is marked as VM_IOREMAP, but it doesn't call ioremap_page_range() unlike all other VM_IOREMAP users. To clean this up a bit, enforce that ioremap_page_range() checks the range and VM_IOREMAP flag. In addition BPF would like to reserve regions of kernel virtual address space and populate it lazily, similar to xen use cases. For that reason, introduce VM_SPARSE flag and vm_area_[un]map_pages() helpers to populate this sparse area. In the end the /proc/vmallocinfo will show "vmalloc" "vmap" "ioremap" "sparse" categories for different kinds of address regions. ioremap, sparse will return zero when dumped through /proc/kcore Alexei Starovoitov (2): mm: Enforce VM_IOREMAP flag and range in ioremap_page_range. mm: Introduce VM_SPARSE kind and vm_area_[un]map_pages(). include/linux/vmalloc.h | 5 +++ mm/vmalloc.c | 72 +++++++++++++++++++++++++++++++++++++++-- 2 files changed, 75 insertions(+), 2 deletions(-)