Re: [PATCH] HACK: disable instrumentation of xchg/cmpxchg

From: kernel test robot
Date: Mon Jul 05 2021 - 19:19:35 EST


Hi Mark,

I love your patch! Yet something to improve:

[auto build test ERROR on linux/master]
[also build test ERROR on linus/master next-20210701]
[cannot apply to asm-generic/master sparc-next/master v5.13]
[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]

url: https://github.com/0day-ci/linux/commits/Mark-Rutland/HACK-disable-instrumentation-of-xchg-cmpxchg/20210706-035817
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git c54b245d011855ea91c5beff07f1db74143ce614
config: xtensa-randconfig-r035-20210705 (attached as .config)
compiler: xtensa-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/077d46116045ef95775b35f74f003921cb21c955
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Mark-Rutland/HACK-disable-instrumentation-of-xchg-cmpxchg/20210706-035817
git checkout 077d46116045ef95775b35f74f003921cb21c955
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=xtensa

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

In file included from include/linux/init.h:5,
from lib/atomic64_test.c:10:
lib/atomic64_test.c: In function 'test_atomic':
>> lib/atomic64_test.c:75:9: error: implicit declaration of function 'atomic_arch_xchg'; did you mean 'atomic_long_xchg'? [-Werror=implicit-function-declaration]
75 | BUG_ON(atomic##bit##_##op(&v, ##args) != ret); \
| ^~~~~~
include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var'
58 | #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
| ^~~~
include/asm-generic/bug.h:183:32: note: in expansion of macro 'if'
183 | #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
| ^~
include/linux/compiler.h:48:24: note: in expansion of macro '__branch_check__'
48 | # define unlikely(x) (__branch_check__(x, 0, __builtin_constant_p(x)))
| ^~~~~~~~~~~~~~~~
include/asm-generic/bug.h:183:36: note: in expansion of macro 'unlikely'
183 | #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
| ^~~~~~~~
lib/atomic64_test.c:75:2: note: in expansion of macro 'BUG_ON'
75 | BUG_ON(atomic##bit##_##op(&v, ##args) != ret); \
| ^~~~~~
lib/atomic64_test.c:38:2: note: in expansion of macro 'TEST_ARGS'
38 | test(bit, op, ##args); \
| ^~~~
lib/atomic64_test.c:81:2: note: in expansion of macro 'FAMILY_TEST'
81 | FAMILY_TEST(TEST_ARGS, bit, xchg, init, init, new, new); \
| ^~~~~~~~~~~
lib/atomic64_test.c:141:2: note: in expansion of macro 'XCHG_FAMILY_TEST'
141 | XCHG_FAMILY_TEST(, v0, v1);
| ^~~~~~~~~~~~~~~~
>> lib/atomic64_test.c:75:9: error: implicit declaration of function 'atomic_arch_cmpxchg'; did you mean 'atomic_try_cmpxchg'? [-Werror=implicit-function-declaration]
75 | BUG_ON(atomic##bit##_##op(&v, ##args) != ret); \
| ^~~~~~
include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var'
58 | #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
| ^~~~
include/asm-generic/bug.h:183:32: note: in expansion of macro 'if'
183 | #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
| ^~
include/linux/compiler.h:48:24: note: in expansion of macro '__branch_check__'
48 | # define unlikely(x) (__branch_check__(x, 0, __builtin_constant_p(x)))
| ^~~~~~~~~~~~~~~~
include/asm-generic/bug.h:183:36: note: in expansion of macro 'unlikely'
183 | #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
| ^~~~~~~~
lib/atomic64_test.c:75:2: note: in expansion of macro 'BUG_ON'
75 | BUG_ON(atomic##bit##_##op(&v, ##args) != ret); \
| ^~~~~~
lib/atomic64_test.c:38:2: note: in expansion of macro 'TEST_ARGS'
38 | test(bit, op, ##args); \
| ^~~~
lib/atomic64_test.c:86:2: note: in expansion of macro 'FAMILY_TEST'
86 | FAMILY_TEST(TEST_ARGS, bit, cmpxchg, \
| ^~~~~~~~~~~
lib/atomic64_test.c:142:2: note: in expansion of macro 'CMPXCHG_FAMILY_TEST'
142 | CMPXCHG_FAMILY_TEST(, v0, v1, onestwos);
| ^~~~~~~~~~~~~~~~~~~
lib/atomic64_test.c: In function 'test_atomic64':
>> lib/atomic64_test.c:75:9: error: implicit declaration of function 'atomic64_arch_xchg'; did you mean 'atomic64_cmpxchg'? [-Werror=implicit-function-declaration]
75 | BUG_ON(atomic##bit##_##op(&v, ##args) != ret); \
| ^~~~~~
include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var'
58 | #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
| ^~~~
include/asm-generic/bug.h:183:32: note: in expansion of macro 'if'
183 | #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
| ^~
include/linux/compiler.h:48:24: note: in expansion of macro '__branch_check__'
48 | # define unlikely(x) (__branch_check__(x, 0, __builtin_constant_p(x)))
| ^~~~~~~~~~~~~~~~
include/asm-generic/bug.h:183:36: note: in expansion of macro 'unlikely'
183 | #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
| ^~~~~~~~
lib/atomic64_test.c:75:2: note: in expansion of macro 'BUG_ON'
75 | BUG_ON(atomic##bit##_##op(&v, ##args) != ret); \
| ^~~~~~
lib/atomic64_test.c:38:2: note: in expansion of macro 'TEST_ARGS'
38 | test(bit, op, ##args); \
| ^~~~
lib/atomic64_test.c:81:2: note: in expansion of macro 'FAMILY_TEST'
81 | FAMILY_TEST(TEST_ARGS, bit, xchg, init, init, new, new); \
| ^~~~~~~~~~~
lib/atomic64_test.c:203:2: note: in expansion of macro 'XCHG_FAMILY_TEST'
203 | XCHG_FAMILY_TEST(64, v0, v1);
| ^~~~~~~~~~~~~~~~
>> lib/atomic64_test.c:75:9: error: implicit declaration of function 'atomic64_arch_cmpxchg'; did you mean 'atomic64_try_cmpxchg'? [-Werror=implicit-function-declaration]
75 | BUG_ON(atomic##bit##_##op(&v, ##args) != ret); \
| ^~~~~~
include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var'
58 | #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
| ^~~~
include/asm-generic/bug.h:183:32: note: in expansion of macro 'if'
183 | #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
| ^~
include/linux/compiler.h:48:24: note: in expansion of macro '__branch_check__'
48 | # define unlikely(x) (__branch_check__(x, 0, __builtin_constant_p(x)))
| ^~~~~~~~~~~~~~~~
include/asm-generic/bug.h:183:36: note: in expansion of macro 'unlikely'
183 | #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
| ^~~~~~~~
lib/atomic64_test.c:75:2: note: in expansion of macro 'BUG_ON'
75 | BUG_ON(atomic##bit##_##op(&v, ##args) != ret); \
| ^~~~~~
lib/atomic64_test.c:38:2: note: in expansion of macro 'TEST_ARGS'
38 | test(bit, op, ##args); \
| ^~~~
lib/atomic64_test.c:86:2: note: in expansion of macro 'FAMILY_TEST'
86 | FAMILY_TEST(TEST_ARGS, bit, cmpxchg, \
| ^~~~~~~~~~~
lib/atomic64_test.c:204:2: note: in expansion of macro 'CMPXCHG_FAMILY_TEST'
204 | CMPXCHG_FAMILY_TEST(64, v0, v1, v2);
| ^~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors


vim +75 lib/atomic64_test.c

28aa2bda2211f4 Peter Zijlstra 2016-04-18 71
978e5a3692c3b6 Boqun Feng 2015-11-04 72 #define TEST_ARGS(bit, op, init, ret, expect, args...) \
978e5a3692c3b6 Boqun Feng 2015-11-04 73 do { \
978e5a3692c3b6 Boqun Feng 2015-11-04 74 atomic##bit##_set(&v, init); \
978e5a3692c3b6 Boqun Feng 2015-11-04 @75 BUG_ON(atomic##bit##_##op(&v, ##args) != ret); \
978e5a3692c3b6 Boqun Feng 2015-11-04 76 BUG_ON(atomic##bit##_read(&v) != expect); \
978e5a3692c3b6 Boqun Feng 2015-11-04 77 } while (0)
978e5a3692c3b6 Boqun Feng 2015-11-04 78

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip