Re: [PATCH v4 0/3] arm64: support page mapping percpu first chunk allocator

From: Kefeng Wang
Date: Sun Oct 10 2021 - 21:10:01 EST




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.