Message ID | 1533793005-4525-2-git-send-email-firoz.khan@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | System call table generation support | expand |
Hi Firoz, Thank you for the patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on v4.18-rc8 next-20180808] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Firoz-Khan/sh-Rename-NR_syscalls-macro-to-__NR_syscalls/20180809-171759 config: sh-allmodconfig (attached as .config) compiler: sh4-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree GCC_VERSION=7.2.0 make.cross ARCH=sh All errors (new ones prefixed by >>): In file included from kernel/trace/trace_selftest_dynamic.c:3:0: >> kernel/trace/trace.h:243:53: error: 'NR_syscalls' undeclared here (not in a function); did you mean '__NR_syscalls'? struct trace_event_file __rcu *enter_syscall_files[NR_syscalls]; ^~~~~~~~~~~ __NR_syscalls -- In file included from kernel/trace/trace_output.h:6:0, from kernel/trace/trace_syscalls.c:12: >> kernel/trace/trace.h:243:53: error: 'NR_syscalls' undeclared here (not in a function); did you mean '__NR_syscalls'? struct trace_event_file __rcu *enter_syscall_files[NR_syscalls]; ^~~~~~~~~~~ __NR_syscalls In file included from include/linux/smp.h:11:0, from include/linux/tracepoint.h:17, from include/trace/syscall.h:5, from kernel/trace/trace_syscalls.c:2: kernel/trace/trace_syscalls.c:559:23: warning: 'enabled_perf_exit_syscalls' defined but not used [-Wunused-variable] static DECLARE_BITMAP(enabled_perf_exit_syscalls, NR_syscalls); ^ include/linux/types.h:11:16: note: in definition of macro 'DECLARE_BITMAP' unsigned long name[BITS_TO_LONGS(bits)] ^~~~ kernel/trace/trace_syscalls.c:558:23: warning: 'enabled_perf_enter_syscalls' defined but not used [-Wunused-variable] static DECLARE_BITMAP(enabled_perf_enter_syscalls, NR_syscalls); ^ include/linux/types.h:11:16: note: in definition of macro 'DECLARE_BITMAP' unsigned long name[BITS_TO_LONGS(bits)] ^~~~ vim +243 kernel/trace/trace.h 490901078 Steven Rostedt (Red Hat 2015-09-24 196) bc0c38d13 Steven Rostedt 2008-05-12 197 /* bc0c38d13 Steven Rostedt 2008-05-12 198 * The trace array - an array of per-CPU trace arrays. This is the bc0c38d13 Steven Rostedt 2008-05-12 199 * highest level data structure that individual tracers deal with. bc0c38d13 Steven Rostedt 2008-05-12 200 * They have on/off state as well: bc0c38d13 Steven Rostedt 2008-05-12 201 */ bc0c38d13 Steven Rostedt 2008-05-12 202 struct trace_array { ae63b31e4 Steven Rostedt 2012-05-03 203 struct list_head list; 277ba0446 Steven Rostedt 2012-08-03 204 char *name; 12883efb6 Steven Rostedt (Red Hat 2013-03-05 205) struct trace_buffer trace_buffer; 12883efb6 Steven Rostedt (Red Hat 2013-03-05 206) #ifdef CONFIG_TRACER_MAX_TRACE 12883efb6 Steven Rostedt (Red Hat 2013-03-05 207) /* 12883efb6 Steven Rostedt (Red Hat 2013-03-05 208) * The max_buffer is used to snapshot the trace when a maximum 12883efb6 Steven Rostedt (Red Hat 2013-03-05 209) * latency is reached, or when the user initiates a snapshot. 12883efb6 Steven Rostedt (Red Hat 2013-03-05 210) * Some tracers will use this to store a maximum trace while 12883efb6 Steven Rostedt (Red Hat 2013-03-05 211) * it continues examining live traces. 12883efb6 Steven Rostedt (Red Hat 2013-03-05 212) * 12883efb6 Steven Rostedt (Red Hat 2013-03-05 213) * The buffers for the max_buffer are set up the same as the trace_buffer 12883efb6 Steven Rostedt (Red Hat 2013-03-05 214) * When a snapshot is taken, the buffer of the max_buffer is swapped 12883efb6 Steven Rostedt (Red Hat 2013-03-05 215) * with the buffer of the trace_buffer and the buffers are reset for 12883efb6 Steven Rostedt (Red Hat 2013-03-05 216) * the trace_buffer so the tracing can continue. 12883efb6 Steven Rostedt (Red Hat 2013-03-05 217) */ 12883efb6 Steven Rostedt (Red Hat 2013-03-05 218) struct trace_buffer max_buffer; 45ad21ca5 Steven Rostedt (Red Hat 2013-03-05 219) bool allocated_snapshot; f971cc9aa Steven Rostedt (Red Hat 2016-09-07 220) #endif f971cc9aa Steven Rostedt (Red Hat 2016-09-07 221) #if defined(CONFIG_TRACER_MAX_TRACE) || defined(CONFIG_HWLAT_TRACER) 6d9b3fa5e Steven Rostedt (Red Hat 2014-01-14 222) unsigned long max_latency; 12883efb6 Steven Rostedt (Red Hat 2013-03-05 223) #endif 490901078 Steven Rostedt (Red Hat 2015-09-24 224) struct trace_pid_list __rcu *filtered_pids; 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 225) /* 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 226) * max_lock is used to protect the swapping of buffers 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 227) * when taking a max snapshot. The buffers themselves are 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 228) * protected by per_cpu spinlocks. But the action of the swap 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 229) * needs its own lock. 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 230) * 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 231) * This is defined as a arch_spinlock_t in order to help 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 232) * with performance when lockdep debugging is enabled. 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 233) * 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 234) * It is also used in other places outside the update_max_tr 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 235) * so it needs to be defined outside of the 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 236) * CONFIG_TRACER_MAX_TRACE. 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 237) */ 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 238) arch_spinlock_t max_lock; 499e54705 Steven Rostedt 2012-02-22 239 int buffer_disabled; 12ab74ee0 Steven Rostedt 2012-08-08 240 #ifdef CONFIG_FTRACE_SYSCALLS 12ab74ee0 Steven Rostedt 2012-08-08 241 int sys_refcount_enter; 12ab74ee0 Steven Rostedt 2012-08-08 242 int sys_refcount_exit; 7f1d2f821 Steven Rostedt (Red Hat 2015-05-05 @243) struct trace_event_file __rcu *enter_syscall_files[NR_syscalls]; 7f1d2f821 Steven Rostedt (Red Hat 2015-05-05 244) struct trace_event_file __rcu *exit_syscall_files[NR_syscalls]; 12ab74ee0 Steven Rostedt 2012-08-08 245 #endif 2b6080f28 Steven Rostedt 2012-05-11 246 int stop_count; 2b6080f28 Steven Rostedt 2012-05-11 247 int clock_id; 37aea98b8 Steven Rostedt (Red Hat 2015-09-30 248) int nr_topts; 065e63f95 Steven Rostedt (VMware 2017-08-31 249) bool clear_trace; 2b6080f28 Steven Rostedt 2012-05-11 250 struct tracer *current_trace; 983f938ae Steven Rostedt (Red Hat 2015-09-30 251) unsigned int trace_flags; 9a38a8856 Steven Rostedt (Red Hat 2015-09-30 252) unsigned char trace_flags_index[TRACE_FLAGS_MAX_SIZE]; ae63b31e4 Steven Rostedt 2012-05-03 253 unsigned int flags; 2b6080f28 Steven Rostedt 2012-05-11 254 raw_spinlock_t start_lock; ae63b31e4 Steven Rostedt 2012-05-03 255 struct dentry *dir; 2b6080f28 Steven Rostedt 2012-05-11 256 struct dentry *options; 2b6080f28 Steven Rostedt 2012-05-11 257 struct dentry *percpu_dir; ae63b31e4 Steven Rostedt 2012-05-03 258 struct dentry *event_dir; 37aea98b8 Steven Rostedt (Red Hat 2015-09-30 259) struct trace_options *topts; ae63b31e4 Steven Rostedt 2012-05-03 260 struct list_head systems; ae63b31e4 Steven Rostedt 2012-05-03 261 struct list_head events; 3dd809536 Steven Rostedt (VMware 2018-05-09 262) struct trace_event_file *trace_marker_file; ccfe9e42e Alexander Z Lam 2013-08-08 263 cpumask_var_t tracing_cpumask; /* only trace on set CPUs */ a695cb581 Steven Rostedt (Red Hat 2013-03-06 264) int ref; f20a58062 Steven Rostedt (Red Hat 2013-11-07 265) #ifdef CONFIG_FUNCTION_TRACER f20a58062 Steven Rostedt (Red Hat 2013-11-07 266) struct ftrace_ops *ops; 345ddcc88 Steven Rostedt (Red Hat 2016-04-22 267) struct trace_pid_list __rcu *function_pids; 04ec7bb64 Steven Rostedt (VMware 2017-04-05 268) #ifdef CONFIG_DYNAMIC_FTRACE 673feb9d7 Steven Rostedt (VMware 2017-06-23 269) /* All of these are protected by the ftrace_lock */ 04ec7bb64 Steven Rostedt (VMware 2017-04-05 270) struct list_head func_probes; 673feb9d7 Steven Rostedt (VMware 2017-06-23 271) struct list_head mod_trace; 673feb9d7 Steven Rostedt (VMware 2017-06-23 272) struct list_head mod_notrace; 04ec7bb64 Steven Rostedt (VMware 2017-04-05 273) #endif f20a58062 Steven Rostedt (Red Hat 2013-11-07 274) /* function tracing enabled */ f20a58062 Steven Rostedt (Red Hat 2013-11-07 275) int function_enabled; f20a58062 Steven Rostedt (Red Hat 2013-11-07 276) #endif 00b414529 Tom Zanussi 2018-01-15 277 int time_stamp_abs_ref; 067fe038e Tom Zanussi 2018-01-15 278 struct list_head hist_vars; bc0c38d13 Steven Rostedt 2008-05-12 279 }; bc0c38d13 Steven Rostedt 2008-05-12 280 :::::: The code at line 243 was first introduced by commit :::::: 7f1d2f8210195c8c309d424a77dbf06a6d2186f4 tracing: Rename ftrace_event_file to trace_event_file :::::: TO: Steven Rostedt (Red Hat) <rostedt@goodmis.org> :::::: CC: Steven Rostedt <rostedt@goodmis.org> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
On Thu, 9 Aug 2018 20:58:58 +0800 kbuild test robot <lkp@intel.com> wrote: > Hi Firoz, > > Thank you for the patch! Yet something to improve: > > [auto build test ERROR on linus/master] > [also build test ERROR on v4.18-rc8 next-20180808] > [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] > > url: https://github.com/0day-ci/linux/commits/Firoz-Khan/sh-Rename-NR_syscalls-macro-to-__NR_syscalls/20180809-171759 > config: sh-allmodconfig (attached as .config) > compiler: sh4-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0 > reproduce: > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross > chmod +x ~/bin/make.cross > # save the attached .config to linux build tree > GCC_VERSION=7.2.0 make.cross ARCH=sh > > All errors (new ones prefixed by >>): > > In file included from kernel/trace/trace_selftest_dynamic.c:3:0: > >> kernel/trace/trace.h:243:53: error: 'NR_syscalls' undeclared here (not in a function); did you mean '__NR_syscalls'? > struct trace_event_file __rcu *enter_syscall_files[NR_syscalls]; > ^~~~~~~~~~~ > __NR_syscalls > -- > In file included from kernel/trace/trace_output.h:6:0, > from kernel/trace/trace_syscalls.c:12: > >> kernel/trace/trace.h:243:53: error: 'NR_syscalls' undeclared here (not in a function); did you mean '__NR_syscalls'? > struct trace_event_file __rcu *enter_syscall_files[NR_syscalls]; > ^~~~~~~~~~~ > __NR_syscalls Most archs have a: #define NR_syscalls __NR_syscalls -- Steve > In file included from include/linux/smp.h:11:0, > from include/linux/tracepoint.h:17, > from include/trace/syscall.h:5, > from kernel/trace/trace_syscalls.c:2: > kernel/trace/trace_syscalls.c:559:23: warning: 'enabled_perf_exit_syscalls' defined but not used [-Wunused-variable] > static DECLARE_BITMAP(enabled_perf_exit_syscalls, NR_syscalls); > ^ > include/linux/types.h:11:16: note: in definition of macro 'DECLARE_BITMAP' > unsigned long name[BITS_TO_LONGS(bits)] > ^~~~ > kernel/trace/trace_syscalls.c:558:23: warning: 'enabled_perf_enter_syscalls' defined but not used [-Wunused-variable] > static DECLARE_BITMAP(enabled_perf_enter_syscalls, NR_syscalls); > ^ > include/linux/types.h:11:16: note: in definition of macro 'DECLARE_BITMAP' > unsigned long name[BITS_TO_LONGS(bits)] > ^~~~ > > vim +243 kernel/trace/trace.h > > 490901078 Steven Rostedt (Red Hat 2015-09-24 196) > bc0c38d13 Steven Rostedt 2008-05-12 197 /* > bc0c38d13 Steven Rostedt 2008-05-12 198 * The trace array - an array of per-CPU trace arrays. This is the > bc0c38d13 Steven Rostedt 2008-05-12 199 * highest level data structure that individual tracers deal with. > bc0c38d13 Steven Rostedt 2008-05-12 200 * They have on/off state as well: > bc0c38d13 Steven Rostedt 2008-05-12 201 */ > bc0c38d13 Steven Rostedt 2008-05-12 202 struct trace_array { > ae63b31e4 Steven Rostedt 2012-05-03 203 struct list_head list; > 277ba0446 Steven Rostedt 2012-08-03 204 char *name; > 12883efb6 Steven Rostedt (Red Hat 2013-03-05 205) struct trace_buffer trace_buffer; > 12883efb6 Steven Rostedt (Red Hat 2013-03-05 206) #ifdef CONFIG_TRACER_MAX_TRACE > 12883efb6 Steven Rostedt (Red Hat 2013-03-05 207) /* > 12883efb6 Steven Rostedt (Red Hat 2013-03-05 208) * The max_buffer is used to snapshot the trace when a maximum > 12883efb6 Steven Rostedt (Red Hat 2013-03-05 209) * latency is reached, or when the user initiates a snapshot. > 12883efb6 Steven Rostedt (Red Hat 2013-03-05 210) * Some tracers will use this to store a maximum trace while > 12883efb6 Steven Rostedt (Red Hat 2013-03-05 211) * it continues examining live traces. > 12883efb6 Steven Rostedt (Red Hat 2013-03-05 212) * > 12883efb6 Steven Rostedt (Red Hat 2013-03-05 213) * The buffers for the max_buffer are set up the same as the trace_buffer > 12883efb6 Steven Rostedt (Red Hat 2013-03-05 214) * When a snapshot is taken, the buffer of the max_buffer is swapped > 12883efb6 Steven Rostedt (Red Hat 2013-03-05 215) * with the buffer of the trace_buffer and the buffers are reset for > 12883efb6 Steven Rostedt (Red Hat 2013-03-05 216) * the trace_buffer so the tracing can continue. > 12883efb6 Steven Rostedt (Red Hat 2013-03-05 217) */ > 12883efb6 Steven Rostedt (Red Hat 2013-03-05 218) struct trace_buffer max_buffer; > 45ad21ca5 Steven Rostedt (Red Hat 2013-03-05 219) bool allocated_snapshot; > f971cc9aa Steven Rostedt (Red Hat 2016-09-07 220) #endif > f971cc9aa Steven Rostedt (Red Hat 2016-09-07 221) #if defined(CONFIG_TRACER_MAX_TRACE) || defined(CONFIG_HWLAT_TRACER) > 6d9b3fa5e Steven Rostedt (Red Hat 2014-01-14 222) unsigned long max_latency; > 12883efb6 Steven Rostedt (Red Hat 2013-03-05 223) #endif > 490901078 Steven Rostedt (Red Hat 2015-09-24 224) struct trace_pid_list __rcu *filtered_pids; > 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 225) /* > 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 226) * max_lock is used to protect the swapping of buffers > 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 227) * when taking a max snapshot. The buffers themselves are > 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 228) * protected by per_cpu spinlocks. But the action of the swap > 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 229) * needs its own lock. > 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 230) * > 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 231) * This is defined as a arch_spinlock_t in order to help > 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 232) * with performance when lockdep debugging is enabled. > 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 233) * > 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 234) * It is also used in other places outside the update_max_tr > 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 235) * so it needs to be defined outside of the > 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 236) * CONFIG_TRACER_MAX_TRACE. > 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 237) */ > 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 238) arch_spinlock_t max_lock; > 499e54705 Steven Rostedt 2012-02-22 239 int buffer_disabled; > 12ab74ee0 Steven Rostedt 2012-08-08 240 #ifdef CONFIG_FTRACE_SYSCALLS > 12ab74ee0 Steven Rostedt 2012-08-08 241 int sys_refcount_enter; > 12ab74ee0 Steven Rostedt 2012-08-08 242 int sys_refcount_exit; > 7f1d2f821 Steven Rostedt (Red Hat 2015-05-05 @243) struct trace_event_file __rcu *enter_syscall_files[NR_syscalls]; > 7f1d2f821 Steven Rostedt (Red Hat 2015-05-05 244) struct trace_event_file __rcu *exit_syscall_files[NR_syscalls]; > 12ab74ee0 Steven Rostedt 2012-08-08 245 #endif > 2b6080f28 Steven Rostedt 2012-05-11 246 int stop_count; > 2b6080f28 Steven Rostedt 2012-05-11 247 int clock_id; > 37aea98b8 Steven Rostedt (Red Hat 2015-09-30 248) int nr_topts; > 065e63f95 Steven Rostedt (VMware 2017-08-31 249) bool clear_trace; > 2b6080f28 Steven Rostedt 2012-05-11 250 struct tracer *current_trace; > 983f938ae Steven Rostedt (Red Hat 2015-09-30 251) unsigned int trace_flags; > 9a38a8856 Steven Rostedt (Red Hat 2015-09-30 252) unsigned char trace_flags_index[TRACE_FLAGS_MAX_SIZE]; > ae63b31e4 Steven Rostedt 2012-05-03 253 unsigned int flags; > 2b6080f28 Steven Rostedt 2012-05-11 254 raw_spinlock_t start_lock; > ae63b31e4 Steven Rostedt 2012-05-03 255 struct dentry *dir; > 2b6080f28 Steven Rostedt 2012-05-11 256 struct dentry *options; > 2b6080f28 Steven Rostedt 2012-05-11 257 struct dentry *percpu_dir; > ae63b31e4 Steven Rostedt 2012-05-03 258 struct dentry *event_dir; > 37aea98b8 Steven Rostedt (Red Hat 2015-09-30 259) struct trace_options *topts; > ae63b31e4 Steven Rostedt 2012-05-03 260 struct list_head systems; > ae63b31e4 Steven Rostedt 2012-05-03 261 struct list_head events; > 3dd809536 Steven Rostedt (VMware 2018-05-09 262) struct trace_event_file *trace_marker_file; > ccfe9e42e Alexander Z Lam 2013-08-08 263 cpumask_var_t tracing_cpumask; /* only trace on set CPUs */ > a695cb581 Steven Rostedt (Red Hat 2013-03-06 264) int ref; > f20a58062 Steven Rostedt (Red Hat 2013-11-07 265) #ifdef CONFIG_FUNCTION_TRACER > f20a58062 Steven Rostedt (Red Hat 2013-11-07 266) struct ftrace_ops *ops; > 345ddcc88 Steven Rostedt (Red Hat 2016-04-22 267) struct trace_pid_list __rcu *function_pids; > 04ec7bb64 Steven Rostedt (VMware 2017-04-05 268) #ifdef CONFIG_DYNAMIC_FTRACE > 673feb9d7 Steven Rostedt (VMware 2017-06-23 269) /* All of these are protected by the ftrace_lock */ > 04ec7bb64 Steven Rostedt (VMware 2017-04-05 270) struct list_head func_probes; > 673feb9d7 Steven Rostedt (VMware 2017-06-23 271) struct list_head mod_trace; > 673feb9d7 Steven Rostedt (VMware 2017-06-23 272) struct list_head mod_notrace; > 04ec7bb64 Steven Rostedt (VMware 2017-04-05 273) #endif > f20a58062 Steven Rostedt (Red Hat 2013-11-07 274) /* function tracing enabled */ > f20a58062 Steven Rostedt (Red Hat 2013-11-07 275) int function_enabled; > f20a58062 Steven Rostedt (Red Hat 2013-11-07 276) #endif > 00b414529 Tom Zanussi 2018-01-15 277 int time_stamp_abs_ref; > 067fe038e Tom Zanussi 2018-01-15 278 struct list_head hist_vars; > bc0c38d13 Steven Rostedt 2008-05-12 279 }; > bc0c38d13 Steven Rostedt 2008-05-12 280 > > :::::: The code at line 243 was first introduced by commit > :::::: 7f1d2f8210195c8c309d424a77dbf06a6d2186f4 tracing: Rename ftrace_event_file to trace_event_file > > :::::: TO: Steven Rostedt (Red Hat) <rostedt@goodmis.org> > :::::: CC: Steven Rostedt <rostedt@goodmis.org> > > --- > 0-DAY kernel test infrastructure Open Source Technology Center > https://lists.01.org/pipermail/kbuild-all Intel Corporation
On 11 August 2018 at 01:08, Steven Rostedt <rostedt@goodmis.org> wrote: > On Thu, 9 Aug 2018 20:58:58 +0800 > kbuild test robot <lkp@intel.com> wrote: > >> Hi Firoz, >> >> Thank you for the patch! Yet something to improve: >> >> [auto build test ERROR on linus/master] >> [also build test ERROR on v4.18-rc8 next-20180808] >> [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] >> >> url: https://github.com/0day-ci/linux/commits/Firoz-Khan/sh-Rename-NR_syscalls-macro-to-__NR_syscalls/20180809-171759 >> config: sh-allmodconfig (attached as .config) >> compiler: sh4-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0 >> reproduce: >> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross >> chmod +x ~/bin/make.cross >> # save the attached .config to linux build tree >> GCC_VERSION=7.2.0 make.cross ARCH=sh >> >> All errors (new ones prefixed by >>): >> >> In file included from kernel/trace/trace_selftest_dynamic.c:3:0: >> >> kernel/trace/trace.h:243:53: error: 'NR_syscalls' undeclared here (not in a function); did you mean '__NR_syscalls'? >> struct trace_event_file __rcu *enter_syscall_files[NR_syscalls]; >> ^~~~~~~~~~~ >> __NR_syscalls >> -- >> In file included from kernel/trace/trace_output.h:6:0, >> from kernel/trace/trace_syscalls.c:12: >> >> kernel/trace/trace.h:243:53: error: 'NR_syscalls' undeclared here (not in a function); did you mean '__NR_syscalls'? >> struct trace_event_file __rcu *enter_syscall_files[NR_syscalls]; >> ^~~~~~~~~~~ >> __NR_syscalls > > Most archs have a: > > #define NR_syscalls __NR_syscalls Thanks for your reply! Sorry for the delayed response :( Yes. I'll add this change in the next version of the patch series. - Firoz > >> In file included from include/linux/smp.h:11:0, >> from include/linux/tracepoint.h:17, >> from include/trace/syscall.h:5, >> from kernel/trace/trace_syscalls.c:2: >> kernel/trace/trace_syscalls.c:559:23: warning: 'enabled_perf_exit_syscalls' defined but not used [-Wunused-variable] >> static DECLARE_BITMAP(enabled_perf_exit_syscalls, NR_syscalls); >> ^ >> include/linux/types.h:11:16: note: in definition of macro 'DECLARE_BITMAP' >> unsigned long name[BITS_TO_LONGS(bits)] >> ^~~~ >> kernel/trace/trace_syscalls.c:558:23: warning: 'enabled_perf_enter_syscalls' defined but not used [-Wunused-variable] >> static DECLARE_BITMAP(enabled_perf_enter_syscalls, NR_syscalls); >> ^ >> include/linux/types.h:11:16: note: in definition of macro 'DECLARE_BITMAP' >> unsigned long name[BITS_TO_LONGS(bits)] >> ^~~~ >> >> vim +243 kernel/trace/trace.h >> >> 490901078 Steven Rostedt (Red Hat 2015-09-24 196) >> bc0c38d13 Steven Rostedt 2008-05-12 197 /* >> bc0c38d13 Steven Rostedt 2008-05-12 198 * The trace array - an array of per-CPU trace arrays. This is the >> bc0c38d13 Steven Rostedt 2008-05-12 199 * highest level data structure that individual tracers deal with. >> bc0c38d13 Steven Rostedt 2008-05-12 200 * They have on/off state as well: >> bc0c38d13 Steven Rostedt 2008-05-12 201 */ >> bc0c38d13 Steven Rostedt 2008-05-12 202 struct trace_array { >> ae63b31e4 Steven Rostedt 2012-05-03 203 struct list_head list; >> 277ba0446 Steven Rostedt 2012-08-03 204 char *name; >> 12883efb6 Steven Rostedt (Red Hat 2013-03-05 205) struct trace_buffer trace_buffer; >> 12883efb6 Steven Rostedt (Red Hat 2013-03-05 206) #ifdef CONFIG_TRACER_MAX_TRACE >> 12883efb6 Steven Rostedt (Red Hat 2013-03-05 207) /* >> 12883efb6 Steven Rostedt (Red Hat 2013-03-05 208) * The max_buffer is used to snapshot the trace when a maximum >> 12883efb6 Steven Rostedt (Red Hat 2013-03-05 209) * latency is reached, or when the user initiates a snapshot. >> 12883efb6 Steven Rostedt (Red Hat 2013-03-05 210) * Some tracers will use this to store a maximum trace while >> 12883efb6 Steven Rostedt (Red Hat 2013-03-05 211) * it continues examining live traces. >> 12883efb6 Steven Rostedt (Red Hat 2013-03-05 212) * >> 12883efb6 Steven Rostedt (Red Hat 2013-03-05 213) * The buffers for the max_buffer are set up the same as the trace_buffer >> 12883efb6 Steven Rostedt (Red Hat 2013-03-05 214) * When a snapshot is taken, the buffer of the max_buffer is swapped >> 12883efb6 Steven Rostedt (Red Hat 2013-03-05 215) * with the buffer of the trace_buffer and the buffers are reset for >> 12883efb6 Steven Rostedt (Red Hat 2013-03-05 216) * the trace_buffer so the tracing can continue. >> 12883efb6 Steven Rostedt (Red Hat 2013-03-05 217) */ >> 12883efb6 Steven Rostedt (Red Hat 2013-03-05 218) struct trace_buffer max_buffer; >> 45ad21ca5 Steven Rostedt (Red Hat 2013-03-05 219) bool allocated_snapshot; >> f971cc9aa Steven Rostedt (Red Hat 2016-09-07 220) #endif >> f971cc9aa Steven Rostedt (Red Hat 2016-09-07 221) #if defined(CONFIG_TRACER_MAX_TRACE) || defined(CONFIG_HWLAT_TRACER) >> 6d9b3fa5e Steven Rostedt (Red Hat 2014-01-14 222) unsigned long max_latency; >> 12883efb6 Steven Rostedt (Red Hat 2013-03-05 223) #endif >> 490901078 Steven Rostedt (Red Hat 2015-09-24 224) struct trace_pid_list __rcu *filtered_pids; >> 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 225) /* >> 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 226) * max_lock is used to protect the swapping of buffers >> 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 227) * when taking a max snapshot. The buffers themselves are >> 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 228) * protected by per_cpu spinlocks. But the action of the swap >> 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 229) * needs its own lock. >> 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 230) * >> 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 231) * This is defined as a arch_spinlock_t in order to help >> 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 232) * with performance when lockdep debugging is enabled. >> 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 233) * >> 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 234) * It is also used in other places outside the update_max_tr >> 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 235) * so it needs to be defined outside of the >> 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 236) * CONFIG_TRACER_MAX_TRACE. >> 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 237) */ >> 0b9b12c1b Steven Rostedt (Red Hat 2014-01-14 238) arch_spinlock_t max_lock; >> 499e54705 Steven Rostedt 2012-02-22 239 int buffer_disabled; >> 12ab74ee0 Steven Rostedt 2012-08-08 240 #ifdef CONFIG_FTRACE_SYSCALLS >> 12ab74ee0 Steven Rostedt 2012-08-08 241 int sys_refcount_enter; >> 12ab74ee0 Steven Rostedt 2012-08-08 242 int sys_refcount_exit; >> 7f1d2f821 Steven Rostedt (Red Hat 2015-05-05 @243) struct trace_event_file __rcu *enter_syscall_files[NR_syscalls]; >> 7f1d2f821 Steven Rostedt (Red Hat 2015-05-05 244) struct trace_event_file __rcu *exit_syscall_files[NR_syscalls]; >> 12ab74ee0 Steven Rostedt 2012-08-08 245 #endif >> 2b6080f28 Steven Rostedt 2012-05-11 246 int stop_count; >> 2b6080f28 Steven Rostedt 2012-05-11 247 int clock_id; >> 37aea98b8 Steven Rostedt (Red Hat 2015-09-30 248) int nr_topts; >> 065e63f95 Steven Rostedt (VMware 2017-08-31 249) bool clear_trace; >> 2b6080f28 Steven Rostedt 2012-05-11 250 struct tracer *current_trace; >> 983f938ae Steven Rostedt (Red Hat 2015-09-30 251) unsigned int trace_flags; >> 9a38a8856 Steven Rostedt (Red Hat 2015-09-30 252) unsigned char trace_flags_index[TRACE_FLAGS_MAX_SIZE]; >> ae63b31e4 Steven Rostedt 2012-05-03 253 unsigned int flags; >> 2b6080f28 Steven Rostedt 2012-05-11 254 raw_spinlock_t start_lock; >> ae63b31e4 Steven Rostedt 2012-05-03 255 struct dentry *dir; >> 2b6080f28 Steven Rostedt 2012-05-11 256 struct dentry *options; >> 2b6080f28 Steven Rostedt 2012-05-11 257 struct dentry *percpu_dir; >> ae63b31e4 Steven Rostedt 2012-05-03 258 struct dentry *event_dir; >> 37aea98b8 Steven Rostedt (Red Hat 2015-09-30 259) struct trace_options *topts; >> ae63b31e4 Steven Rostedt 2012-05-03 260 struct list_head systems; >> ae63b31e4 Steven Rostedt 2012-05-03 261 struct list_head events; >> 3dd809536 Steven Rostedt (VMware 2018-05-09 262) struct trace_event_file *trace_marker_file; >> ccfe9e42e Alexander Z Lam 2013-08-08 263 cpumask_var_t tracing_cpumask; /* only trace on set CPUs */ >> a695cb581 Steven Rostedt (Red Hat 2013-03-06 264) int ref; >> f20a58062 Steven Rostedt (Red Hat 2013-11-07 265) #ifdef CONFIG_FUNCTION_TRACER >> f20a58062 Steven Rostedt (Red Hat 2013-11-07 266) struct ftrace_ops *ops; >> 345ddcc88 Steven Rostedt (Red Hat 2016-04-22 267) struct trace_pid_list __rcu *function_pids; >> 04ec7bb64 Steven Rostedt (VMware 2017-04-05 268) #ifdef CONFIG_DYNAMIC_FTRACE >> 673feb9d7 Steven Rostedt (VMware 2017-06-23 269) /* All of these are protected by the ftrace_lock */ >> 04ec7bb64 Steven Rostedt (VMware 2017-04-05 270) struct list_head func_probes; >> 673feb9d7 Steven Rostedt (VMware 2017-06-23 271) struct list_head mod_trace; >> 673feb9d7 Steven Rostedt (VMware 2017-06-23 272) struct list_head mod_notrace; >> 04ec7bb64 Steven Rostedt (VMware 2017-04-05 273) #endif >> f20a58062 Steven Rostedt (Red Hat 2013-11-07 274) /* function tracing enabled */ >> f20a58062 Steven Rostedt (Red Hat 2013-11-07 275) int function_enabled; >> f20a58062 Steven Rostedt (Red Hat 2013-11-07 276) #endif >> 00b414529 Tom Zanussi 2018-01-15 277 int time_stamp_abs_ref; >> 067fe038e Tom Zanussi 2018-01-15 278 struct list_head hist_vars; >> bc0c38d13 Steven Rostedt 2008-05-12 279 }; >> bc0c38d13 Steven Rostedt 2008-05-12 280 >> >> :::::: The code at line 243 was first introduced by commit >> :::::: 7f1d2f8210195c8c309d424a77dbf06a6d2186f4 tracing: Rename ftrace_event_file to trace_event_file >> >> :::::: TO: Steven Rostedt (Red Hat) <rostedt@goodmis.org> >> :::::: CC: Steven Rostedt <rostedt@goodmis.org> >> >> --- >> 0-DAY kernel test infrastructure Open Source Technology Center >> https://lists.01.org/pipermail/kbuild-all Intel Corporation >
diff --git a/arch/sh/include/asm/ftrace.h b/arch/sh/include/asm/ftrace.h index b1c1dc0..968a9bb 100644 --- a/arch/sh/include/asm/ftrace.h +++ b/arch/sh/include/asm/ftrace.h @@ -5,7 +5,7 @@ #ifdef CONFIG_FUNCTION_TRACER #define MCOUNT_INSN_SIZE 4 /* sizeof mcount call */ -#define FTRACE_SYSCALL_MAX NR_syscalls +#define FTRACE_SYSCALL_MAX __NR_syscalls #ifndef __ASSEMBLY__ extern void mcount(void); diff --git a/arch/sh/include/uapi/asm/unistd_32.h b/arch/sh/include/uapi/asm/unistd_32.h index 58f04cf..2c4f087 100644 --- a/arch/sh/include/uapi/asm/unistd_32.h +++ b/arch/sh/include/uapi/asm/unistd_32.h @@ -396,6 +396,6 @@ #define __NR_preadv2 381 #define __NR_pwritev2 382 -#define NR_syscalls 383 +#define __NR_syscalls 383 #endif /* __ASM_SH_UNISTD_32_H */ diff --git a/arch/sh/include/uapi/asm/unistd_64.h b/arch/sh/include/uapi/asm/unistd_64.h index 6f809a5..9e6e8cb 100644 --- a/arch/sh/include/uapi/asm/unistd_64.h +++ b/arch/sh/include/uapi/asm/unistd_64.h @@ -416,6 +416,6 @@ #define __NR_preadv2 392 #define __NR_pwritev2 393 -#define NR_syscalls 394 +#define __NR_syscalls 394 #endif /* __ASM_SH_UNISTD_64_H */ diff --git a/arch/sh/kernel/cpu/sh5/entry.S b/arch/sh/kernel/cpu/sh5/entry.S index 0c8d037..d2ff022 100644 --- a/arch/sh/kernel/cpu/sh5/entry.S +++ b/arch/sh/kernel/cpu/sh5/entry.S @@ -1192,7 +1192,7 @@ system_call: STI() pta syscall_allowed, tr0 - movi NR_syscalls - 1, r4 /* Last valid */ + movi __NR_syscalls - 1, r4 /* Last valid */ bgeu/l r4, r5, tr0 syscall_bad: diff --git a/arch/sh/kernel/entry-common.S b/arch/sh/kernel/entry-common.S index 28cc612..80ea3c4 100644 --- a/arch/sh/kernel/entry-common.S +++ b/arch/sh/kernel/entry-common.S @@ -396,7 +396,7 @@ syscall_exit: #if !defined(CONFIG_CPU_SH2) 1: .long TRA #endif -2: .long NR_syscalls +2: .long __NR_syscalls 3: .long sys_call_table 7: .long do_syscall_trace_enter 8: .long do_syscall_trace_leave
NR_syscalls macro holds the number of system call exist in SH arch- itecture. One of the patch in this patch series has a script which will generate a uapi header based on syscall.tbl file. The syscall.tbl file contains the total number of system call information, which will be used to update NR_syscalls. The macro name also changed form NR_syscalls to __NR_syscalls for making the name convention same across all architecture. While __NR_syscalls isn't strictly part of the uapi, having it as part of the generated header to simplifies the implementation. Signed-off-by: Firoz Khan <firoz.khan@linaro.org> --- arch/sh/include/asm/ftrace.h | 2 +- arch/sh/include/uapi/asm/unistd_32.h | 2 +- arch/sh/include/uapi/asm/unistd_64.h | 2 +- arch/sh/kernel/cpu/sh5/entry.S | 2 +- arch/sh/kernel/entry-common.S | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-)