From: ZhangPeng zhangpeng362@huawei.com
This patch set includes two patch sets: Mitigate a vmap lock contention and mm/vmalloc: lock contention optimization under multi-threading.
In high-concurrency scenarios such as the "/test_vmalloc.sh run_test_mask=7 nr_threads=64" scenario, the performance is improved by more than 10x. The run time was reduced from 18m45.268s to 1m45.066s.
Changelog: v1->v2: - Remove 2 maillist inclusion patches - Merged patch 21 to resolve the conflict in patch 16
Alexei Starovoitov (3): mm: Enforce VM_IOREMAP flag and range in ioremap_page_range. mm: Introduce VM_SPARSE kind and vm_area_[un]map_pages(). mm: Introduce vmap_page_range() to map pages in PCI address space
Baoquan He (2): mm/vmalloc: fix the unchecked dereference warning in vread_iter() mm/vmalloc: remove vmap_area_list
Uladzislau Rezki (Sony) (13): mm: vmalloc: add va_alloc() helper mm: vmalloc: rename adjust_va_to_fit_type() function mm: vmalloc: move vmap_init_free_space() down in vmalloc.c mm: vmalloc: remove global vmap_area_root rb-tree mm: vmalloc: remove global purge_vmap_area_root rb-tree mm: vmalloc: offload free_vmap_area_lock lock mm: vmalloc: add a scan area of VA only once mm: vmalloc: support multiple nodes in vread_iter mm: vmalloc: support multiple nodes in vmallocinfo mm: vmalloc: set nr_nodes based on CPUs in a system mm: vmalloc: add a shrinker to drain vmap pools mm: vmalloc: improve description of vmap node layer mm: vmalloc: refactor vmalloc_dump_obj() function
.../admin-guide/kdump/vmcoreinfo.rst | 8 +- arch/arm/mm/ioremap.c | 8 +- arch/arm64/kernel/crash_core.c | 1 - arch/loongarch/kernel/setup.c | 2 +- arch/mips/loongson64/init.c | 2 +- arch/powerpc/kernel/isa-bridge.c | 4 +- arch/riscv/kernel/crash_core.c | 1 - drivers/pci/pci.c | 4 +- include/linux/io.h | 7 + include/linux/vmalloc.h | 6 +- kernel/crash_core.c | 4 +- kernel/kallsyms_selftest.c | 1 - mm/nommu.c | 2 - mm/vmalloc.c | 1156 +++++++++++++---- 14 files changed, 914 insertions(+), 292 deletions(-)