diff options
author | Andrii Nakryiko <andrii@kernel.org> | 2024-03-06 21:19:04 +0300 |
---|---|---|
committer | Andrii Nakryiko <andrii@kernel.org> | 2024-03-07 02:17:31 +0300 |
commit | 9a9d1d36050e486822dc54990c896761b04e7446 (patch) | |
tree | 97b3ec52194dd1296d16edda6288460a32cd2ef8 /tools/include | |
parent | 8f50d5c423551bfa259af792647a2f4799780ac5 (diff) | |
parent | e6f798225a31485e47a6e4f6aa07ee9fdf80c2cb (diff) | |
download | linux-9a9d1d36050e486822dc54990c896761b04e7446.tar.xz |
Merge branch 'mm-enforce-ioremap-address-space-and-introduce-sparse-vm_area'
Alexei Starovoitov says:
====================
mm: Enforce ioremap address space and introduce sparse vm_area
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
====================
Link: https://lore.kernel.org/r/20240305030516.41519-1-alexei.starovoitov@gmail.com
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Diffstat (limited to 'tools/include')
0 files changed, 0 insertions, 0 deletions