From: Dan Carpenter <dan.carpenter@xxxxxxxxxx> > Sent: 05 December 2024 15:16 > > Add David to the CC list. I've been forwarded this one before. It is not unreasonable really. Is all stems from order_base_2(totalram_pages()). order_base_2(n) is 'n > 1 ? ilog2(n - 1) + 1 : 0'. And the compiler is generating two copies of the code. (Basically optimising for the zero case.) And the one for totalram_pages() being zero hits the check in clamp(). Flipping to clamp(max_avail, min, max) will stop it bleating. More interesting would be 'launder' the 0 in order_base_2(). By adding something like: #define optimiser_hide_val(x) ({ \ __auto_type(_x) = (x); \ optimiser_hide_var(_x); \ _x; \ }) and change order_base_2() to be: n > 1 ? ilog2(n - 1) + 1 : optimiser_hide_val(0); (ISTR there is a split for constant v non-constant before then.) David > > regards, > dan carpenter > > On Thu, Dec 05, 2024 at 08:15:13PM +0530, Naresh Kamboju wrote: > > The arm64 build started failing from Linux next-20241203 tag with gcc-8 > > due to following build warnings / errors. > > > > First seen on Linux next-20241203 tag > > GOOD: Linux next-20241128 tag > > BAD: Linux next-20241203 tag and next-20241205 tag > > > > * arm64, build > > - gcc-8-defconfig > > - gcc-8-defconfig-40bc7ee5 > > > > Reported-by: Linux Kernel Functional Testing <lkft@xxxxxxxxxx> > > > > Build log: > > =========== > > net/netfilter/ipvs/ip_vs_conn.c: In function 'ip_vs_conn_init': > > include/linux/compiler_types.h:542:38: error: call to > > '__compiletime_assert_1050' declared with attribute error: clamp() low > > limit min greater than high limit max_avail > > _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) > > ^ > > include/linux/compiler_types.h:523:4: note: in definition of macro > > '__compiletime_assert' > > prefix ## suffix(); \ > > ^~~~~~ > > include/linux/compiler_types.h:542:2: note: in expansion of macro > > '_compiletime_assert' > > _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) > > ^~~~~~~~~~~~~~~~~~~ > > include/linux/build_bug.h:39:37: note: in expansion of macro > > 'compiletime_assert' > > #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) > > ^~~~~~~~~~~~~~~~~~ > > include/linux/minmax.h:188:2: note: in expansion of macro 'BUILD_BUG_ON_MSG' > > BUILD_BUG_ON_MSG(statically_true(ulo > uhi), \ > > ^~~~~~~~~~~~~~~~ > > include/linux/minmax.h:195:2: note: in expansion of macro '__clamp_once' > > __clamp_once(type, val, lo, hi, __UNIQUE_ID(v_), __UNIQUE_ID(l_), > > __UNIQUE_ID(h_)) > > ^~~~~~~~~~~~ > > include/linux/minmax.h:206:28: note: in expansion of macro '__careful_clamp' > > #define clamp(val, lo, hi) __careful_clamp(__auto_type, val, lo, hi) > > ^~~~~~~~~~~~~~~ > > net/netfilter/ipvs/ip_vs_conn.c:1498:8: note: in expansion of macro 'clamp' > > max = clamp(max, min, max_avail); > > ^~~~~ > > > > Links: > > --- > > - https://storage.tuxsuite.com/public/linaro/lkft/builds/2pjAOE9K3Dz9gRywrldKTyaXQoT/ > > - https://qa-reports.linaro.org/lkft/linux-next-master/build/next- > 20241203/testrun/26189105/suite/build/test/gcc-8-defconfig/log > > - https://qa-reports.linaro.org/lkft/linux-next-master/build/next- > 20241203/testrun/26189105/suite/build/test/gcc-8-defconfig/details/ > > - https://qa-reports.linaro.org/lkft/linux-next-master/build/next- > 20241203/testrun/26189105/suite/build/test/gcc-8-defconfig/history/ > > > > Steps to reproduce: > > ------------ > > # tuxmake --runtime podman --target-arch arm64 --toolchain gcc-8 > > --kconfig defconfig > > > > metadata: > > ---- > > git describe: next-20241203 > > git repo: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git > > git sha: c245a7a79602ccbee780c004c1e4abcda66aec32 > > kernel config: > > https://storage.tuxsuite.com/public/linaro/lkft/builds/2pjAOE9K3Dz9gRywrldKTyaXQoT/config > > build url: https://storage.tuxsuite.com/public/linaro/lkft/builds/2pjAOE9K3Dz9gRywrldKTyaXQoT/ > > toolchain: gcc-8 > > config: gcc-8-defconfig > > arch: arm64 > > > > -- > > Linaro LKFT > > https://lkft.linaro.org - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)