tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: d35b2284e966c0bef3e2182a5c5ea02177dd32e4 commit: df3ec5da6a1e7f6e142680d7c5266d3af187170b [3355/4582] function_graph: Add pid tracing back to function graph tracer config: mips-randconfig-r052-20240607 (https://download.01.org/0day-ci/archive/20240607/202406072236.0B811sja-lkp@xxxxxxxxx/config) compiler: clang version 19.0.0git (https://github.com/llvm/llvm-project d7d2d4f53fc79b4b58e8d8d08151b577c3699d4a) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240607/202406072236.0B811sja-lkp@xxxxxxxxx/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202406072236.0B811sja-lkp@xxxxxxxxx/ Note: the linux-next/master HEAD d35b2284e966c0bef3e2182a5c5ea02177dd32e4 builds fine. It may have been fixed somewhere. All errors (new ones prefixed by >>): In file included from kernel/trace/fgraph.c:12: In file included from include/linux/suspend.h:5: In file included from include/linux/swap.h:9: In file included from include/linux/memcontrol.h:21: In file included from include/linux/mm.h:2253: include/linux/vmstat.h:514:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion] 514 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_" | ~~~~~~~~~~~ ^ ~~~ >> kernel/trace/fgraph.c:883:37: error: no member named 'subop_list' in 'struct ftrace_ops' 883 | list_for_each_entry(op, &graph_ops.subop_list, list) { | ~~~~~~~~~ ^ include/linux/list.h:778:30: note: expanded from macro 'list_for_each_entry' 778 | for (pos = list_first_entry(head, typeof(*pos), member); \ | ^~~~ include/linux/list.h:612:14: note: expanded from macro 'list_first_entry' 612 | list_entry((ptr)->next, type, member) | ^~~ include/linux/list.h:601:15: note: expanded from macro 'list_entry' 601 | container_of(ptr, type, member) | ^~~ include/linux/container_of.h:19:26: note: expanded from macro 'container_of' 19 | void *__mptr = (void *)(ptr); \ | ^~~ >> kernel/trace/fgraph.c:883:37: error: no member named 'subop_list' in 'struct ftrace_ops' 883 | list_for_each_entry(op, &graph_ops.subop_list, list) { | ~~~~~~~~~ ^ include/linux/list.h:778:30: note: expanded from macro 'list_for_each_entry' 778 | for (pos = list_first_entry(head, typeof(*pos), member); \ | ^~~~ include/linux/list.h:612:14: note: expanded from macro 'list_first_entry' 612 | list_entry((ptr)->next, type, member) | ^~~ include/linux/list.h:601:15: note: expanded from macro 'list_entry' 601 | container_of(ptr, type, member) | ^~~ note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all) include/linux/compiler_types.h:428:63: note: expanded from macro '__same_type' 428 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b)) | ^ include/linux/build_bug.h:77:50: note: expanded from macro 'static_assert' 77 | #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr) | ^~~~ include/linux/build_bug.h:78:56: note: expanded from macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ >> kernel/trace/fgraph.c:883:37: error: no member named 'subop_list' in 'struct ftrace_ops' 883 | list_for_each_entry(op, &graph_ops.subop_list, list) { | ~~~~~~~~~ ^ include/linux/list.h:778:30: note: expanded from macro 'list_for_each_entry' 778 | for (pos = list_first_entry(head, typeof(*pos), member); \ | ^~~~ include/linux/list.h:612:14: note: expanded from macro 'list_first_entry' 612 | list_entry((ptr)->next, type, member) | ^~~ include/linux/list.h:601:15: note: expanded from macro 'list_entry' 601 | container_of(ptr, type, member) | ^~~ note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all) include/linux/compiler_types.h:428:63: note: expanded from macro '__same_type' 428 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b)) | ^ include/linux/build_bug.h:77:50: note: expanded from macro 'static_assert' 77 | #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr) | ^~~~ include/linux/build_bug.h:78:56: note: expanded from macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ >> kernel/trace/fgraph.c:883:2: error: no member named 'list' in 'ftrace_ops' 883 | list_for_each_entry(op, &graph_ops.subop_list, list) { | ^ ~~~~ include/linux/list.h:778:13: note: expanded from macro 'list_for_each_entry' 778 | for (pos = list_first_entry(head, typeof(*pos), member); \ | ^ ~~~~~~ include/linux/list.h:612:2: note: expanded from macro 'list_first_entry' 612 | list_entry((ptr)->next, type, member) | ^ ~~~~~~ include/linux/list.h:601:2: note: expanded from macro 'list_entry' 601 | container_of(ptr, type, member) | ^ ~~~~~~ include/linux/container_of.h:23:21: note: expanded from macro 'container_of' 23 | ((type *)(__mptr - offsetof(type, member))); }) | ^ ~~~~~~ include/linux/stddef.h:16:32: note: expanded from macro 'offsetof' 16 | #define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER) | ^ ~~~~~~ >> kernel/trace/fgraph.c:883:2: error: assigning to 'struct ftrace_ops *' from incompatible type 'void' 883 | list_for_each_entry(op, &graph_ops.subop_list, list) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/list.h:778:11: note: expanded from macro 'list_for_each_entry' 778 | for (pos = list_first_entry(head, typeof(*pos), member); \ | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> kernel/trace/fgraph.c:883:49: error: no member named 'list' in 'struct ftrace_ops' 883 | list_for_each_entry(op, &graph_ops.subop_list, list) { | ~~ ^ include/linux/list.h:779:38: note: expanded from macro 'list_for_each_entry' 779 | !list_entry_is_head(pos, head, member); \ | ~~~ ^ include/linux/list.h:769:21: note: expanded from macro 'list_entry_is_head' 769 | list_is_head(&pos->member, (head)) | ~~~ ^ >> kernel/trace/fgraph.c:883:37: error: no member named 'subop_list' in 'struct ftrace_ops' 883 | list_for_each_entry(op, &graph_ops.subop_list, list) { | ~~~~~~~~~ ^ include/linux/list.h:779:32: note: expanded from macro 'list_for_each_entry' 779 | !list_entry_is_head(pos, head, member); \ | ^~~~ include/linux/list.h:769:30: note: expanded from macro 'list_entry_is_head' 769 | list_is_head(&pos->member, (head)) | ^~~~ >> kernel/trace/fgraph.c:883:49: error: no member named 'list' in 'struct ftrace_ops' 883 | list_for_each_entry(op, &graph_ops.subop_list, list) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ include/linux/list.h:780:34: note: expanded from macro 'list_for_each_entry' 780 | pos = list_next_entry(pos, member)) | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~ include/linux/list.h:645:20: note: expanded from macro 'list_next_entry' 645 | list_entry((pos)->member.next, typeof(*(pos)), member) | ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/list.h:601:15: note: expanded from macro 'list_entry' 601 | container_of(ptr, type, member) | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ include/linux/container_of.h:19:26: note: expanded from macro 'container_of' 19 | void *__mptr = (void *)(ptr); \ | ^~~ >> kernel/trace/fgraph.c:883:49: error: no member named 'list' in 'struct ftrace_ops' 883 | list_for_each_entry(op, &graph_ops.subop_list, list) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ include/linux/list.h:780:34: note: expanded from macro 'list_for_each_entry' 780 | pos = list_next_entry(pos, member)) | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~ include/linux/list.h:645:20: note: expanded from macro 'list_next_entry' 645 | list_entry((pos)->member.next, typeof(*(pos)), member) | ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/list.h:601:15: note: expanded from macro 'list_entry' 601 | container_of(ptr, type, member) | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all) include/linux/compiler_types.h:428:63: note: expanded from macro '__same_type' 428 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b)) | ^ include/linux/build_bug.h:77:50: note: expanded from macro 'static_assert' 77 | #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr) | ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:78:56: note: expanded from macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ >> kernel/trace/fgraph.c:883:49: error: no member named 'list' in 'struct ftrace_ops' 883 | list_for_each_entry(op, &graph_ops.subop_list, list) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ include/linux/list.h:780:34: note: expanded from macro 'list_for_each_entry' 780 | pos = list_next_entry(pos, member)) | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~ include/linux/list.h:645:20: note: expanded from macro 'list_next_entry' 645 | list_entry((pos)->member.next, typeof(*(pos)), member) | ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/list.h:601:15: note: expanded from macro 'list_entry' 601 | container_of(ptr, type, member) | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all) include/linux/compiler_types.h:428:63: note: expanded from macro '__same_type' 428 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b)) | ^ include/linux/build_bug.h:77:50: note: expanded from macro 'static_assert' 77 | #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr) | ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/build_bug.h:78:56: note: expanded from macro '__static_assert' 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg) | ^~~~ >> kernel/trace/fgraph.c:883:2: error: no member named 'list' in 'ftrace_ops' 883 | list_for_each_entry(op, &graph_ops.subop_list, list) { | ^ ~~~~ include/linux/list.h:780:13: note: expanded from macro 'list_for_each_entry' 780 | pos = list_next_entry(pos, member)) | ^ ~~~~~~ include/linux/list.h:645:2: note: expanded from macro 'list_next_entry' 645 | list_entry((pos)->member.next, typeof(*(pos)), member) | ^ ~~~~~~ include/linux/list.h:601:2: note: expanded from macro 'list_entry' 601 | container_of(ptr, type, member) | ^ ~~~~~~ include/linux/container_of.h:23:21: note: expanded from macro 'container_of' 23 | ((type *)(__mptr - offsetof(type, member))); }) | ^ ~~~~~~ include/linux/stddef.h:16:32: note: expanded from macro 'offsetof' 16 | #define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER) | ^ ~~~~~~ >> kernel/trace/fgraph.c:883:2: error: assigning to 'struct ftrace_ops *' from incompatible type 'void' 883 | list_for_each_entry(op, &graph_ops.subop_list, list) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/list.h:780:11: note: expanded from macro 'list_for_each_entry' 780 | pos = list_next_entry(pos, member)) | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kernel/trace/fgraph.c:972:8: error: call to undeclared function 'ftrace_startup_subops'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 972 | ret = ftrace_startup_subops(&graph_ops, &gops->ops, command); | ^ kernel/trace/fgraph.c:1012:2: error: call to undeclared function 'ftrace_shutdown_subops'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 1012 | ftrace_shutdown_subops(&graph_ops, &gops->ops, command); | ^ 1 warning and 14 errors generated. vim +883 kernel/trace/fgraph.c 874 875 void fgraph_update_pid_func(void) 876 { 877 struct fgraph_ops *gops; 878 struct ftrace_ops *op; 879 880 if (!(graph_ops.flags & FTRACE_OPS_FL_INITIALIZED)) 881 return; 882 > 883 list_for_each_entry(op, &graph_ops.subop_list, list) { 884 if (op->flags & FTRACE_OPS_FL_PID) { 885 gops = container_of(op, struct fgraph_ops, ops); 886 gops->entryfunc = ftrace_pids_enabled(op) ? 887 fgraph_pid_func : gops->saved_func; 888 } 889 } 890 } 891 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki