Re: [PATCH v4 02/10] user_events: Add minimal support for trace_event into ftrace

From: kernel test robot
Date: Thu Nov 04 2021 - 17:35:16 EST


Hi Beau,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on rostedt-trace/for-next]
[also build test ERROR on shuah-kselftest/next linux/master linus/master v5.15 next-20211104]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url: https://github.com/0day-ci/linux/commits/Beau-Belgrave/user_events-Enable-user-processes-to-create-and-write-to-trace-events/20211105-010650
base: https://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace.git for-next
config: powerpc-allmodconfig (attached as .config)
compiler: powerpc-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/da0961ad45aa1192b47b8a80de6b17437434ae4a
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Beau-Belgrave/user_events-Enable-user-processes-to-create-and-write-to-trace-events/20211105-010650
git checkout da0961ad45aa1192b47b8a80de6b17437434ae4a
# save the attached .config to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=powerpc SHELL=/bin/bash kernel/trace/

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

All errors (new ones prefixed by >>):

kernel/trace/trace_events_user.c: In function 'user_event_parse':
>> kernel/trace/trace_events_user.c:665:9: error: too few arguments to function 'dyn_event_add'
665 | dyn_event_add(&user->devent);
| ^~~~~~~~~~~~~
In file included from kernel/trace/trace_events_user.c:23:
kernel/trace/trace_dynevent.h:79:19: note: declared here
79 | static inline int dyn_event_add(struct dyn_event *ev,
| ^~~~~~~~~~~~~


vim +/dyn_event_add +665 kernel/trace/trace_events_user.c

596
597 /*
598 * Parses the event name, arguments and flags then registers if successful.
599 */
600 static int user_event_parse(char *name, char *args, char *flags,
601 struct user_event **newuser)
602 {
603 int ret;
604 int index;
605 u32 key;
606 struct user_event *user = find_user_event(name, &key);
607
608 if (user) {
609 *newuser = user;
610 ret = 0;
611 goto put_name;
612 }
613
614 index = find_first_zero_bit(page_bitmap, MAX_EVENTS);
615
616 if (index == MAX_EVENTS) {
617 ret = -EMFILE;
618 goto put_name;
619 }
620
621 user = kzalloc(sizeof(*user), GFP_KERNEL);
622
623 if (!user) {
624 ret = -ENOMEM;
625 goto put_name;
626 }
627
628 INIT_LIST_HEAD(&user->class.fields);
629 INIT_LIST_HEAD(&user->fields);
630
631 user->tracepoint.name = name;
632
633 user_event_parse_flags(user, flags);
634
635 ret = user_event_parse_fields(user, args);
636
637 if (ret)
638 goto put_user;
639
640 /* Minimal print format */
641 user->call.print_fmt = "\"\"";
642
643 user->call.data = user;
644 user->call.class = &user->class;
645 user->call.name = name;
646 user->call.flags = TRACE_EVENT_FL_TRACEPOINT;
647 user->call.tp = &user->tracepoint;
648 user->call.event.funcs = &user_event_funcs;
649
650 user->class.system = USER_EVENTS_SYSTEM;
651 user->class.fields_array = user_event_fields_array;
652 user->class.get_fields = user_event_get_fields;
653 user->class.reg = user_event_reg;
654 user->class.probe = user_event_ftrace;
655
656 mutex_lock(&event_mutex);
657 ret = user_event_trace_register(user);
658 mutex_unlock(&event_mutex);
659
660 if (ret)
661 goto put_user;
662
663 user->index = index;
664 dyn_event_init(&user->devent, &user_event_dops);
> 665 dyn_event_add(&user->devent);
666 set_bit(user->index, page_bitmap);
667 hash_add(register_table, &user->node, key);
668
669 *newuser = user;
670 return 0;
671 put_user:
672 user_event_destroy_fields(user);
673 kfree(user);
674 put_name:
675 kfree(name);
676 return ret;
677 }
678

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

Attachment: .config.gz
Description: application/gzip