On 2021/10/11 5:36, Andrew Morton wrote:
On Fri, 10 Sep 2021 13:33:51 +0800 Kefeng Wang <wangkefeng.wang@xxxxxxxxxx> wrote:
Percpu embedded first chunk allocator is the firstly option, but it
could fails on ARM64, eg,
"percpu: max_distance=0x5fcfdc640000 too large for vmalloc space 0x781fefff0000"
"percpu: max_distance=0x600000540000 too large for vmalloc space 0x7dffb7ff0000"
"percpu: max_distance=0x5fff9adb0000 too large for vmalloc space 0x5dffb7ff0000"
then we could meet "WARNING: CPU: 15 PID: 461 at vmalloc.c:3087 pcpu_get_vm_areas+0x488/0x838",
even the system could not boot successfully.
Let's implement page mapping percpu first chunk allocator as a fallback
to the embedding allocator to increase the robustness of the system.
Also fix a crash when both NEED_PER_CPU_PAGE_FIRST_CHUNK and KASAN_VMALLOC enabled.
How serious are these problems in real-world situations? Do people
feel that a -stable backport is needed, or is a 5.16-rc1 merge
sufficient?
.
Thanks Andrew.
A specific memory layout is required(also with KASAN enabled), we met
this issue at qemu and real hardware, due to KASAN enabled, so I think
5.16-rc1 is sufficient.