Re: [PATCH v2] stackdepot: Make max number of pools build-time configurable

From: Matt Fleming
Date: Mon Jul 07 2025 - 08:06:09 EST


On Mon, Jul 7, 2025 at 7:40 AM Marco Elver <elver@xxxxxxxxxx> wrote:
>
> On Sat, 5 Jul 2025 at 08:01, kernel test robot <lkp@xxxxxxxxx> wrote:
> >
> > Hi Matt,
> >
> > kernel test robot noticed the following build errors:
> >
> > [auto build test ERROR on akpm-mm/mm-nonmm-unstable]
> > [also build test ERROR on linus/master v6.16-rc4 next-20250704]
> > [cannot apply to akpm-mm/mm-everything]
> > [If your patch is applied to the wrong git tree, kindly drop us a note.
> > And when submitting patch, we suggest to use '--base' as documented in
> > https://git-scm.com/docs/git-format-patch#_base_tree_information]
> >
> > url: https://github.com/intel-lab-lkp/linux/commits/Matt-Fleming/stackdepot-Make-max-number-of-pools-build-time-configurable/20250704-200804
> > base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-nonmm-unstable
> > patch link: https://lore.kernel.org/r/20250704120604.2688934-1-matt%40readmodwrite.com
> > patch subject: [PATCH v2] stackdepot: Make max number of pools build-time configurable
> > config: arm64-randconfig-001-20250705 (https://download.01.org/0day-ci/archive/20250705/202507051300.E0JSHxu1-lkp@xxxxxxxxx/config)
> > compiler: aarch64-linux-gcc (GCC) 10.5.0
> > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250705/202507051300.E0JSHxu1-lkp@xxxxxxxxx/reproduce)
> >
> > If you fix the issue in a separate patch/commit (i.e. not just a new version of
> > the same patch/commit), kindly add following tags
> > | Reported-by: kernel test robot <lkp@xxxxxxxxx>
> > | Closes: https://lore.kernel.org/oe-kbuild-all/202507051300.E0JSHxu1-lkp@xxxxxxxxx/
> >
> > All errors (new ones prefixed by >>):
> >
> > In file included from include/linux/init.h:5,
> > from include/linux/printk.h:6,
> > from include/asm-generic/bug.h:22,
> > from arch/arm64/include/asm/bug.h:26,
> > from include/linux/bug.h:5,
> > from include/linux/vfsdebug.h:5,
> > from include/linux/fs.h:5,
> > from include/linux/debugfs.h:15,
> > from lib/stackdepot.c:17:
> > >> include/linux/build_bug.h:78:41: error: static assertion failed: "DEPOT_MAX_POOLS <= (1LL << (DEPOT_POOL_INDEX_BITS)) - 1"
> > 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
> > | ^~~~~~~~~~~~~~
> > include/linux/build_bug.h:77:34: note: in expansion of macro '__static_assert'
> > 77 | #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
> > | ^~~~~~~~~~~~~~~
> > lib/stackdepot.c:42:1: note: in expansion of macro 'static_assert'
> > 42 | static_assert(DEPOT_MAX_POOLS <= (1LL << (DEPOT_POOL_INDEX_BITS)) - 1);
> > | ^~~~~~~~~~~~~
>
> This is odd. The randconfig here uses the default:
>
> > CONFIG_STACKDEPOT_MAX_POOLS=8192

Ugh, I see what's happened here. For this config, the expression evaluates to

static_assert(8192 <= 8191);

So the default needs to be 8191.