* [PATCH net-next 0/3] net: update netdev_rx_csum_fault() print dump only once @ 2021-04-22 19:47 Tanner Love 2021-04-22 19:47 ` [PATCH net-next 1/3] once: implement DO_ONCE_LITE for non-fast-path "do once" functionality Tanner Love ` (2 more replies) 0 siblings, 3 replies; 11+ messages in thread From: Tanner Love @ 2021-04-22 19:47 UTC (permalink / raw) To: netdev; +Cc: davem, Tanner Love From: Tanner Love <tannerlove@google.com> First two patches implement DO_ONCE_LITE for non-fast-path "do once" functionality. Third patch uses the feature in netdev_rx_csum_fault to print dump only once. Tanner Love (3): once: implement DO_ONCE_LITE for non-fast-path "do once" functionality once: replace uses of __section(".data.once") with DO_ONCE_LITE(_IF)? net: update netdev_rx_csum_fault() print dump only once fs/xfs/xfs_message.h | 13 +++---------- include/asm-generic/bug.h | 37 +++++++------------------------------ include/linux/once.h | 16 ++++++++++++++++ include/linux/printk.h | 23 +++-------------------- kernel/trace/trace.h | 13 +++---------- net/core/dev.c | 10 +++++++--- 6 files changed, 39 insertions(+), 73 deletions(-) -- 2.31.1.498.g6c1eba8ee3d-goog ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH net-next 1/3] once: implement DO_ONCE_LITE for non-fast-path "do once" functionality 2021-04-22 19:47 [PATCH net-next 0/3] net: update netdev_rx_csum_fault() print dump only once Tanner Love @ 2021-04-22 19:47 ` Tanner Love 2021-04-22 19:47 ` [PATCH net-next 2/3] once: replace uses of __section(".data.once") with DO_ONCE_LITE(_IF)? Tanner Love 2021-04-22 19:47 ` [PATCH net-next 3/3] net: update netdev_rx_csum_fault() print dump only once Tanner Love 2 siblings, 0 replies; 11+ messages in thread From: Tanner Love @ 2021-04-22 19:47 UTC (permalink / raw) To: netdev; +Cc: davem, Tanner Love, Eric Dumazet, Mahesh Bandewar From: Tanner Love <tannerlove@google.com> Certain uses of "do once" functionality (such as many occurrences of static bool __section(".data.once")) reside outside of fast path, and thus do not require jump label patching via static keys. Implement DO_ONCE_LITE, which offers this "do once" functionality without using static keys. Implement DO_ONCE_LITE_IF, which offers the same functionality but gated by a condition test. This is common in current uses of static bool __section(".data.once"). Signed-off-by: Tanner Love <tannerlove@google.com> Acked-by: Eric Dumazet <edumazet@google.com> Acked-by: Mahesh Bandewar <maheshb@google.com> --- include/linux/once.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/include/linux/once.h b/include/linux/once.h index 9225ee6d96c7..a92bb213f817 100644 --- a/include/linux/once.h +++ b/include/linux/once.h @@ -52,6 +52,22 @@ void __do_once_done(bool *done, struct static_key_true *once_key, ___ret; \ }) +/* Call a function once. Similar to DO_ONCE(), but does not use jump label + * patching via static keys. + */ +#define DO_ONCE_LITE(func, ...) \ + DO_ONCE_LITE_IF(true, func, ##__VA_ARGS__) +#define DO_ONCE_LITE_IF(condition, func, ...) \ + ({ \ + static bool __section(".data.once") __already_done; \ + bool __ret_do_once = !!(condition); \ + \ + if (unlikely(__ret_do_once && !__already_done)) { \ + __already_done = true; \ + func(__VA_ARGS__); \ + } \ + unlikely(__ret_do_once); \ + }) #define get_random_once(buf, nbytes) \ DO_ONCE(get_random_bytes, (buf), (nbytes)) #define get_random_once_wait(buf, nbytes) \ -- 2.31.1.498.g6c1eba8ee3d-goog ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH net-next 2/3] once: replace uses of __section(".data.once") with DO_ONCE_LITE(_IF)? 2021-04-22 19:47 [PATCH net-next 0/3] net: update netdev_rx_csum_fault() print dump only once Tanner Love 2021-04-22 19:47 ` [PATCH net-next 1/3] once: implement DO_ONCE_LITE for non-fast-path "do once" functionality Tanner Love @ 2021-04-22 19:47 ` Tanner Love 2021-04-22 21:23 ` kernel test robot ` (2 more replies) 2021-04-22 19:47 ` [PATCH net-next 3/3] net: update netdev_rx_csum_fault() print dump only once Tanner Love 2 siblings, 3 replies; 11+ messages in thread From: Tanner Love @ 2021-04-22 19:47 UTC (permalink / raw) To: netdev; +Cc: davem, Tanner Love, Eric Dumazet, Mahesh Bandewar From: Tanner Love <tannerlove@google.com> DO_ONCE_LITE(_IF)? abstracts this "do once" functionality, presenting an opportunity for code reuse. This commit changes the behavior of xfs_printk_once, printk_once and printk_deferred_once. Before, these macros resulted in code ultimately evaluating to __print_once. Now, they ultimately evaluate to true. This is acceptable because none of the clients of these macros relies on the value. Signed-off-by: Tanner Love <tannerlove@google.com> Acked-by: Eric Dumazet <edumazet@google.com> Acked-by: Mahesh Bandewar <maheshb@google.com> --- fs/xfs/xfs_message.h | 13 +++---------- include/asm-generic/bug.h | 37 +++++++------------------------------ include/linux/printk.h | 23 +++-------------------- kernel/trace/trace.h | 13 +++---------- 4 files changed, 16 insertions(+), 70 deletions(-) diff --git a/fs/xfs/xfs_message.h b/fs/xfs/xfs_message.h index 3c392b1512ac..e587e8df6e73 100644 --- a/fs/xfs/xfs_message.h +++ b/fs/xfs/xfs_message.h @@ -2,6 +2,8 @@ #ifndef __XFS_MESSAGE_H #define __XFS_MESSAGE_H 1 +#include <linux/once.h> + struct xfs_mount; extern __printf(2, 3) @@ -41,16 +43,7 @@ do { \ } while (0) #define xfs_printk_once(func, dev, fmt, ...) \ -({ \ - static bool __section(".data.once") __print_once; \ - bool __ret_print_once = !__print_once; \ - \ - if (!__print_once) { \ - __print_once = true; \ - func(dev, fmt, ##__VA_ARGS__); \ - } \ - unlikely(__ret_print_once); \ -}) + DO_ONCE_LITE(func, dev, fmt, ##__VA_ARGS__) #define xfs_emerg_ratelimited(dev, fmt, ...) \ xfs_printk_ratelimited(xfs_emerg, dev, fmt, ##__VA_ARGS__) diff --git a/include/asm-generic/bug.h b/include/asm-generic/bug.h index 76a10e0dca9f..c93adb63780e 100644 --- a/include/asm-generic/bug.h +++ b/include/asm-generic/bug.h @@ -4,6 +4,7 @@ #include <linux/compiler.h> #include <linux/instrumentation.h> +#include <linux/once.h> #define CUT_HERE "------------[ cut here ]------------\n" @@ -140,39 +141,15 @@ void __warn(const char *file, int line, void *caller, unsigned taint, }) #ifndef WARN_ON_ONCE -#define WARN_ON_ONCE(condition) ({ \ - static bool __section(".data.once") __warned; \ - int __ret_warn_once = !!(condition); \ - \ - if (unlikely(__ret_warn_once && !__warned)) { \ - __warned = true; \ - WARN_ON(1); \ - } \ - unlikely(__ret_warn_once); \ -}) +#define WARN_ON_ONCE(condition) \ + DO_ONCE_LITE_IF(condition, WARN_ON, 1) #endif -#define WARN_ONCE(condition, format...) ({ \ - static bool __section(".data.once") __warned; \ - int __ret_warn_once = !!(condition); \ - \ - if (unlikely(__ret_warn_once && !__warned)) { \ - __warned = true; \ - WARN(1, format); \ - } \ - unlikely(__ret_warn_once); \ -}) +#define WARN_ONCE(condition, format...) \ + DO_ONCE_LITE_IF(condition, WARN, 1, format) -#define WARN_TAINT_ONCE(condition, taint, format...) ({ \ - static bool __section(".data.once") __warned; \ - int __ret_warn_once = !!(condition); \ - \ - if (unlikely(__ret_warn_once && !__warned)) { \ - __warned = true; \ - WARN_TAINT(1, taint, format); \ - } \ - unlikely(__ret_warn_once); \ -}) +#define WARN_TAINT_ONCE(condition, taint, format...) \ + DO_ONCE_LITE_IF(condition, WARN_TAINT, 1, taint, format) #else /* !CONFIG_BUG */ #ifndef HAVE_ARCH_BUG diff --git a/include/linux/printk.h b/include/linux/printk.h index fe7eb2351610..f706be99f0b6 100644 --- a/include/linux/printk.h +++ b/include/linux/printk.h @@ -8,6 +8,7 @@ #include <linux/linkage.h> #include <linux/cache.h> #include <linux/ratelimit_types.h> +#include <linux/once.h> extern const char linux_banner[]; extern const char linux_proc_banner[]; @@ -436,27 +437,9 @@ extern int kptr_restrict; #ifdef CONFIG_PRINTK #define printk_once(fmt, ...) \ -({ \ - static bool __section(".data.once") __print_once; \ - bool __ret_print_once = !__print_once; \ - \ - if (!__print_once) { \ - __print_once = true; \ - printk(fmt, ##__VA_ARGS__); \ - } \ - unlikely(__ret_print_once); \ -}) + DO_ONCE_LITE(printk, fmt, ##__VA_ARGS__) #define printk_deferred_once(fmt, ...) \ -({ \ - static bool __section(".data.once") __print_once; \ - bool __ret_print_once = !__print_once; \ - \ - if (!__print_once) { \ - __print_once = true; \ - printk_deferred(fmt, ##__VA_ARGS__); \ - } \ - unlikely(__ret_print_once); \ -}) + DO_ONCE_LITE(printk_deferred, fmt, ##__VA_ARGS__) #else #define printk_once(fmt, ...) \ no_printk(fmt, ##__VA_ARGS__) diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h index a6446c03cfbc..8c868e5b4525 100644 --- a/kernel/trace/trace.h +++ b/kernel/trace/trace.h @@ -20,6 +20,7 @@ #include <linux/irq_work.h> #include <linux/workqueue.h> #include <linux/ctype.h> +#include <linux/once.h> #ifdef CONFIG_FTRACE_SYSCALLS #include <asm/unistd.h> /* For NR_SYSCALLS */ @@ -98,16 +99,8 @@ enum trace_type { #include "trace_entries.h" /* Use this for memory failure errors */ -#define MEM_FAIL(condition, fmt, ...) ({ \ - static bool __section(".data.once") __warned; \ - int __ret_warn_once = !!(condition); \ - \ - if (unlikely(__ret_warn_once && !__warned)) { \ - __warned = true; \ - pr_err("ERROR: " fmt, ##__VA_ARGS__); \ - } \ - unlikely(__ret_warn_once); \ -}) +#define MEM_FAIL(condition, fmt, ...) \ + DO_ONCE_LITE_IF(condition, pr_err, "ERROR: " fmt, ##__VA_ARGS__) /* * syscalls are special, and need special handling, this is why -- 2.31.1.498.g6c1eba8ee3d-goog ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH net-next 2/3] once: replace uses of __section(".data.once") with DO_ONCE_LITE(_IF)? 2021-04-22 19:47 ` [PATCH net-next 2/3] once: replace uses of __section(".data.once") with DO_ONCE_LITE(_IF)? Tanner Love @ 2021-04-22 21:23 ` kernel test robot 2021-04-22 22:28 ` kernel test robot 2021-04-22 22:28 ` kernel test robot 2 siblings, 0 replies; 11+ messages in thread From: kernel test robot @ 2021-04-22 21:23 UTC (permalink / raw) To: Tanner Love, netdev Cc: kbuild-all, davem, Tanner Love, Eric Dumazet, Mahesh Bandewar [-- Attachment #1: Type: text/plain, Size: 5229 bytes --] Hi Tanner, Thank you for the patch! Yet something to improve: [auto build test ERROR on net-next/master] url: https://github.com/0day-ci/linux/commits/Tanner-Love/net-update-netdev_rx_csum_fault-print-dump-only-once/20210423-034958 base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 5d869070569a23aa909c6e7e9d010fc438a492ef config: i386-tinyconfig (attached as .config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 reproduce (this is a W=1 build): # https://github.com/0day-ci/linux/commit/eaeb33f0f85f70fc4e5fbae1e2344e9c6867c840 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Tanner-Love/net-update-netdev_rx_csum_fault-print-dump-only-once/20210423-034958 git checkout eaeb33f0f85f70fc4e5fbae1e2344e9c6867c840 # save the attached .config to linux build tree make W=1 W=1 ARCH=i386 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All errors (new ones prefixed by >>): In file included from include/linux/once.h:6, from include/asm-generic/bug.h:7, from arch/x86/include/asm/bug.h:93, from include/linux/bug.h:5, from include/linux/page-flags.h:10, from kernel/bounds.c:10: include/linux/jump_label.h: In function 'static_key_slow_inc': >> include/linux/jump_label.h:81:35: error: implicit declaration of function 'WARN' [-Werror=implicit-function-declaration] 81 | #define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \ | ^~~~ include/linux/jump_label.h:278:2: note: in expansion of macro 'STATIC_KEY_CHECK_USE' 278 | STATIC_KEY_CHECK_USE(key); | ^~~~~~~~~~~~~~~~~~~~ In file included from include/linux/once.h:6, from include/asm-generic/bug.h:7, from arch/x86/include/asm/bug.h:93, from include/linux/bug.h:5, from include/linux/page-flags.h:10, from kernel/bounds.c:10: include/linux/jump_label.h: In function 'static_key_enable': >> include/linux/jump_label.h:309:3: error: implicit declaration of function 'WARN_ON_ONCE' [-Werror=implicit-function-declaration] 309 | WARN_ON_ONCE(atomic_read(&key->enabled) != 1); | ^~~~~~~~~~~~ cc1: some warnings being treated as errors -- In file included from include/linux/once.h:6, from include/asm-generic/bug.h:7, from arch/x86/include/asm/bug.h:93, from include/linux/bug.h:5, from include/linux/page-flags.h:10, from kernel/bounds.c:10: include/linux/jump_label.h: In function 'static_key_slow_inc': >> include/linux/jump_label.h:81:35: error: implicit declaration of function 'WARN' [-Werror=implicit-function-declaration] 81 | #define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \ | ^~~~ include/linux/jump_label.h:278:2: note: in expansion of macro 'STATIC_KEY_CHECK_USE' 278 | STATIC_KEY_CHECK_USE(key); | ^~~~~~~~~~~~~~~~~~~~ In file included from include/linux/once.h:6, from include/asm-generic/bug.h:7, from arch/x86/include/asm/bug.h:93, from include/linux/bug.h:5, from include/linux/page-flags.h:10, from kernel/bounds.c:10: include/linux/jump_label.h: In function 'static_key_enable': >> include/linux/jump_label.h:309:3: error: implicit declaration of function 'WARN_ON_ONCE' [-Werror=implicit-function-declaration] 309 | WARN_ON_ONCE(atomic_read(&key->enabled) != 1); | ^~~~~~~~~~~~ cc1: some warnings being treated as errors make[2]: *** [scripts/Makefile.build:116: kernel/bounds.s] Error 1 make[2]: Target '__build' not remade because of errors. make[1]: *** [Makefile:1235: prepare0] Error 2 make[1]: Target 'prepare' not remade because of errors. make: *** [Makefile:215: __sub-make] Error 2 make: Target 'prepare' not remade because of errors. vim +/WARN_ON_ONCE +309 include/linux/jump_label.h b202952075f626 Gleb Natapov 2011-11-27 303 e33886b38cc82a Peter Zijlstra 2015-07-24 304 static inline void static_key_enable(struct static_key *key) e33886b38cc82a Peter Zijlstra 2015-07-24 305 { 5cdda5117e125e Borislav Petkov 2017-10-18 306 STATIC_KEY_CHECK_USE(key); e33886b38cc82a Peter Zijlstra 2015-07-24 307 1dbb6704de91b1 Paolo Bonzini 2017-08-01 308 if (atomic_read(&key->enabled) != 0) { 1dbb6704de91b1 Paolo Bonzini 2017-08-01 @309 WARN_ON_ONCE(atomic_read(&key->enabled) != 1); 1dbb6704de91b1 Paolo Bonzini 2017-08-01 310 return; 1dbb6704de91b1 Paolo Bonzini 2017-08-01 311 } 1dbb6704de91b1 Paolo Bonzini 2017-08-01 312 atomic_set(&key->enabled, 1); e33886b38cc82a Peter Zijlstra 2015-07-24 313 } e33886b38cc82a Peter Zijlstra 2015-07-24 314 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org [-- Attachment #2: .config.gz --] [-- Type: application/gzip, Size: 7357 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH net-next 2/3] once: replace uses of __section(".data.once") with DO_ONCE_LITE(_IF)? @ 2021-04-22 21:23 ` kernel test robot 0 siblings, 0 replies; 11+ messages in thread From: kernel test robot @ 2021-04-22 21:23 UTC (permalink / raw) To: kbuild-all [-- Attachment #1: Type: text/plain, Size: 5329 bytes --] Hi Tanner, Thank you for the patch! Yet something to improve: [auto build test ERROR on net-next/master] url: https://github.com/0day-ci/linux/commits/Tanner-Love/net-update-netdev_rx_csum_fault-print-dump-only-once/20210423-034958 base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 5d869070569a23aa909c6e7e9d010fc438a492ef config: i386-tinyconfig (attached as .config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 reproduce (this is a W=1 build): # https://github.com/0day-ci/linux/commit/eaeb33f0f85f70fc4e5fbae1e2344e9c6867c840 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Tanner-Love/net-update-netdev_rx_csum_fault-print-dump-only-once/20210423-034958 git checkout eaeb33f0f85f70fc4e5fbae1e2344e9c6867c840 # save the attached .config to linux build tree make W=1 W=1 ARCH=i386 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All errors (new ones prefixed by >>): In file included from include/linux/once.h:6, from include/asm-generic/bug.h:7, from arch/x86/include/asm/bug.h:93, from include/linux/bug.h:5, from include/linux/page-flags.h:10, from kernel/bounds.c:10: include/linux/jump_label.h: In function 'static_key_slow_inc': >> include/linux/jump_label.h:81:35: error: implicit declaration of function 'WARN' [-Werror=implicit-function-declaration] 81 | #define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \ | ^~~~ include/linux/jump_label.h:278:2: note: in expansion of macro 'STATIC_KEY_CHECK_USE' 278 | STATIC_KEY_CHECK_USE(key); | ^~~~~~~~~~~~~~~~~~~~ In file included from include/linux/once.h:6, from include/asm-generic/bug.h:7, from arch/x86/include/asm/bug.h:93, from include/linux/bug.h:5, from include/linux/page-flags.h:10, from kernel/bounds.c:10: include/linux/jump_label.h: In function 'static_key_enable': >> include/linux/jump_label.h:309:3: error: implicit declaration of function 'WARN_ON_ONCE' [-Werror=implicit-function-declaration] 309 | WARN_ON_ONCE(atomic_read(&key->enabled) != 1); | ^~~~~~~~~~~~ cc1: some warnings being treated as errors -- In file included from include/linux/once.h:6, from include/asm-generic/bug.h:7, from arch/x86/include/asm/bug.h:93, from include/linux/bug.h:5, from include/linux/page-flags.h:10, from kernel/bounds.c:10: include/linux/jump_label.h: In function 'static_key_slow_inc': >> include/linux/jump_label.h:81:35: error: implicit declaration of function 'WARN' [-Werror=implicit-function-declaration] 81 | #define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \ | ^~~~ include/linux/jump_label.h:278:2: note: in expansion of macro 'STATIC_KEY_CHECK_USE' 278 | STATIC_KEY_CHECK_USE(key); | ^~~~~~~~~~~~~~~~~~~~ In file included from include/linux/once.h:6, from include/asm-generic/bug.h:7, from arch/x86/include/asm/bug.h:93, from include/linux/bug.h:5, from include/linux/page-flags.h:10, from kernel/bounds.c:10: include/linux/jump_label.h: In function 'static_key_enable': >> include/linux/jump_label.h:309:3: error: implicit declaration of function 'WARN_ON_ONCE' [-Werror=implicit-function-declaration] 309 | WARN_ON_ONCE(atomic_read(&key->enabled) != 1); | ^~~~~~~~~~~~ cc1: some warnings being treated as errors make[2]: *** [scripts/Makefile.build:116: kernel/bounds.s] Error 1 make[2]: Target '__build' not remade because of errors. make[1]: *** [Makefile:1235: prepare0] Error 2 make[1]: Target 'prepare' not remade because of errors. make: *** [Makefile:215: __sub-make] Error 2 make: Target 'prepare' not remade because of errors. vim +/WARN_ON_ONCE +309 include/linux/jump_label.h b202952075f626 Gleb Natapov 2011-11-27 303 e33886b38cc82a Peter Zijlstra 2015-07-24 304 static inline void static_key_enable(struct static_key *key) e33886b38cc82a Peter Zijlstra 2015-07-24 305 { 5cdda5117e125e Borislav Petkov 2017-10-18 306 STATIC_KEY_CHECK_USE(key); e33886b38cc82a Peter Zijlstra 2015-07-24 307 1dbb6704de91b1 Paolo Bonzini 2017-08-01 308 if (atomic_read(&key->enabled) != 0) { 1dbb6704de91b1 Paolo Bonzini 2017-08-01 @309 WARN_ON_ONCE(atomic_read(&key->enabled) != 1); 1dbb6704de91b1 Paolo Bonzini 2017-08-01 310 return; 1dbb6704de91b1 Paolo Bonzini 2017-08-01 311 } 1dbb6704de91b1 Paolo Bonzini 2017-08-01 312 atomic_set(&key->enabled, 1); e33886b38cc82a Peter Zijlstra 2015-07-24 313 } e33886b38cc82a Peter Zijlstra 2015-07-24 314 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org [-- Attachment #2: config.gz --] [-- Type: application/gzip, Size: 7357 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH net-next 2/3] once: replace uses of __section(".data.once") with DO_ONCE_LITE(_IF)? 2021-04-22 19:47 ` [PATCH net-next 2/3] once: replace uses of __section(".data.once") with DO_ONCE_LITE(_IF)? Tanner Love @ 2021-04-22 22:28 ` kernel test robot 2021-04-22 22:28 ` kernel test robot 2021-04-22 22:28 ` kernel test robot 2 siblings, 0 replies; 11+ messages in thread From: kernel test robot @ 2021-04-22 22:28 UTC (permalink / raw) To: Tanner Love, netdev Cc: kbuild-all, clang-built-linux, davem, Tanner Love, Eric Dumazet, Mahesh Bandewar [-- Attachment #1: Type: text/plain, Size: 28438 bytes --] Hi Tanner, Thank you for the patch! Yet something to improve: [auto build test ERROR on net-next/master] url: https://github.com/0day-ci/linux/commits/Tanner-Love/net-update-netdev_rx_csum_fault-print-dump-only-once/20210423-034958 base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 5d869070569a23aa909c6e7e9d010fc438a492ef config: powerpc-randconfig-r011-20210421 (attached as .config) compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project f5446b769a7929806f72256fccd4826d66502e59) 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 # install powerpc cross compiling tool for clang build # apt-get install binutils-powerpc-linux-gnu # https://github.com/0day-ci/linux/commit/eaeb33f0f85f70fc4e5fbae1e2344e9c6867c840 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Tanner-Love/net-update-netdev_rx_csum_fault-print-dump-only-once/20210423-034958 git checkout eaeb33f0f85f70fc4e5fbae1e2344e9c6867c840 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=powerpc If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All errors (new ones prefixed by >>): In file included from kernel/bounds.c:10: In file included from include/linux/page-flags.h:10: In file included from include/linux/bug.h:5: In file included from arch/powerpc/include/asm/bug.h:109: In file included from include/asm-generic/bug.h:7: In file included from include/linux/once.h:6: In file included from include/linux/jump_label.h:249: In file included from include/linux/atomic.h:7: In file included from arch/powerpc/include/asm/atomic.h:11: >> arch/powerpc/include/asm/cmpxchg.h:80:1: error: use of undeclared identifier 'BITS_PER_BYTE' XCHG_GEN(u8, _local, "memory"); ^ arch/powerpc/include/asm/cmpxchg.h:22:11: note: expanded from macro 'XCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:81:1: error: use of undeclared identifier 'BITS_PER_BYTE' XCHG_GEN(u8, _relaxed, "cc"); ^ arch/powerpc/include/asm/cmpxchg.h:22:11: note: expanded from macro 'XCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:82:1: error: use of undeclared identifier 'BITS_PER_BYTE' XCHG_GEN(u16, _local, "memory"); ^ arch/powerpc/include/asm/cmpxchg.h:22:11: note: expanded from macro 'XCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:83:1: error: use of undeclared identifier 'BITS_PER_BYTE' XCHG_GEN(u16, _relaxed, "cc"); ^ arch/powerpc/include/asm/cmpxchg.h:22:11: note: expanded from macro 'XCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ >> arch/powerpc/include/asm/cmpxchg.h:166:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration] BUILD_BUG_ON_MSG(1, "Unsupported size for __xchg"); ^ arch/powerpc/include/asm/cmpxchg.h:185:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration] BUILD_BUG_ON_MSG(1, "Unsupported size for __xchg_local"); ^ arch/powerpc/include/asm/cmpxchg.h:206:1: error: use of undeclared identifier 'BITS_PER_BYTE' CMPXCHG_GEN(u8, , PPC_ATOMIC_ENTRY_BARRIER, PPC_ATOMIC_EXIT_BARRIER, "memory"); ^ arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:207:1: error: use of undeclared identifier 'BITS_PER_BYTE' CMPXCHG_GEN(u8, _local, , , "memory"); ^ arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:208:1: error: use of undeclared identifier 'BITS_PER_BYTE' CMPXCHG_GEN(u8, _acquire, , PPC_ACQUIRE_BARRIER, "memory"); ^ arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:209:1: error: use of undeclared identifier 'BITS_PER_BYTE' CMPXCHG_GEN(u8, _relaxed, , , "cc"); ^ arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:210:1: error: use of undeclared identifier 'BITS_PER_BYTE' CMPXCHG_GEN(u16, , PPC_ATOMIC_ENTRY_BARRIER, PPC_ATOMIC_EXIT_BARRIER, "memory"); ^ arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:211:1: error: use of undeclared identifier 'BITS_PER_BYTE' CMPXCHG_GEN(u16, _local, , , "memory"); ^ arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:212:1: error: use of undeclared identifier 'BITS_PER_BYTE' CMPXCHG_GEN(u16, _acquire, , PPC_ACQUIRE_BARRIER, "memory"); ^ arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:213:1: error: use of undeclared identifier 'BITS_PER_BYTE' CMPXCHG_GEN(u16, _relaxed, , , "cc"); ^ arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:407:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration] BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg"); ^ arch/powerpc/include/asm/cmpxchg.h:427:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration] BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg_local"); ^ arch/powerpc/include/asm/cmpxchg.h:447:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration] BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg_relaxed"); ^ arch/powerpc/include/asm/cmpxchg.h:467:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration] BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg_acquire"); ^ In file included from kernel/bounds.c:10: In file included from include/linux/page-flags.h:10: In file included from include/linux/bug.h:5: In file included from arch/powerpc/include/asm/bug.h:109: In file included from include/asm-generic/bug.h:7: In file included from include/linux/once.h:6: In file included from include/linux/jump_label.h:249: In file included from include/linux/atomic.h:7: In file included from arch/powerpc/include/asm/atomic.h:11: In file included from arch/powerpc/include/asm/cmpxchg.h:526: In file included from include/asm-generic/cmpxchg-local.h:6: In file included from include/linux/irqflags.h:16: In file included from arch/powerpc/include/asm/irqflags.h:12: In file included from arch/powerpc/include/asm/hw_irq.h:12: In file included from arch/powerpc/include/asm/ptrace.h:264: In file included from include/linux/thread_info.h:59: In file included from arch/powerpc/include/asm/thread_info.h:13: In file included from arch/powerpc/include/asm/page.h:249: >> arch/powerpc/include/asm/page_32.h:48:2: error: implicit declaration of function '__WARN' [-Werror,-Wimplicit-function-declaration] WARN_ON((unsigned long)addr & (L1_CACHE_BYTES - 1)); ^ arch/powerpc/include/asm/bug.h:87:4: note: expanded from macro 'WARN_ON' __WARN(); \ ^ fatal error: too many errors emitted, stopping now [-ferror-limit=] 20 errors generated. -- In file included from kernel/bounds.c:10: In file included from include/linux/page-flags.h:10: In file included from include/linux/bug.h:5: In file included from arch/powerpc/include/asm/bug.h:109: In file included from include/asm-generic/bug.h:7: In file included from include/linux/once.h:6: In file included from include/linux/jump_label.h:249: In file included from include/linux/atomic.h:7: In file included from arch/powerpc/include/asm/atomic.h:11: >> arch/powerpc/include/asm/cmpxchg.h:80:1: error: use of undeclared identifier 'BITS_PER_BYTE' XCHG_GEN(u8, _local, "memory"); ^ arch/powerpc/include/asm/cmpxchg.h:22:11: note: expanded from macro 'XCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:81:1: error: use of undeclared identifier 'BITS_PER_BYTE' XCHG_GEN(u8, _relaxed, "cc"); ^ arch/powerpc/include/asm/cmpxchg.h:22:11: note: expanded from macro 'XCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:82:1: error: use of undeclared identifier 'BITS_PER_BYTE' XCHG_GEN(u16, _local, "memory"); ^ arch/powerpc/include/asm/cmpxchg.h:22:11: note: expanded from macro 'XCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:83:1: error: use of undeclared identifier 'BITS_PER_BYTE' XCHG_GEN(u16, _relaxed, "cc"); ^ arch/powerpc/include/asm/cmpxchg.h:22:11: note: expanded from macro 'XCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ >> arch/powerpc/include/asm/cmpxchg.h:166:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration] BUILD_BUG_ON_MSG(1, "Unsupported size for __xchg"); ^ arch/powerpc/include/asm/cmpxchg.h:185:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration] BUILD_BUG_ON_MSG(1, "Unsupported size for __xchg_local"); ^ arch/powerpc/include/asm/cmpxchg.h:206:1: error: use of undeclared identifier 'BITS_PER_BYTE' CMPXCHG_GEN(u8, , PPC_ATOMIC_ENTRY_BARRIER, PPC_ATOMIC_EXIT_BARRIER, "memory"); ^ arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:207:1: error: use of undeclared identifier 'BITS_PER_BYTE' CMPXCHG_GEN(u8, _local, , , "memory"); ^ arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:208:1: error: use of undeclared identifier 'BITS_PER_BYTE' CMPXCHG_GEN(u8, _acquire, , PPC_ACQUIRE_BARRIER, "memory"); ^ arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:209:1: error: use of undeclared identifier 'BITS_PER_BYTE' CMPXCHG_GEN(u8, _relaxed, , , "cc"); ^ arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:210:1: error: use of undeclared identifier 'BITS_PER_BYTE' CMPXCHG_GEN(u16, , PPC_ATOMIC_ENTRY_BARRIER, PPC_ATOMIC_EXIT_BARRIER, "memory"); ^ arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:211:1: error: use of undeclared identifier 'BITS_PER_BYTE' CMPXCHG_GEN(u16, _local, , , "memory"); ^ arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:212:1: error: use of undeclared identifier 'BITS_PER_BYTE' CMPXCHG_GEN(u16, _acquire, , PPC_ACQUIRE_BARRIER, "memory"); ^ arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:213:1: error: use of undeclared identifier 'BITS_PER_BYTE' CMPXCHG_GEN(u16, _relaxed, , , "cc"); ^ arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:407:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration] BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg"); ^ arch/powerpc/include/asm/cmpxchg.h:427:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration] BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg_local"); ^ arch/powerpc/include/asm/cmpxchg.h:447:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration] BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg_relaxed"); ^ arch/powerpc/include/asm/cmpxchg.h:467:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration] BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg_acquire"); ^ In file included from kernel/bounds.c:10: In file included from include/linux/page-flags.h:10: In file included from include/linux/bug.h:5: In file included from arch/powerpc/include/asm/bug.h:109: In file included from include/asm-generic/bug.h:7: In file included from include/linux/once.h:6: In file included from include/linux/jump_label.h:249: In file included from include/linux/atomic.h:7: In file included from arch/powerpc/include/asm/atomic.h:11: In file included from arch/powerpc/include/asm/cmpxchg.h:526: In file included from include/asm-generic/cmpxchg-local.h:6: In file included from include/linux/irqflags.h:16: In file included from arch/powerpc/include/asm/irqflags.h:12: In file included from arch/powerpc/include/asm/hw_irq.h:12: In file included from arch/powerpc/include/asm/ptrace.h:264: In file included from include/linux/thread_info.h:59: In file included from arch/powerpc/include/asm/thread_info.h:13: In file included from arch/powerpc/include/asm/page.h:249: >> arch/powerpc/include/asm/page_32.h:48:2: error: implicit declaration of function '__WARN' [-Werror,-Wimplicit-function-declaration] WARN_ON((unsigned long)addr & (L1_CACHE_BYTES - 1)); ^ arch/powerpc/include/asm/bug.h:87:4: note: expanded from macro 'WARN_ON' __WARN(); \ ^ fatal error: too many errors emitted, stopping now [-ferror-limit=] 20 errors generated. make[2]: *** [scripts/Makefile.build:116: kernel/bounds.s] Error 1 make[2]: Target '__build' not remade because of errors. make[1]: *** [Makefile:1235: prepare0] Error 2 make[1]: Target 'modules_prepare' not remade because of errors. make: *** [Makefile:215: __sub-make] Error 2 make: Target 'modules_prepare' not remade because of errors. .. vim +/BITS_PER_BYTE +80 arch/powerpc/include/asm/cmpxchg.h d0563a1297e234 Pan Xinhui 2016-04-27 72 ae3a197e3d0bfe David Howells 2012-03-28 73 /* ae3a197e3d0bfe David Howells 2012-03-28 74 * Atomic exchange ae3a197e3d0bfe David Howells 2012-03-28 75 * 26760fc19a7e66 Boqun Feng 2015-12-15 76 * Changes the memory location '*p' to be val and returns ae3a197e3d0bfe David Howells 2012-03-28 77 * the previous value stored there. ae3a197e3d0bfe David Howells 2012-03-28 78 */ 26760fc19a7e66 Boqun Feng 2015-12-15 79 d0563a1297e234 Pan Xinhui 2016-04-27 @80 XCHG_GEN(u8, _local, "memory"); d0563a1297e234 Pan Xinhui 2016-04-27 81 XCHG_GEN(u8, _relaxed, "cc"); d0563a1297e234 Pan Xinhui 2016-04-27 82 XCHG_GEN(u16, _local, "memory"); d0563a1297e234 Pan Xinhui 2016-04-27 83 XCHG_GEN(u16, _relaxed, "cc"); d0563a1297e234 Pan Xinhui 2016-04-27 84 ae3a197e3d0bfe David Howells 2012-03-28 85 static __always_inline unsigned long 26760fc19a7e66 Boqun Feng 2015-12-15 86 __xchg_u32_local(volatile void *p, unsigned long val) ae3a197e3d0bfe David Howells 2012-03-28 87 { ae3a197e3d0bfe David Howells 2012-03-28 88 unsigned long prev; ae3a197e3d0bfe David Howells 2012-03-28 89 ae3a197e3d0bfe David Howells 2012-03-28 90 __asm__ __volatile__( ae3a197e3d0bfe David Howells 2012-03-28 91 "1: lwarx %0,0,%2 \n" ae3a197e3d0bfe David Howells 2012-03-28 92 " stwcx. %3,0,%2 \n\ ae3a197e3d0bfe David Howells 2012-03-28 93 bne- 1b" ae3a197e3d0bfe David Howells 2012-03-28 94 : "=&r" (prev), "+m" (*(volatile unsigned int *)p) ae3a197e3d0bfe David Howells 2012-03-28 95 : "r" (p), "r" (val) ae3a197e3d0bfe David Howells 2012-03-28 96 : "cc", "memory"); ae3a197e3d0bfe David Howells 2012-03-28 97 ae3a197e3d0bfe David Howells 2012-03-28 98 return prev; ae3a197e3d0bfe David Howells 2012-03-28 99 } ae3a197e3d0bfe David Howells 2012-03-28 100 ae3a197e3d0bfe David Howells 2012-03-28 101 static __always_inline unsigned long 26760fc19a7e66 Boqun Feng 2015-12-15 102 __xchg_u32_relaxed(u32 *p, unsigned long val) ae3a197e3d0bfe David Howells 2012-03-28 103 { ae3a197e3d0bfe David Howells 2012-03-28 104 unsigned long prev; ae3a197e3d0bfe David Howells 2012-03-28 105 ae3a197e3d0bfe David Howells 2012-03-28 106 __asm__ __volatile__( ae3a197e3d0bfe David Howells 2012-03-28 107 "1: lwarx %0,0,%2\n" 26760fc19a7e66 Boqun Feng 2015-12-15 108 " stwcx. %3,0,%2\n" 26760fc19a7e66 Boqun Feng 2015-12-15 109 " bne- 1b" 26760fc19a7e66 Boqun Feng 2015-12-15 110 : "=&r" (prev), "+m" (*p) ae3a197e3d0bfe David Howells 2012-03-28 111 : "r" (p), "r" (val) 26760fc19a7e66 Boqun Feng 2015-12-15 112 : "cc"); ae3a197e3d0bfe David Howells 2012-03-28 113 ae3a197e3d0bfe David Howells 2012-03-28 114 return prev; ae3a197e3d0bfe David Howells 2012-03-28 115 } ae3a197e3d0bfe David Howells 2012-03-28 116 ae3a197e3d0bfe David Howells 2012-03-28 117 #ifdef CONFIG_PPC64 ae3a197e3d0bfe David Howells 2012-03-28 118 static __always_inline unsigned long 26760fc19a7e66 Boqun Feng 2015-12-15 119 __xchg_u64_local(volatile void *p, unsigned long val) ae3a197e3d0bfe David Howells 2012-03-28 120 { ae3a197e3d0bfe David Howells 2012-03-28 121 unsigned long prev; ae3a197e3d0bfe David Howells 2012-03-28 122 ae3a197e3d0bfe David Howells 2012-03-28 123 __asm__ __volatile__( ae3a197e3d0bfe David Howells 2012-03-28 124 "1: ldarx %0,0,%2 \n" ae3a197e3d0bfe David Howells 2012-03-28 125 " stdcx. %3,0,%2 \n\ ae3a197e3d0bfe David Howells 2012-03-28 126 bne- 1b" ae3a197e3d0bfe David Howells 2012-03-28 127 : "=&r" (prev), "+m" (*(volatile unsigned long *)p) ae3a197e3d0bfe David Howells 2012-03-28 128 : "r" (p), "r" (val) ae3a197e3d0bfe David Howells 2012-03-28 129 : "cc", "memory"); ae3a197e3d0bfe David Howells 2012-03-28 130 ae3a197e3d0bfe David Howells 2012-03-28 131 return prev; ae3a197e3d0bfe David Howells 2012-03-28 132 } ae3a197e3d0bfe David Howells 2012-03-28 133 ae3a197e3d0bfe David Howells 2012-03-28 134 static __always_inline unsigned long 26760fc19a7e66 Boqun Feng 2015-12-15 135 __xchg_u64_relaxed(u64 *p, unsigned long val) ae3a197e3d0bfe David Howells 2012-03-28 136 { ae3a197e3d0bfe David Howells 2012-03-28 137 unsigned long prev; ae3a197e3d0bfe David Howells 2012-03-28 138 ae3a197e3d0bfe David Howells 2012-03-28 139 __asm__ __volatile__( ae3a197e3d0bfe David Howells 2012-03-28 140 "1: ldarx %0,0,%2\n" 26760fc19a7e66 Boqun Feng 2015-12-15 141 " stdcx. %3,0,%2\n" 26760fc19a7e66 Boqun Feng 2015-12-15 142 " bne- 1b" 26760fc19a7e66 Boqun Feng 2015-12-15 143 : "=&r" (prev), "+m" (*p) ae3a197e3d0bfe David Howells 2012-03-28 144 : "r" (p), "r" (val) 26760fc19a7e66 Boqun Feng 2015-12-15 145 : "cc"); ae3a197e3d0bfe David Howells 2012-03-28 146 ae3a197e3d0bfe David Howells 2012-03-28 147 return prev; ae3a197e3d0bfe David Howells 2012-03-28 148 } ae3a197e3d0bfe David Howells 2012-03-28 149 #endif ae3a197e3d0bfe David Howells 2012-03-28 150 ae3a197e3d0bfe David Howells 2012-03-28 151 static __always_inline unsigned long d0563a1297e234 Pan Xinhui 2016-04-27 152 __xchg_local(void *ptr, unsigned long x, unsigned int size) ae3a197e3d0bfe David Howells 2012-03-28 153 { ae3a197e3d0bfe David Howells 2012-03-28 154 switch (size) { d0563a1297e234 Pan Xinhui 2016-04-27 155 case 1: d0563a1297e234 Pan Xinhui 2016-04-27 156 return __xchg_u8_local(ptr, x); d0563a1297e234 Pan Xinhui 2016-04-27 157 case 2: d0563a1297e234 Pan Xinhui 2016-04-27 158 return __xchg_u16_local(ptr, x); ae3a197e3d0bfe David Howells 2012-03-28 159 case 4: 26760fc19a7e66 Boqun Feng 2015-12-15 160 return __xchg_u32_local(ptr, x); ae3a197e3d0bfe David Howells 2012-03-28 161 #ifdef CONFIG_PPC64 ae3a197e3d0bfe David Howells 2012-03-28 162 case 8: 26760fc19a7e66 Boqun Feng 2015-12-15 163 return __xchg_u64_local(ptr, x); ae3a197e3d0bfe David Howells 2012-03-28 164 #endif ae3a197e3d0bfe David Howells 2012-03-28 165 } 10d8b1480e6966 pan xinhui 2016-02-23 @166 BUILD_BUG_ON_MSG(1, "Unsupported size for __xchg"); ae3a197e3d0bfe David Howells 2012-03-28 167 return x; ae3a197e3d0bfe David Howells 2012-03-28 168 } ae3a197e3d0bfe David Howells 2012-03-28 169 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org [-- Attachment #2: .config.gz --] [-- Type: application/gzip, Size: 30148 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH net-next 2/3] once: replace uses of __section(".data.once") with DO_ONCE_LITE(_IF)? @ 2021-04-22 22:28 ` kernel test robot 0 siblings, 0 replies; 11+ messages in thread From: kernel test robot @ 2021-04-22 22:28 UTC (permalink / raw) To: kbuild-all [-- Attachment #1: Type: text/plain, Size: 28903 bytes --] Hi Tanner, Thank you for the patch! Yet something to improve: [auto build test ERROR on net-next/master] url: https://github.com/0day-ci/linux/commits/Tanner-Love/net-update-netdev_rx_csum_fault-print-dump-only-once/20210423-034958 base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 5d869070569a23aa909c6e7e9d010fc438a492ef config: powerpc-randconfig-r011-20210421 (attached as .config) compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project f5446b769a7929806f72256fccd4826d66502e59) 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 # install powerpc cross compiling tool for clang build # apt-get install binutils-powerpc-linux-gnu # https://github.com/0day-ci/linux/commit/eaeb33f0f85f70fc4e5fbae1e2344e9c6867c840 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Tanner-Love/net-update-netdev_rx_csum_fault-print-dump-only-once/20210423-034958 git checkout eaeb33f0f85f70fc4e5fbae1e2344e9c6867c840 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=powerpc If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All errors (new ones prefixed by >>): In file included from kernel/bounds.c:10: In file included from include/linux/page-flags.h:10: In file included from include/linux/bug.h:5: In file included from arch/powerpc/include/asm/bug.h:109: In file included from include/asm-generic/bug.h:7: In file included from include/linux/once.h:6: In file included from include/linux/jump_label.h:249: In file included from include/linux/atomic.h:7: In file included from arch/powerpc/include/asm/atomic.h:11: >> arch/powerpc/include/asm/cmpxchg.h:80:1: error: use of undeclared identifier 'BITS_PER_BYTE' XCHG_GEN(u8, _local, "memory"); ^ arch/powerpc/include/asm/cmpxchg.h:22:11: note: expanded from macro 'XCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:81:1: error: use of undeclared identifier 'BITS_PER_BYTE' XCHG_GEN(u8, _relaxed, "cc"); ^ arch/powerpc/include/asm/cmpxchg.h:22:11: note: expanded from macro 'XCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:82:1: error: use of undeclared identifier 'BITS_PER_BYTE' XCHG_GEN(u16, _local, "memory"); ^ arch/powerpc/include/asm/cmpxchg.h:22:11: note: expanded from macro 'XCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:83:1: error: use of undeclared identifier 'BITS_PER_BYTE' XCHG_GEN(u16, _relaxed, "cc"); ^ arch/powerpc/include/asm/cmpxchg.h:22:11: note: expanded from macro 'XCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ >> arch/powerpc/include/asm/cmpxchg.h:166:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration] BUILD_BUG_ON_MSG(1, "Unsupported size for __xchg"); ^ arch/powerpc/include/asm/cmpxchg.h:185:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration] BUILD_BUG_ON_MSG(1, "Unsupported size for __xchg_local"); ^ arch/powerpc/include/asm/cmpxchg.h:206:1: error: use of undeclared identifier 'BITS_PER_BYTE' CMPXCHG_GEN(u8, , PPC_ATOMIC_ENTRY_BARRIER, PPC_ATOMIC_EXIT_BARRIER, "memory"); ^ arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:207:1: error: use of undeclared identifier 'BITS_PER_BYTE' CMPXCHG_GEN(u8, _local, , , "memory"); ^ arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:208:1: error: use of undeclared identifier 'BITS_PER_BYTE' CMPXCHG_GEN(u8, _acquire, , PPC_ACQUIRE_BARRIER, "memory"); ^ arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:209:1: error: use of undeclared identifier 'BITS_PER_BYTE' CMPXCHG_GEN(u8, _relaxed, , , "cc"); ^ arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:210:1: error: use of undeclared identifier 'BITS_PER_BYTE' CMPXCHG_GEN(u16, , PPC_ATOMIC_ENTRY_BARRIER, PPC_ATOMIC_EXIT_BARRIER, "memory"); ^ arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:211:1: error: use of undeclared identifier 'BITS_PER_BYTE' CMPXCHG_GEN(u16, _local, , , "memory"); ^ arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:212:1: error: use of undeclared identifier 'BITS_PER_BYTE' CMPXCHG_GEN(u16, _acquire, , PPC_ACQUIRE_BARRIER, "memory"); ^ arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:213:1: error: use of undeclared identifier 'BITS_PER_BYTE' CMPXCHG_GEN(u16, _relaxed, , , "cc"); ^ arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:407:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration] BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg"); ^ arch/powerpc/include/asm/cmpxchg.h:427:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration] BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg_local"); ^ arch/powerpc/include/asm/cmpxchg.h:447:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration] BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg_relaxed"); ^ arch/powerpc/include/asm/cmpxchg.h:467:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration] BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg_acquire"); ^ In file included from kernel/bounds.c:10: In file included from include/linux/page-flags.h:10: In file included from include/linux/bug.h:5: In file included from arch/powerpc/include/asm/bug.h:109: In file included from include/asm-generic/bug.h:7: In file included from include/linux/once.h:6: In file included from include/linux/jump_label.h:249: In file included from include/linux/atomic.h:7: In file included from arch/powerpc/include/asm/atomic.h:11: In file included from arch/powerpc/include/asm/cmpxchg.h:526: In file included from include/asm-generic/cmpxchg-local.h:6: In file included from include/linux/irqflags.h:16: In file included from arch/powerpc/include/asm/irqflags.h:12: In file included from arch/powerpc/include/asm/hw_irq.h:12: In file included from arch/powerpc/include/asm/ptrace.h:264: In file included from include/linux/thread_info.h:59: In file included from arch/powerpc/include/asm/thread_info.h:13: In file included from arch/powerpc/include/asm/page.h:249: >> arch/powerpc/include/asm/page_32.h:48:2: error: implicit declaration of function '__WARN' [-Werror,-Wimplicit-function-declaration] WARN_ON((unsigned long)addr & (L1_CACHE_BYTES - 1)); ^ arch/powerpc/include/asm/bug.h:87:4: note: expanded from macro 'WARN_ON' __WARN(); \ ^ fatal error: too many errors emitted, stopping now [-ferror-limit=] 20 errors generated. -- In file included from kernel/bounds.c:10: In file included from include/linux/page-flags.h:10: In file included from include/linux/bug.h:5: In file included from arch/powerpc/include/asm/bug.h:109: In file included from include/asm-generic/bug.h:7: In file included from include/linux/once.h:6: In file included from include/linux/jump_label.h:249: In file included from include/linux/atomic.h:7: In file included from arch/powerpc/include/asm/atomic.h:11: >> arch/powerpc/include/asm/cmpxchg.h:80:1: error: use of undeclared identifier 'BITS_PER_BYTE' XCHG_GEN(u8, _local, "memory"); ^ arch/powerpc/include/asm/cmpxchg.h:22:11: note: expanded from macro 'XCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:81:1: error: use of undeclared identifier 'BITS_PER_BYTE' XCHG_GEN(u8, _relaxed, "cc"); ^ arch/powerpc/include/asm/cmpxchg.h:22:11: note: expanded from macro 'XCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:82:1: error: use of undeclared identifier 'BITS_PER_BYTE' XCHG_GEN(u16, _local, "memory"); ^ arch/powerpc/include/asm/cmpxchg.h:22:11: note: expanded from macro 'XCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:83:1: error: use of undeclared identifier 'BITS_PER_BYTE' XCHG_GEN(u16, _relaxed, "cc"); ^ arch/powerpc/include/asm/cmpxchg.h:22:11: note: expanded from macro 'XCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ >> arch/powerpc/include/asm/cmpxchg.h:166:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration] BUILD_BUG_ON_MSG(1, "Unsupported size for __xchg"); ^ arch/powerpc/include/asm/cmpxchg.h:185:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration] BUILD_BUG_ON_MSG(1, "Unsupported size for __xchg_local"); ^ arch/powerpc/include/asm/cmpxchg.h:206:1: error: use of undeclared identifier 'BITS_PER_BYTE' CMPXCHG_GEN(u8, , PPC_ATOMIC_ENTRY_BARRIER, PPC_ATOMIC_EXIT_BARRIER, "memory"); ^ arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:207:1: error: use of undeclared identifier 'BITS_PER_BYTE' CMPXCHG_GEN(u8, _local, , , "memory"); ^ arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:208:1: error: use of undeclared identifier 'BITS_PER_BYTE' CMPXCHG_GEN(u8, _acquire, , PPC_ACQUIRE_BARRIER, "memory"); ^ arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:209:1: error: use of undeclared identifier 'BITS_PER_BYTE' CMPXCHG_GEN(u8, _relaxed, , , "cc"); ^ arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:210:1: error: use of undeclared identifier 'BITS_PER_BYTE' CMPXCHG_GEN(u16, , PPC_ATOMIC_ENTRY_BARRIER, PPC_ATOMIC_EXIT_BARRIER, "memory"); ^ arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:211:1: error: use of undeclared identifier 'BITS_PER_BYTE' CMPXCHG_GEN(u16, _local, , , "memory"); ^ arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:212:1: error: use of undeclared identifier 'BITS_PER_BYTE' CMPXCHG_GEN(u16, _acquire, , PPC_ACQUIRE_BARRIER, "memory"); ^ arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:213:1: error: use of undeclared identifier 'BITS_PER_BYTE' CMPXCHG_GEN(u16, _relaxed, , , "cc"); ^ arch/powerpc/include/asm/cmpxchg.h:47:11: note: expanded from macro 'CMPXCHG_GEN' bitoff = BITOFF_CAL(sizeof(type), off); \ ^ arch/powerpc/include/asm/cmpxchg.h:11:61: note: expanded from macro 'BITOFF_CAL' #define BITOFF_CAL(size, off) ((sizeof(u32) - size - off) * BITS_PER_BYTE) ^ arch/powerpc/include/asm/cmpxchg.h:407:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration] BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg"); ^ arch/powerpc/include/asm/cmpxchg.h:427:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration] BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg_local"); ^ arch/powerpc/include/asm/cmpxchg.h:447:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration] BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg_relaxed"); ^ arch/powerpc/include/asm/cmpxchg.h:467:2: error: implicit declaration of function 'BUILD_BUG_ON_MSG' [-Werror,-Wimplicit-function-declaration] BUILD_BUG_ON_MSG(1, "Unsupported size for __cmpxchg_acquire"); ^ In file included from kernel/bounds.c:10: In file included from include/linux/page-flags.h:10: In file included from include/linux/bug.h:5: In file included from arch/powerpc/include/asm/bug.h:109: In file included from include/asm-generic/bug.h:7: In file included from include/linux/once.h:6: In file included from include/linux/jump_label.h:249: In file included from include/linux/atomic.h:7: In file included from arch/powerpc/include/asm/atomic.h:11: In file included from arch/powerpc/include/asm/cmpxchg.h:526: In file included from include/asm-generic/cmpxchg-local.h:6: In file included from include/linux/irqflags.h:16: In file included from arch/powerpc/include/asm/irqflags.h:12: In file included from arch/powerpc/include/asm/hw_irq.h:12: In file included from arch/powerpc/include/asm/ptrace.h:264: In file included from include/linux/thread_info.h:59: In file included from arch/powerpc/include/asm/thread_info.h:13: In file included from arch/powerpc/include/asm/page.h:249: >> arch/powerpc/include/asm/page_32.h:48:2: error: implicit declaration of function '__WARN' [-Werror,-Wimplicit-function-declaration] WARN_ON((unsigned long)addr & (L1_CACHE_BYTES - 1)); ^ arch/powerpc/include/asm/bug.h:87:4: note: expanded from macro 'WARN_ON' __WARN(); \ ^ fatal error: too many errors emitted, stopping now [-ferror-limit=] 20 errors generated. make[2]: *** [scripts/Makefile.build:116: kernel/bounds.s] Error 1 make[2]: Target '__build' not remade because of errors. make[1]: *** [Makefile:1235: prepare0] Error 2 make[1]: Target 'modules_prepare' not remade because of errors. make: *** [Makefile:215: __sub-make] Error 2 make: Target 'modules_prepare' not remade because of errors. .. vim +/BITS_PER_BYTE +80 arch/powerpc/include/asm/cmpxchg.h d0563a1297e234 Pan Xinhui 2016-04-27 72 ae3a197e3d0bfe David Howells 2012-03-28 73 /* ae3a197e3d0bfe David Howells 2012-03-28 74 * Atomic exchange ae3a197e3d0bfe David Howells 2012-03-28 75 * 26760fc19a7e66 Boqun Feng 2015-12-15 76 * Changes the memory location '*p' to be val and returns ae3a197e3d0bfe David Howells 2012-03-28 77 * the previous value stored there. ae3a197e3d0bfe David Howells 2012-03-28 78 */ 26760fc19a7e66 Boqun Feng 2015-12-15 79 d0563a1297e234 Pan Xinhui 2016-04-27 @80 XCHG_GEN(u8, _local, "memory"); d0563a1297e234 Pan Xinhui 2016-04-27 81 XCHG_GEN(u8, _relaxed, "cc"); d0563a1297e234 Pan Xinhui 2016-04-27 82 XCHG_GEN(u16, _local, "memory"); d0563a1297e234 Pan Xinhui 2016-04-27 83 XCHG_GEN(u16, _relaxed, "cc"); d0563a1297e234 Pan Xinhui 2016-04-27 84 ae3a197e3d0bfe David Howells 2012-03-28 85 static __always_inline unsigned long 26760fc19a7e66 Boqun Feng 2015-12-15 86 __xchg_u32_local(volatile void *p, unsigned long val) ae3a197e3d0bfe David Howells 2012-03-28 87 { ae3a197e3d0bfe David Howells 2012-03-28 88 unsigned long prev; ae3a197e3d0bfe David Howells 2012-03-28 89 ae3a197e3d0bfe David Howells 2012-03-28 90 __asm__ __volatile__( ae3a197e3d0bfe David Howells 2012-03-28 91 "1: lwarx %0,0,%2 \n" ae3a197e3d0bfe David Howells 2012-03-28 92 " stwcx. %3,0,%2 \n\ ae3a197e3d0bfe David Howells 2012-03-28 93 bne- 1b" ae3a197e3d0bfe David Howells 2012-03-28 94 : "=&r" (prev), "+m" (*(volatile unsigned int *)p) ae3a197e3d0bfe David Howells 2012-03-28 95 : "r" (p), "r" (val) ae3a197e3d0bfe David Howells 2012-03-28 96 : "cc", "memory"); ae3a197e3d0bfe David Howells 2012-03-28 97 ae3a197e3d0bfe David Howells 2012-03-28 98 return prev; ae3a197e3d0bfe David Howells 2012-03-28 99 } ae3a197e3d0bfe David Howells 2012-03-28 100 ae3a197e3d0bfe David Howells 2012-03-28 101 static __always_inline unsigned long 26760fc19a7e66 Boqun Feng 2015-12-15 102 __xchg_u32_relaxed(u32 *p, unsigned long val) ae3a197e3d0bfe David Howells 2012-03-28 103 { ae3a197e3d0bfe David Howells 2012-03-28 104 unsigned long prev; ae3a197e3d0bfe David Howells 2012-03-28 105 ae3a197e3d0bfe David Howells 2012-03-28 106 __asm__ __volatile__( ae3a197e3d0bfe David Howells 2012-03-28 107 "1: lwarx %0,0,%2\n" 26760fc19a7e66 Boqun Feng 2015-12-15 108 " stwcx. %3,0,%2\n" 26760fc19a7e66 Boqun Feng 2015-12-15 109 " bne- 1b" 26760fc19a7e66 Boqun Feng 2015-12-15 110 : "=&r" (prev), "+m" (*p) ae3a197e3d0bfe David Howells 2012-03-28 111 : "r" (p), "r" (val) 26760fc19a7e66 Boqun Feng 2015-12-15 112 : "cc"); ae3a197e3d0bfe David Howells 2012-03-28 113 ae3a197e3d0bfe David Howells 2012-03-28 114 return prev; ae3a197e3d0bfe David Howells 2012-03-28 115 } ae3a197e3d0bfe David Howells 2012-03-28 116 ae3a197e3d0bfe David Howells 2012-03-28 117 #ifdef CONFIG_PPC64 ae3a197e3d0bfe David Howells 2012-03-28 118 static __always_inline unsigned long 26760fc19a7e66 Boqun Feng 2015-12-15 119 __xchg_u64_local(volatile void *p, unsigned long val) ae3a197e3d0bfe David Howells 2012-03-28 120 { ae3a197e3d0bfe David Howells 2012-03-28 121 unsigned long prev; ae3a197e3d0bfe David Howells 2012-03-28 122 ae3a197e3d0bfe David Howells 2012-03-28 123 __asm__ __volatile__( ae3a197e3d0bfe David Howells 2012-03-28 124 "1: ldarx %0,0,%2 \n" ae3a197e3d0bfe David Howells 2012-03-28 125 " stdcx. %3,0,%2 \n\ ae3a197e3d0bfe David Howells 2012-03-28 126 bne- 1b" ae3a197e3d0bfe David Howells 2012-03-28 127 : "=&r" (prev), "+m" (*(volatile unsigned long *)p) ae3a197e3d0bfe David Howells 2012-03-28 128 : "r" (p), "r" (val) ae3a197e3d0bfe David Howells 2012-03-28 129 : "cc", "memory"); ae3a197e3d0bfe David Howells 2012-03-28 130 ae3a197e3d0bfe David Howells 2012-03-28 131 return prev; ae3a197e3d0bfe David Howells 2012-03-28 132 } ae3a197e3d0bfe David Howells 2012-03-28 133 ae3a197e3d0bfe David Howells 2012-03-28 134 static __always_inline unsigned long 26760fc19a7e66 Boqun Feng 2015-12-15 135 __xchg_u64_relaxed(u64 *p, unsigned long val) ae3a197e3d0bfe David Howells 2012-03-28 136 { ae3a197e3d0bfe David Howells 2012-03-28 137 unsigned long prev; ae3a197e3d0bfe David Howells 2012-03-28 138 ae3a197e3d0bfe David Howells 2012-03-28 139 __asm__ __volatile__( ae3a197e3d0bfe David Howells 2012-03-28 140 "1: ldarx %0,0,%2\n" 26760fc19a7e66 Boqun Feng 2015-12-15 141 " stdcx. %3,0,%2\n" 26760fc19a7e66 Boqun Feng 2015-12-15 142 " bne- 1b" 26760fc19a7e66 Boqun Feng 2015-12-15 143 : "=&r" (prev), "+m" (*p) ae3a197e3d0bfe David Howells 2012-03-28 144 : "r" (p), "r" (val) 26760fc19a7e66 Boqun Feng 2015-12-15 145 : "cc"); ae3a197e3d0bfe David Howells 2012-03-28 146 ae3a197e3d0bfe David Howells 2012-03-28 147 return prev; ae3a197e3d0bfe David Howells 2012-03-28 148 } ae3a197e3d0bfe David Howells 2012-03-28 149 #endif ae3a197e3d0bfe David Howells 2012-03-28 150 ae3a197e3d0bfe David Howells 2012-03-28 151 static __always_inline unsigned long d0563a1297e234 Pan Xinhui 2016-04-27 152 __xchg_local(void *ptr, unsigned long x, unsigned int size) ae3a197e3d0bfe David Howells 2012-03-28 153 { ae3a197e3d0bfe David Howells 2012-03-28 154 switch (size) { d0563a1297e234 Pan Xinhui 2016-04-27 155 case 1: d0563a1297e234 Pan Xinhui 2016-04-27 156 return __xchg_u8_local(ptr, x); d0563a1297e234 Pan Xinhui 2016-04-27 157 case 2: d0563a1297e234 Pan Xinhui 2016-04-27 158 return __xchg_u16_local(ptr, x); ae3a197e3d0bfe David Howells 2012-03-28 159 case 4: 26760fc19a7e66 Boqun Feng 2015-12-15 160 return __xchg_u32_local(ptr, x); ae3a197e3d0bfe David Howells 2012-03-28 161 #ifdef CONFIG_PPC64 ae3a197e3d0bfe David Howells 2012-03-28 162 case 8: 26760fc19a7e66 Boqun Feng 2015-12-15 163 return __xchg_u64_local(ptr, x); ae3a197e3d0bfe David Howells 2012-03-28 164 #endif ae3a197e3d0bfe David Howells 2012-03-28 165 } 10d8b1480e6966 pan xinhui 2016-02-23 @166 BUILD_BUG_ON_MSG(1, "Unsupported size for __xchg"); ae3a197e3d0bfe David Howells 2012-03-28 167 return x; ae3a197e3d0bfe David Howells 2012-03-28 168 } ae3a197e3d0bfe David Howells 2012-03-28 169 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org [-- Attachment #2: config.gz --] [-- Type: application/gzip, Size: 30148 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH net-next 2/3] once: replace uses of __section(".data.once") with DO_ONCE_LITE(_IF)? 2021-04-22 19:47 ` [PATCH net-next 2/3] once: replace uses of __section(".data.once") with DO_ONCE_LITE(_IF)? Tanner Love @ 2021-04-22 22:28 ` kernel test robot 2021-04-22 22:28 ` kernel test robot 2021-04-22 22:28 ` kernel test robot 2 siblings, 0 replies; 11+ messages in thread From: kernel test robot @ 2021-04-22 22:28 UTC (permalink / raw) To: Tanner Love, netdev Cc: kbuild-all, clang-built-linux, davem, Tanner Love, Eric Dumazet, Mahesh Bandewar [-- Attachment #1: Type: text/plain, Size: 7387 bytes --] Hi Tanner, Thank you for the patch! Yet something to improve: [auto build test ERROR on net-next/master] url: https://github.com/0day-ci/linux/commits/Tanner-Love/net-update-netdev_rx_csum_fault-print-dump-only-once/20210423-034958 base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 5d869070569a23aa909c6e7e9d010fc438a492ef config: s390-randconfig-r014-20210421 (attached as .config) compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project f5446b769a7929806f72256fccd4826d66502e59) 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 # install s390 cross compiling tool for clang build # apt-get install binutils-s390x-linux-gnu # https://github.com/0day-ci/linux/commit/eaeb33f0f85f70fc4e5fbae1e2344e9c6867c840 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Tanner-Love/net-update-netdev_rx_csum_fault-print-dump-only-once/20210423-034958 git checkout eaeb33f0f85f70fc4e5fbae1e2344e9c6867c840 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=s390 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All errors (new ones prefixed by >>): In file included from kernel/bounds.c:10: In file included from include/linux/page-flags.h:10: In file included from include/linux/bug.h:5: In file included from arch/s390/include/asm/bug.h:68: In file included from include/asm-generic/bug.h:7: In file included from include/linux/once.h:6: include/linux/jump_label.h:278:2: error: implicit declaration of function 'WARN' [-Werror,-Wimplicit-function-declaration] STATIC_KEY_CHECK_USE(key); ^ include/linux/jump_label.h:81:35: note: expanded from macro 'STATIC_KEY_CHECK_USE' #define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \ ^ include/linux/jump_label.h:284:2: error: implicit declaration of function 'WARN' [-Werror,-Wimplicit-function-declaration] STATIC_KEY_CHECK_USE(key); ^ include/linux/jump_label.h:81:35: note: expanded from macro 'STATIC_KEY_CHECK_USE' #define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \ ^ include/linux/jump_label.h:306:2: error: implicit declaration of function 'WARN' [-Werror,-Wimplicit-function-declaration] STATIC_KEY_CHECK_USE(key); ^ include/linux/jump_label.h:81:35: note: expanded from macro 'STATIC_KEY_CHECK_USE' #define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \ ^ >> include/linux/jump_label.h:309:3: error: implicit declaration of function 'WARN_ON_ONCE' [-Werror,-Wimplicit-function-declaration] WARN_ON_ONCE(atomic_read(&key->enabled) != 1); ^ include/linux/jump_label.h:317:2: error: implicit declaration of function 'WARN' [-Werror,-Wimplicit-function-declaration] STATIC_KEY_CHECK_USE(key); ^ include/linux/jump_label.h:81:35: note: expanded from macro 'STATIC_KEY_CHECK_USE' #define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \ ^ include/linux/jump_label.h:320:3: error: implicit declaration of function 'WARN_ON_ONCE' [-Werror,-Wimplicit-function-declaration] WARN_ON_ONCE(atomic_read(&key->enabled) != 0); ^ 6 errors generated. -- In file included from kernel/bounds.c:10: In file included from include/linux/page-flags.h:10: In file included from include/linux/bug.h:5: In file included from arch/s390/include/asm/bug.h:68: In file included from include/asm-generic/bug.h:7: In file included from include/linux/once.h:6: include/linux/jump_label.h:278:2: error: implicit declaration of function 'WARN' [-Werror,-Wimplicit-function-declaration] STATIC_KEY_CHECK_USE(key); ^ include/linux/jump_label.h:81:35: note: expanded from macro 'STATIC_KEY_CHECK_USE' #define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \ ^ include/linux/jump_label.h:284:2: error: implicit declaration of function 'WARN' [-Werror,-Wimplicit-function-declaration] STATIC_KEY_CHECK_USE(key); ^ include/linux/jump_label.h:81:35: note: expanded from macro 'STATIC_KEY_CHECK_USE' #define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \ ^ include/linux/jump_label.h:306:2: error: implicit declaration of function 'WARN' [-Werror,-Wimplicit-function-declaration] STATIC_KEY_CHECK_USE(key); ^ include/linux/jump_label.h:81:35: note: expanded from macro 'STATIC_KEY_CHECK_USE' #define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \ ^ >> include/linux/jump_label.h:309:3: error: implicit declaration of function 'WARN_ON_ONCE' [-Werror,-Wimplicit-function-declaration] WARN_ON_ONCE(atomic_read(&key->enabled) != 1); ^ include/linux/jump_label.h:317:2: error: implicit declaration of function 'WARN' [-Werror,-Wimplicit-function-declaration] STATIC_KEY_CHECK_USE(key); ^ include/linux/jump_label.h:81:35: note: expanded from macro 'STATIC_KEY_CHECK_USE' #define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \ ^ include/linux/jump_label.h:320:3: error: implicit declaration of function 'WARN_ON_ONCE' [-Werror,-Wimplicit-function-declaration] WARN_ON_ONCE(atomic_read(&key->enabled) != 0); ^ 6 errors generated. make[2]: *** [scripts/Makefile.build:116: kernel/bounds.s] Error 1 make[2]: Target '__build' not remade because of errors. make[1]: *** [Makefile:1235: prepare0] Error 2 make[1]: Target 'prepare' not remade because of errors. make: *** [Makefile:215: __sub-make] Error 2 make: Target 'prepare' not remade because of errors. vim +/WARN_ON_ONCE +309 include/linux/jump_label.h b202952075f626 Gleb Natapov 2011-11-27 303 e33886b38cc82a Peter Zijlstra 2015-07-24 304 static inline void static_key_enable(struct static_key *key) e33886b38cc82a Peter Zijlstra 2015-07-24 305 { 5cdda5117e125e Borislav Petkov 2017-10-18 306 STATIC_KEY_CHECK_USE(key); e33886b38cc82a Peter Zijlstra 2015-07-24 307 1dbb6704de91b1 Paolo Bonzini 2017-08-01 308 if (atomic_read(&key->enabled) != 0) { 1dbb6704de91b1 Paolo Bonzini 2017-08-01 @309 WARN_ON_ONCE(atomic_read(&key->enabled) != 1); 1dbb6704de91b1 Paolo Bonzini 2017-08-01 310 return; 1dbb6704de91b1 Paolo Bonzini 2017-08-01 311 } 1dbb6704de91b1 Paolo Bonzini 2017-08-01 312 atomic_set(&key->enabled, 1); e33886b38cc82a Peter Zijlstra 2015-07-24 313 } e33886b38cc82a Peter Zijlstra 2015-07-24 314 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org [-- Attachment #2: .config.gz --] [-- Type: application/gzip, Size: 12645 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH net-next 2/3] once: replace uses of __section(".data.once") with DO_ONCE_LITE(_IF)? @ 2021-04-22 22:28 ` kernel test robot 0 siblings, 0 replies; 11+ messages in thread From: kernel test robot @ 2021-04-22 22:28 UTC (permalink / raw) To: kbuild-all [-- Attachment #1: Type: text/plain, Size: 7517 bytes --] Hi Tanner, Thank you for the patch! Yet something to improve: [auto build test ERROR on net-next/master] url: https://github.com/0day-ci/linux/commits/Tanner-Love/net-update-netdev_rx_csum_fault-print-dump-only-once/20210423-034958 base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 5d869070569a23aa909c6e7e9d010fc438a492ef config: s390-randconfig-r014-20210421 (attached as .config) compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project f5446b769a7929806f72256fccd4826d66502e59) 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 # install s390 cross compiling tool for clang build # apt-get install binutils-s390x-linux-gnu # https://github.com/0day-ci/linux/commit/eaeb33f0f85f70fc4e5fbae1e2344e9c6867c840 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Tanner-Love/net-update-netdev_rx_csum_fault-print-dump-only-once/20210423-034958 git checkout eaeb33f0f85f70fc4e5fbae1e2344e9c6867c840 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=s390 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All errors (new ones prefixed by >>): In file included from kernel/bounds.c:10: In file included from include/linux/page-flags.h:10: In file included from include/linux/bug.h:5: In file included from arch/s390/include/asm/bug.h:68: In file included from include/asm-generic/bug.h:7: In file included from include/linux/once.h:6: include/linux/jump_label.h:278:2: error: implicit declaration of function 'WARN' [-Werror,-Wimplicit-function-declaration] STATIC_KEY_CHECK_USE(key); ^ include/linux/jump_label.h:81:35: note: expanded from macro 'STATIC_KEY_CHECK_USE' #define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \ ^ include/linux/jump_label.h:284:2: error: implicit declaration of function 'WARN' [-Werror,-Wimplicit-function-declaration] STATIC_KEY_CHECK_USE(key); ^ include/linux/jump_label.h:81:35: note: expanded from macro 'STATIC_KEY_CHECK_USE' #define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \ ^ include/linux/jump_label.h:306:2: error: implicit declaration of function 'WARN' [-Werror,-Wimplicit-function-declaration] STATIC_KEY_CHECK_USE(key); ^ include/linux/jump_label.h:81:35: note: expanded from macro 'STATIC_KEY_CHECK_USE' #define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \ ^ >> include/linux/jump_label.h:309:3: error: implicit declaration of function 'WARN_ON_ONCE' [-Werror,-Wimplicit-function-declaration] WARN_ON_ONCE(atomic_read(&key->enabled) != 1); ^ include/linux/jump_label.h:317:2: error: implicit declaration of function 'WARN' [-Werror,-Wimplicit-function-declaration] STATIC_KEY_CHECK_USE(key); ^ include/linux/jump_label.h:81:35: note: expanded from macro 'STATIC_KEY_CHECK_USE' #define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \ ^ include/linux/jump_label.h:320:3: error: implicit declaration of function 'WARN_ON_ONCE' [-Werror,-Wimplicit-function-declaration] WARN_ON_ONCE(atomic_read(&key->enabled) != 0); ^ 6 errors generated. -- In file included from kernel/bounds.c:10: In file included from include/linux/page-flags.h:10: In file included from include/linux/bug.h:5: In file included from arch/s390/include/asm/bug.h:68: In file included from include/asm-generic/bug.h:7: In file included from include/linux/once.h:6: include/linux/jump_label.h:278:2: error: implicit declaration of function 'WARN' [-Werror,-Wimplicit-function-declaration] STATIC_KEY_CHECK_USE(key); ^ include/linux/jump_label.h:81:35: note: expanded from macro 'STATIC_KEY_CHECK_USE' #define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \ ^ include/linux/jump_label.h:284:2: error: implicit declaration of function 'WARN' [-Werror,-Wimplicit-function-declaration] STATIC_KEY_CHECK_USE(key); ^ include/linux/jump_label.h:81:35: note: expanded from macro 'STATIC_KEY_CHECK_USE' #define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \ ^ include/linux/jump_label.h:306:2: error: implicit declaration of function 'WARN' [-Werror,-Wimplicit-function-declaration] STATIC_KEY_CHECK_USE(key); ^ include/linux/jump_label.h:81:35: note: expanded from macro 'STATIC_KEY_CHECK_USE' #define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \ ^ >> include/linux/jump_label.h:309:3: error: implicit declaration of function 'WARN_ON_ONCE' [-Werror,-Wimplicit-function-declaration] WARN_ON_ONCE(atomic_read(&key->enabled) != 1); ^ include/linux/jump_label.h:317:2: error: implicit declaration of function 'WARN' [-Werror,-Wimplicit-function-declaration] STATIC_KEY_CHECK_USE(key); ^ include/linux/jump_label.h:81:35: note: expanded from macro 'STATIC_KEY_CHECK_USE' #define STATIC_KEY_CHECK_USE(key) WARN(!static_key_initialized, \ ^ include/linux/jump_label.h:320:3: error: implicit declaration of function 'WARN_ON_ONCE' [-Werror,-Wimplicit-function-declaration] WARN_ON_ONCE(atomic_read(&key->enabled) != 0); ^ 6 errors generated. make[2]: *** [scripts/Makefile.build:116: kernel/bounds.s] Error 1 make[2]: Target '__build' not remade because of errors. make[1]: *** [Makefile:1235: prepare0] Error 2 make[1]: Target 'prepare' not remade because of errors. make: *** [Makefile:215: __sub-make] Error 2 make: Target 'prepare' not remade because of errors. vim +/WARN_ON_ONCE +309 include/linux/jump_label.h b202952075f626 Gleb Natapov 2011-11-27 303 e33886b38cc82a Peter Zijlstra 2015-07-24 304 static inline void static_key_enable(struct static_key *key) e33886b38cc82a Peter Zijlstra 2015-07-24 305 { 5cdda5117e125e Borislav Petkov 2017-10-18 306 STATIC_KEY_CHECK_USE(key); e33886b38cc82a Peter Zijlstra 2015-07-24 307 1dbb6704de91b1 Paolo Bonzini 2017-08-01 308 if (atomic_read(&key->enabled) != 0) { 1dbb6704de91b1 Paolo Bonzini 2017-08-01 @309 WARN_ON_ONCE(atomic_read(&key->enabled) != 1); 1dbb6704de91b1 Paolo Bonzini 2017-08-01 310 return; 1dbb6704de91b1 Paolo Bonzini 2017-08-01 311 } 1dbb6704de91b1 Paolo Bonzini 2017-08-01 312 atomic_set(&key->enabled, 1); e33886b38cc82a Peter Zijlstra 2015-07-24 313 } e33886b38cc82a Peter Zijlstra 2015-07-24 314 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org [-- Attachment #2: config.gz --] [-- Type: application/gzip, Size: 12645 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH net-next 3/3] net: update netdev_rx_csum_fault() print dump only once 2021-04-22 19:47 [PATCH net-next 0/3] net: update netdev_rx_csum_fault() print dump only once Tanner Love 2021-04-22 19:47 ` [PATCH net-next 1/3] once: implement DO_ONCE_LITE for non-fast-path "do once" functionality Tanner Love 2021-04-22 19:47 ` [PATCH net-next 2/3] once: replace uses of __section(".data.once") with DO_ONCE_LITE(_IF)? Tanner Love @ 2021-04-22 19:47 ` Tanner Love 2021-04-23 0:42 ` Yunsheng Lin 2 siblings, 1 reply; 11+ messages in thread From: Tanner Love @ 2021-04-22 19:47 UTC (permalink / raw) To: netdev; +Cc: davem, Tanner Love, Eric Dumazet, Mahesh Bandewar From: Tanner Love <tannerlove@google.com> Printing this stack dump multiple times does not provide additional useful information, and consumes time in the data path. Printing once is sufficient. Signed-off-by: Tanner Love <tannerlove@google.com> Acked-by: Eric Dumazet <edumazet@google.com> Acked-by: Mahesh Bandewar <maheshb@google.com> --- net/core/dev.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/net/core/dev.c b/net/core/dev.c index d9bf63dbe4fd..26b82b5d8563 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -148,6 +148,7 @@ #include <net/devlink.h> #include <linux/pm_runtime.h> #include <linux/prandom.h> +#include <linux/once.h> #include "net-sysfs.h" @@ -3487,13 +3488,16 @@ EXPORT_SYMBOL(__skb_gso_segment); /* Take action when hardware reception checksum errors are detected. */ #ifdef CONFIG_BUG -void netdev_rx_csum_fault(struct net_device *dev, struct sk_buff *skb) +static void do_netdev_rx_csum_fault(struct net_device *dev, struct sk_buff *skb) { - if (net_ratelimit()) { pr_err("%s: hw csum failure\n", dev ? dev->name : "<unknown>"); skb_dump(KERN_ERR, skb, true); dump_stack(); - } +} + +void netdev_rx_csum_fault(struct net_device *dev, struct sk_buff *skb) +{ + DO_ONCE_LITE(do_netdev_rx_csum_fault, dev, skb); } EXPORT_SYMBOL(netdev_rx_csum_fault); #endif -- 2.31.1.498.g6c1eba8ee3d-goog ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH net-next 3/3] net: update netdev_rx_csum_fault() print dump only once 2021-04-22 19:47 ` [PATCH net-next 3/3] net: update netdev_rx_csum_fault() print dump only once Tanner Love @ 2021-04-23 0:42 ` Yunsheng Lin 0 siblings, 0 replies; 11+ messages in thread From: Yunsheng Lin @ 2021-04-23 0:42 UTC (permalink / raw) To: Tanner Love, netdev; +Cc: davem, Tanner Love, Eric Dumazet, Mahesh Bandewar On 2021/4/23 3:47, Tanner Love wrote: > From: Tanner Love <tannerlove@google.com> > > Printing this stack dump multiple times does not provide additional > useful information, and consumes time in the data path. Printing once > is sufficient. > > Signed-off-by: Tanner Love <tannerlove@google.com> > Acked-by: Eric Dumazet <edumazet@google.com> > Acked-by: Mahesh Bandewar <maheshb@google.com> > --- > net/core/dev.c | 10 +++++++--- > 1 file changed, 7 insertions(+), 3 deletions(-) > > diff --git a/net/core/dev.c b/net/core/dev.c > index d9bf63dbe4fd..26b82b5d8563 100644 > --- a/net/core/dev.c > +++ b/net/core/dev.c > @@ -148,6 +148,7 @@ > #include <net/devlink.h> > #include <linux/pm_runtime.h> > #include <linux/prandom.h> > +#include <linux/once.h> > > #include "net-sysfs.h" > > @@ -3487,13 +3488,16 @@ EXPORT_SYMBOL(__skb_gso_segment); > > /* Take action when hardware reception checksum errors are detected. */ > #ifdef CONFIG_BUG > -void netdev_rx_csum_fault(struct net_device *dev, struct sk_buff *skb) > +static void do_netdev_rx_csum_fault(struct net_device *dev, struct sk_buff *skb) > { > - if (net_ratelimit()) { > pr_err("%s: hw csum failure\n", dev ? dev->name : "<unknown>"); > skb_dump(KERN_ERR, skb, true); > dump_stack(); Once the "if ()" is removed, one level of indent seems enough? > - } > +} > + > +void netdev_rx_csum_fault(struct net_device *dev, struct sk_buff *skb) > +{ > + DO_ONCE_LITE(do_netdev_rx_csum_fault, dev, skb); > } > EXPORT_SYMBOL(netdev_rx_csum_fault); > #endif > ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2021-04-23 0:42 UTC | newest] Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-04-22 19:47 [PATCH net-next 0/3] net: update netdev_rx_csum_fault() print dump only once Tanner Love 2021-04-22 19:47 ` [PATCH net-next 1/3] once: implement DO_ONCE_LITE for non-fast-path "do once" functionality Tanner Love 2021-04-22 19:47 ` [PATCH net-next 2/3] once: replace uses of __section(".data.once") with DO_ONCE_LITE(_IF)? Tanner Love 2021-04-22 21:23 ` kernel test robot 2021-04-22 21:23 ` kernel test robot 2021-04-22 22:28 ` kernel test robot 2021-04-22 22:28 ` kernel test robot 2021-04-22 22:28 ` kernel test robot 2021-04-22 22:28 ` kernel test robot 2021-04-22 19:47 ` [PATCH net-next 3/3] net: update netdev_rx_csum_fault() print dump only once Tanner Love 2021-04-23 0:42 ` Yunsheng Lin
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.