Re: [PATCH V4 11/20] rv/monitor: wwnr instrumentation and Makefile/Kconfig entries

From: kernel test robot
Date: Thu Jun 16 2022 - 09:48:10 EST


Hi Daniel,

I love your patch! Perhaps something to improve:

[auto build test WARNING on rostedt-trace/for-next]
[also build test WARNING on tip/sched/core]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url: https://github.com/intel-lab-lkp/linux/commits/Daniel-Bristot-de-Oliveira/The-Runtime-Verification-RV-interface/20220616-164837
base: https://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace.git for-next
config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20220616/202206162130.0xtEgymS-lkp@xxxxxxxxx/config)
compiler: gcc-11 (Debian 11.3.0-3) 11.3.0
reproduce (this is a W=1 build):
# https://github.com/intel-lab-lkp/linux/commit/31dad6685057c10f6301fbc4018b6586fce0757e
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Daniel-Bristot-de-Oliveira/The-Runtime-Verification-RV-interface/20220616-164837
git checkout 31dad6685057c10f6301fbc4018b6586fce0757e
# save the config file
mkdir build_dir && cp config build_dir/.config
make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash kernel/trace/rv/

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

All warnings (new ones prefixed by >>):

In file included from kernel/trace/rv/monitors/wwnr/wwnr.c:8:
kernel/trace/rv/monitors/wwnr/wwnr.c: In function 'start_wwnr':
kernel/trace/rv/monitors/wwnr/wwnr.c:62:53: error: passing argument 1 of 'check_trace_callback_type_sched_switch' from incompatible pointer type [-Werror=incompatible-pointer-types]
62 | rv_attach_trace_probe("wwnr", sched_switch, handle_switch);
| ^~~~~~~~~~~~~
| |
| void (*)(void *, bool, struct task_struct *, struct task_struct *, unsigned int) {aka void (*)(void *, _Bool, struct task_struct *, struct task_struct *, unsigned int)}
include/rv/instrumentation.h:15:48: note: in definition of macro 'rv_attach_trace_probe'
15 | check_trace_callback_type_##tp(rv_handler); \
| ^~~~~~~~~~
In file included from kernel/trace/rv/monitors/wwnr/wwnr.c:3:
include/linux/tracepoint.h:279:49: note: expected 'void (*)(void *, bool, unsigned int, struct task_struct *, struct task_struct *)' {aka 'void (*)(void *, _Bool, unsigned int, struct task_struct *, struct task_struct *)'} but argument is of type 'void (*)(void *, bool, struct task_struct *, struct task_struct *, unsigned int)' {aka 'void (*)(void *, _Bool, struct task_struct *, struct task_struct *, unsigned int)'}
279 | check_trace_callback_type_##name(void (*cb)(data_proto)) \
| ~~~~~~~^~~~~~~~~~~~~~~
include/linux/tracepoint.h:419:9: note: in expansion of macro '__DECLARE_TRACE'
419 | __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), \
| ^~~~~~~~~~~~~~~
include/linux/tracepoint.h:553:9: note: in expansion of macro 'DECLARE_TRACE'
553 | DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
| ^~~~~~~~~~~~~
include/trace/events/sched.h:222:1: note: in expansion of macro 'TRACE_EVENT'
222 | TRACE_EVENT(sched_switch,
| ^~~~~~~~~~~
In file included from include/linux/printk.h:11,
from include/linux/kernel.h:29,
from include/linux/interrupt.h:6,
from include/linux/trace_recursion.h:5,
from include/linux/ftrace.h:10,
from kernel/trace/rv/monitors/wwnr/wwnr.c:2:
kernel/trace/rv/monitors/wwnr/wwnr.c:62:53: error: passing argument 1 of 'register_trace_sched_switch' from incompatible pointer type [-Werror=incompatible-pointer-types]
62 | rv_attach_trace_probe("wwnr", sched_switch, handle_switch);
| ^~~~~~~~~~~~~
| |
| void (*)(void *, bool, struct task_struct *, struct task_struct *, unsigned int) {aka void (*)(void *, _Bool, struct task_struct *, struct task_struct *, unsigned int)}
include/linux/once_lite.h:15:41: note: in definition of macro 'DO_ONCE_LITE_IF'
15 | bool __ret_do_once = !!(condition); \
| ^~~~~~~~~
include/rv/instrumentation.h:16:17: note: in expansion of macro 'WARN_ONCE'
16 | WARN_ONCE(register_trace_##tp(rv_handler, NULL), \
| ^~~~~~~~~
kernel/trace/rv/monitors/wwnr/wwnr.c:62:9: note: in expansion of macro 'rv_attach_trace_probe'
62 | rv_attach_trace_probe("wwnr", sched_switch, handle_switch);
| ^~~~~~~~~~~~~~~~~~~~~
In file included from kernel/trace/rv/monitors/wwnr/wwnr.c:3:
include/linux/tracepoint.h:260:38: note: expected 'void (*)(void *, bool, unsigned int, struct task_struct *, struct task_struct *)' {aka 'void (*)(void *, _Bool, unsigned int, struct task_struct *, struct task_struct *)'} but argument is of type 'void (*)(void *, bool, struct task_struct *, struct task_struct *, unsigned int)' {aka 'void (*)(void *, _Bool, struct task_struct *, struct task_struct *, unsigned int)'}
260 | register_trace_##name(void (*probe)(data_proto), void *data) \
| ~~~~~~~^~~~~~~~~~~~~~~~~~
include/linux/tracepoint.h:419:9: note: in expansion of macro '__DECLARE_TRACE'
419 | __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), \
| ^~~~~~~~~~~~~~~
include/linux/tracepoint.h:553:9: note: in expansion of macro 'DECLARE_TRACE'
553 | DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
| ^~~~~~~~~~~~~
include/trace/events/sched.h:222:1: note: in expansion of macro 'TRACE_EVENT'
222 | TRACE_EVENT(sched_switch,
| ^~~~~~~~~~~
In file included from kernel/trace/rv/monitors/wwnr/wwnr.c:8:
kernel/trace/rv/monitors/wwnr/wwnr.c: In function 'stop_wwnr':
kernel/trace/rv/monitors/wwnr/wwnr.c:72:53: error: passing argument 1 of 'unregister_trace_sched_switch' from incompatible pointer type [-Werror=incompatible-pointer-types]
72 | rv_detach_trace_probe("wwnr", sched_switch, handle_switch);
| ^~~~~~~~~~~~~
| |
| void (*)(void *, bool, struct task_struct *, struct task_struct *, unsigned int) {aka void (*)(void *, _Bool, struct task_struct *, struct task_struct *, unsigned int)}
include/rv/instrumentation.h:22:39: note: in definition of macro 'rv_detach_trace_probe'
22 | unregister_trace_##tp(rv_handler, NULL); \
| ^~~~~~~~~~
In file included from kernel/trace/rv/monitors/wwnr/wwnr.c:3:
include/linux/tracepoint.h:273:40: note: expected 'void (*)(void *, bool, unsigned int, struct task_struct *, struct task_struct *)' {aka 'void (*)(void *, _Bool, unsigned int, struct task_struct *, struct task_struct *)'} but argument is of type 'void (*)(void *, bool, struct task_struct *, struct task_struct *, unsigned int)' {aka 'void (*)(void *, _Bool, struct task_struct *, struct task_struct *, unsigned int)'}
273 | unregister_trace_##name(void (*probe)(data_proto), void *data) \
| ~~~~~~~^~~~~~~~~~~~~~~~~~
include/linux/tracepoint.h:419:9: note: in expansion of macro '__DECLARE_TRACE'
419 | __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), \
| ^~~~~~~~~~~~~~~
include/linux/tracepoint.h:553:9: note: in expansion of macro 'DECLARE_TRACE'
553 | DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
| ^~~~~~~~~~~~~
include/trace/events/sched.h:222:1: note: in expansion of macro 'TRACE_EVENT'
222 | TRACE_EVENT(sched_switch,
| ^~~~~~~~~~~
kernel/trace/rv/monitors/wwnr/wwnr.c: At top level:
>> kernel/trace/rv/monitors/wwnr/wwnr.c:90:5: warning: no previous prototype for 'register_wwnr' [-Wmissing-prototypes]
90 | int register_wwnr(void)
| ^~~~~~~~~~~~~
>> kernel/trace/rv/monitors/wwnr/wwnr.c:96:6: warning: no previous prototype for 'unregister_wwnr' [-Wmissing-prototypes]
96 | void unregister_wwnr(void)
| ^~~~~~~~~~~~~~~
cc1: some warnings being treated as errors


vim +/register_wwnr +90 kernel/trace/rv/monitors/wwnr/wwnr.c

13d11b21732323 Daniel Bristot de Oliveira 2022-06-16 89
13d11b21732323 Daniel Bristot de Oliveira 2022-06-16 @90 int register_wwnr(void)
13d11b21732323 Daniel Bristot de Oliveira 2022-06-16 91 {
13d11b21732323 Daniel Bristot de Oliveira 2022-06-16 92 rv_register_monitor(&rv_wwnr);
13d11b21732323 Daniel Bristot de Oliveira 2022-06-16 93 return 0;
13d11b21732323 Daniel Bristot de Oliveira 2022-06-16 94 }
13d11b21732323 Daniel Bristot de Oliveira 2022-06-16 95
13d11b21732323 Daniel Bristot de Oliveira 2022-06-16 @96 void unregister_wwnr(void)
13d11b21732323 Daniel Bristot de Oliveira 2022-06-16 97 {
13d11b21732323 Daniel Bristot de Oliveira 2022-06-16 98 if (rv_wwnr.enabled)
13d11b21732323 Daniel Bristot de Oliveira 2022-06-16 99 stop_wwnr();
13d11b21732323 Daniel Bristot de Oliveira 2022-06-16 100
13d11b21732323 Daniel Bristot de Oliveira 2022-06-16 101 rv_unregister_monitor(&rv_wwnr);
13d11b21732323 Daniel Bristot de Oliveira 2022-06-16 102 }
13d11b21732323 Daniel Bristot de Oliveira 2022-06-16 103

--
0-DAY CI Kernel Test Service
https://01.org/lkp