Hi Vlastimil & Baoquan, On Mon, Nov 14, 2022 at 06:58:13PM +0100, Vlastimil Babka wrote: > On 11/14/22 08:44, Baoquan He wrote: > > Hi, > > > > I reproduced the build failure according to lkp report and made a patch > > as below to fix it. > > > > From dae7dd9705015ce36db757e88c78802584f949b1 Mon Sep 17 00:00:00 2001 > > From: Baoquan He <bhe@xxxxxxxxxx> > > Date: Sun, 13 Nov 2022 18:08:27 +0800 > > Subject: [PATCH] percpu: adjust the value of PERCPU_DYNAMIC_EARLY_SIZE > > Content-type: text/plain > > > > LKP reported a build failure as below on the patch "mm/slub, percpu: > > correct the calculation of early percpu allocation size" > > Since I have that patch in slab.git exposed to -next, should I take this fix > too, to make things simpler? Dennis? > I don't have any problems with you running a fix, but I'm not quite sure this is the right fix. Though this might cause a trivial merge conflict with: d667c94962c1 ("mm/percpu: remove unused PERCPU_DYNAMIC_EARLY_SLOTS") in my percpu#for-6.2 branch. If I'm understanding this correctly, slub requires additional percpu memory due to the use of 64k pages. By increasing PERCPU_DYNAMIC_EARLY_SIZE, we solve the problem for 64k page users, but require a few unnecessary pages that can bloat the size of subsequent percpu chunks. Though, I'm not sure if that's an issue today for embedded devices. I think adding parity to PERCPU_DYNAMIC_EARLY_SIZE with PERCPU_DYNAMIC_RESERVE is defined by BITS_PER_LONG is a safer option here. A small TODO item would be to make PERCPU_DYNAMIC_RESERVE be a + value instead of a max() with PERCPU_DYNAMIC_EARLY_SIZE. Thanks, Dennis --- diff --git a/include/linux/percpu.h b/include/linux/percpu.h index f1ec5ad1351c..22ce3271eed2 100644 --- a/include/linux/percpu.h +++ b/include/linux/percpu.h @@ -42,7 +42,11 @@ * larger than PERCPU_DYNAMIC_EARLY_SIZE. */ #define PERCPU_DYNAMIC_EARLY_SLOTS 128 +#if BITS_PER_LONG > 32 +#define PERCPU_DYNAMIC_EARLY_SIZE (20 << 10) +#else #define PERCPU_DYNAMIC_EARLY_SIZE (12 << 10) +#endif /* * PERCPU_DYNAMIC_RESERVE indicates the amount of free area to piggy