[PATCH v7] binder: transaction latency tracking for user build

Frankie Chang Frankie.Chang at mediatek.com
Mon Sep 7 02:49:29 EDT 2020


On Thu, 2020-09-03 at 18:21 +0200, Greg Kroah-Hartman wrote:
> On Tue, Aug 04, 2020 at 09:59:09PM +0800, Frankie Chang wrote:
> > 
> > Frankie.Chang (3):
> >   binder: move structs from core file to header file
> >   binder: add trace at free transaction.
> >   binder: add transaction latency tracer
> > 
> >  drivers/android/Kconfig                 |    8 +
> >  drivers/android/Makefile                |    1 +
> >  drivers/android/binder.c                |  425 ++-----------------------------
> >  drivers/android/binder_internal.h       |  417 ++++++++++++++++++++++++++++++
> >  drivers/android/binder_latency_tracer.c |  112 ++++++++
> >  drivers/android/binder_trace.h          |   49 ++++
> >  6 files changed, 607 insertions(+), 405 deletions(-)  create mode 100644 drivers/android/binder_latency_tracer.c
> 
> This series blows up the build into lots of tiny pieces, how was it
> tested?
> 

I am sorry that I had built pass.on the too older kernel, and some of
api had been deprecated.
I have fixed these errors in local, and I add the
EXPORT_TRACEPOINT_SYMBOL for binder_latency_tracer to be ko needed.

Do I need to push a patch V8 or I provide the fixed code here ?

~/mtk_soc_new$ cat b.log | grep binder
  CC      drivers/android/binderfs.o
  CC      drivers/android/binder.o
  CC [M]  drivers/android/binder_latency_tracer.o
  LD [M]  drivers/android/binder_latency_tracer.ko

~/mtk_soc_new$ tail -n 10 b.log
make[1]: Leaving directory `/proj/mtk16184/mtk_soc_new/kernel/mediatek'
make ARCH=arm64
CROSS_COMPILE=/proj/mtk16184/mtk_soc_new/prebuilt/toolchain/aarch64/usr/bin/aarch64-poky-linux/aarch64-poky-linux- O=/proj/mtk16184/mtk_soc_new/out -C kernel/mediatek dtbs
make[1]: Entering directory `/proj/mtk16184/mtk_soc_new/kernel/mediatek'
make[2]: Entering directory `/proj/mtk16184/mtk_soc_new/out'
arch/arm64/Makefile:26: ld does not support --fix-cortex-a53-843419;
kernel may be susceptible to erratum
arch/arm64/Makefile:34: LSE atomics not supported by binutils
make[2]: Leaving directory `/proj/mtk16184/mtk_soc_new/out'
make[1]: Leaving directory `/proj/mtk16184/mtk_soc_new/kernel/mediatek'
cat /proj/mtk16184/mtk_soc_new/out/arch/arm64/boot/Image.gz /proj/mtk16184/mtk_soc_new/out/arch/arm64/boot/dts/mediatek/mt6779-evb.dtb > /proj/mtk16184/mtk_soc_new/out/arch/arm64/boot/Image.gz-dtb
/proj/mtk16184/mtk_soc_new/prebuilt/bootable/mkbootimg
--kernel /proj/mtk16184/mtk_soc_new/out/arch/arm64/boot/Image.gz-dtb
--ramdisk /proj/mtk16184/mtk_soc_new/prebuilt/bootable/6779_loader/ramdisk.img --base 0x40000000 --ramdisk_offset 0x04000000 --kernel_offset 0x00080000 --cmdline bootopt=64S3,32N2,64N2 --output /proj/mtk16184/mtk_soc_new/prebuilt/bootable/6779_loader/boot.img


> Here's my error logs:
> 
> In file included from drivers/android/binderfs.c:37:
> drivers/android/binder_internal.h:537:17: error: field ‘tv’ has incomplete type
>   537 |  struct timeval tv;
>       |                 ^~
> In file included from drivers/android/binder_trace.h:12,
>                  from drivers/android/binder_alloc.c:27:
> drivers/android/binder_trace.h: In function ‘trace_binder_txn_latency_alloc’:
> drivers/android/binder_trace.h:100:13: error: ‘e’ undeclared (first use in this function)
>   100 |  TP_ARGS(t, e)
>       |             ^
> ./include/linux/tracepoint.h:191:33: note: in definition of macro ‘__DO_TRACE’
>   191 |     ((void(*)(proto))(it_func))(args); \
>       |                                 ^~~~
> ./include/linux/tracepoint.h:236:5: note: in expansion of macro ‘TP_ARGS’
>   236 |     TP_ARGS(data_args),   \
>       |     ^~~~~~~
> ./include/linux/tracepoint.h:375:2: note: in expansion of macro ‘__DECLARE_TRACE’
>   375 |  __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args),  \
>       |  ^~~~~~~~~~~~~~~
> ./include/linux/tracepoint.h:378:4: note: in expansion of macro ‘PARAMS’
>   378 |    PARAMS(__data, args))
>       |    ^~~~~~
> drivers/android/binder_trace.h:98:1: note: in expansion of macro ‘DECLARE_TRACE’
>    98 | DECLARE_TRACE(binder_txn_latency_alloc,
>       | ^~~~~~~~~~~~~
> drivers/android/binder_trace.h:100:2: note: in expansion of macro ‘TP_ARGS’
>   100 |  TP_ARGS(t, e)
>       |  ^~~~~~~
> drivers/android/binder_trace.h:100:13: note: each undeclared identifier is reported only once for each function it appears in
>   100 |  TP_ARGS(t, e)
>       |             ^
> ./include/linux/tracepoint.h:191:33: note: in definition of macro ‘__DO_TRACE’
>   191 |     ((void(*)(proto))(it_func))(args); \
>       |                                 ^~~~
> ./include/linux/tracepoint.h:236:5: note: in expansion of macro ‘TP_ARGS’
>   236 |     TP_ARGS(data_args),   \
>       |     ^~~~~~~
> ./include/linux/tracepoint.h:375:2: note: in expansion of macro ‘__DECLARE_TRACE’
>   375 |  __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args),  \
>       |  ^~~~~~~~~~~~~~~
> ./include/linux/tracepoint.h:378:4: note: in expansion of macro ‘PARAMS’
>   378 |    PARAMS(__data, args))
>       |    ^~~~~~
> drivers/android/binder_trace.h:98:1: note: in expansion of macro ‘DECLARE_TRACE’
>    98 | DECLARE_TRACE(binder_txn_latency_alloc,
>       | ^~~~~~~~~~~~~
> drivers/android/binder_trace.h:100:2: note: in expansion of macro ‘TP_ARGS’
>   100 |  TP_ARGS(t, e)
>       |  ^~~~~~~
> ./include/linux/tracepoint.h:191:6: error: too many arguments to function ‘(void (*)(void *, struct binder_transaction *))it_func’
>   191 |     ((void(*)(proto))(it_func))(args); \
>       |     ~^~~~~~~~~~~~~~~~~~~~~~~~~~
> ./include/linux/tracepoint.h:234:4: note: in expansion of macro ‘__DO_TRACE’
>   234 |    __DO_TRACE(&__tracepoint_##name,  \
>       |    ^~~~~~~~~~
> ./include/linux/tracepoint.h:375:2: note: in expansion of macro ‘__DECLARE_TRACE’
>   375 |  __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args),  \
>       |  ^~~~~~~~~~~~~~~
> drivers/android/binder_trace.h:98:1: note: in expansion of macro ‘DECLARE_TRACE’
>    98 | DECLARE_TRACE(binder_txn_latency_alloc,
>       | ^~~~~~~~~~~~~
> drivers/android/binder_trace.h: In function ‘trace_binder_txn_latency_alloc_rcuidle’:
> drivers/android/binder_trace.h:100:13: error: ‘e’ undeclared (first use in this function)
>   100 |  TP_ARGS(t, e)
>       |             ^
> ./include/linux/tracepoint.h:191:33: note: in definition of macro ‘__DO_TRACE’
>   191 |     ((void(*)(proto))(it_func))(args); \
>       |                                 ^~~~
> ./include/linux/tracepoint.h:210:5: note: in expansion of macro ‘TP_ARGS’
>   210 |     TP_ARGS(data_args),   \
>       |     ^~~~~~~
> ./include/linux/tracepoint.h:244:2: note: in expansion of macro ‘__DECLARE_TRACE_RCU’
>   244 |  __DECLARE_TRACE_RCU(name, PARAMS(proto), PARAMS(args),  \
>       |  ^~~~~~~~~~~~~~~~~~~
> ./include/linux/tracepoint.h:245:37: note: in expansion of macro ‘PARAMS’
>   245 |   PARAMS(cond), PARAMS(data_proto), PARAMS(data_args)) \
>       |                                     ^~~~~~
> ./include/linux/tracepoint.h:375:2: note: in expansion of macro ‘__DECLARE_TRACE’
>   375 |  __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args),  \
>       |  ^~~~~~~~~~~~~~~
> ./include/linux/tracepoint.h:378:4: note: in expansion of macro ‘PARAMS’
>   378 |    PARAMS(__data, args))
>       |    ^~~~~~
> drivers/android/binder_trace.h:98:1: note: in expansion of macro ‘DECLARE_TRACE’
>    98 | DECLARE_TRACE(binder_txn_latency_alloc,
>       | ^~~~~~~~~~~~~
> drivers/android/binder_trace.h:100:2: note: in expansion of macro ‘TP_ARGS’
>   100 |  TP_ARGS(t, e)
>       |  ^~~~~~~
> ./include/linux/tracepoint.h:191:6: error: too many arguments to function ‘(void (*)(void *, struct binder_transaction *))it_func’
>   191 |     ((void(*)(proto))(it_func))(args); \
>       |     ~^~~~~~~~~~~~~~~~~~~~~~~~~~
> ./include/linux/tracepoint.h:208:4: note: in expansion of macro ‘__DO_TRACE’
>   208 |    __DO_TRACE(&__tracepoint_##name,  \
>       |    ^~~~~~~~~~
> ./include/linux/tracepoint.h:244:2: note: in expansion of macro ‘__DECLARE_TRACE_RCU’
>   244 |  __DECLARE_TRACE_RCU(name, PARAMS(proto), PARAMS(args),  \
>       |  ^~~~~~~~~~~~~~~~~~~
> ./include/linux/tracepoint.h:375:2: note: in expansion of macro ‘__DECLARE_TRACE’
>   375 |  __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args),  \
>       |  ^~~~~~~~~~~~~~~
> drivers/android/binder_trace.h:98:1: note: in expansion of macro ‘DECLARE_TRACE’
>    98 | DECLARE_TRACE(binder_txn_latency_alloc,
>       | ^~~~~~~~~~~~~
> drivers/android/binder_trace.h: At top level:
> drivers/android/binder_trace.h:111:4: error: expected ‘;’, ‘,’ or ‘)’ before ‘int’
>   111 |    int from_proc, int from_thread
>       |    ^~~
> ./include/linux/tracepoint.h:231:34: note: in definition of macro ‘__DECLARE_TRACE’
>   231 |  static inline void trace_##name(proto)    \
>       |                                  ^~~~~
> ./include/linux/tracepoint.h:375:24: note: in expansion of macro ‘PARAMS’
>   375 |  __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args),  \
>       |                        ^~~~~~
> ./include/linux/tracepoint.h:511:2: note: in expansion of macro ‘DECLARE_TRACE’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |  ^~~~~~~~~~~~~
> ./include/linux/tracepoint.h:511:22: note: in expansion of macro ‘PARAMS’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |                      ^~~~~~
> drivers/android/binder_trace.h:109:1: note: in expansion of macro ‘TRACE_EVENT’
>   109 | TRACE_EVENT(binder_txn_latency_free,
>       | ^~~~~~~~~~~
> drivers/android/binder_trace.h:110:2: note: in expansion of macro ‘TP_PROTO’
>   110 |  TP_PROTO(struct binder_transaction *t
>       |  ^~~~~~~~
> drivers/android/binder_trace.h:111:4: error: expected ‘;’, ‘,’ or ‘)’ before ‘int’
>   111 |    int from_proc, int from_thread
>       |    ^~~
> ./include/linux/tracepoint.h:205:44: note: in definition of macro ‘__DECLARE_TRACE_RCU’
>   205 |  static inline void trace_##name##_rcuidle(proto)  \
>       |                                            ^~~~~
> ./include/linux/tracepoint.h:244:28: note: in expansion of macro ‘PARAMS’
>   244 |  __DECLARE_TRACE_RCU(name, PARAMS(proto), PARAMS(args),  \
>       |                            ^~~~~~
> ./include/linux/tracepoint.h:375:2: note: in expansion of macro ‘__DECLARE_TRACE’
>   375 |  __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args),  \
>       |  ^~~~~~~~~~~~~~~
> ./include/linux/tracepoint.h:375:24: note: in expansion of macro ‘PARAMS’
>   375 |  __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args),  \
>       |                        ^~~~~~
> ./include/linux/tracepoint.h:511:2: note: in expansion of macro ‘DECLARE_TRACE’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |  ^~~~~~~~~~~~~
> ./include/linux/tracepoint.h:511:22: note: in expansion of macro ‘PARAMS’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |                      ^~~~~~
> drivers/android/binder_trace.h:109:1: note: in expansion of macro ‘TRACE_EVENT’
>   109 | TRACE_EVENT(binder_txn_latency_free,
>       | ^~~~~~~~~~~
> drivers/android/binder_trace.h:110:2: note: in expansion of macro ‘TP_PROTO’
>   110 |  TP_PROTO(struct binder_transaction *t
>       |  ^~~~~~~~
> drivers/android/binder_trace.h:111:4: error: expected ‘;’, ‘,’ or ‘)’ before ‘int’
>   111 |    int from_proc, int from_thread
>       |    ^~~
> ./include/linux/tracepoint.h:247:38: note: in definition of macro ‘__DECLARE_TRACE’
>   247 |  register_trace_##name(void (*probe)(data_proto), void *data) \
>       |                                      ^~~~~~~~~~
> ./include/linux/tracepoint.h:377:4: note: in expansion of macro ‘PARAMS’
>   377 |    PARAMS(void *__data, proto),   \
>       |    ^~~~~~
> ./include/linux/tracepoint.h:511:2: note: in expansion of macro ‘DECLARE_TRACE’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |  ^~~~~~~~~~~~~
> ./include/linux/tracepoint.h:511:22: note: in expansion of macro ‘PARAMS’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |                      ^~~~~~
> drivers/android/binder_trace.h:109:1: note: in expansion of macro ‘TRACE_EVENT’
>   109 | TRACE_EVENT(binder_txn_latency_free,
>       | ^~~~~~~~~~~
> drivers/android/binder_trace.h:110:2: note: in expansion of macro ‘TP_PROTO’
>   110 |  TP_PROTO(struct binder_transaction *t
>       |  ^~~~~~~~
> ./include/linux/tracepoint.h:247:51: error: expected ‘;’, ‘,’ or ‘)’ before ‘void’
>   247 |  register_trace_##name(void (*probe)(data_proto), void *data) \
>       |                                                   ^~~~
> ./include/linux/tracepoint.h:375:2: note: in expansion of macro ‘__DECLARE_TRACE’
>   375 |  __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args),  \
>       |  ^~~~~~~~~~~~~~~
> ./include/linux/tracepoint.h:511:2: note: in expansion of macro ‘DECLARE_TRACE’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |  ^~~~~~~~~~~~~
> drivers/android/binder_trace.h:109:1: note: in expansion of macro ‘TRACE_EVENT’
>   109 | TRACE_EVENT(binder_txn_latency_free,
>       | ^~~~~~~~~~~
> drivers/android/binder_trace.h:111:4: error: expected ‘;’, ‘,’ or ‘)’ before ‘int’
>   111 |    int from_proc, int from_thread
>       |    ^~~
> ./include/linux/tracepoint.h:253:43: note: in definition of macro ‘__DECLARE_TRACE’
>   253 |  register_trace_prio_##name(void (*probe)(data_proto), void *data,\
>       |                                           ^~~~~~~~~~
> ./include/linux/tracepoint.h:377:4: note: in expansion of macro ‘PARAMS’
>   377 |    PARAMS(void *__data, proto),   \
>       |    ^~~~~~
> ./include/linux/tracepoint.h:511:2: note: in expansion of macro ‘DECLARE_TRACE’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |  ^~~~~~~~~~~~~
> ./include/linux/tracepoint.h:511:22: note: in expansion of macro ‘PARAMS’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |                      ^~~~~~
> drivers/android/binder_trace.h:109:1: note: in expansion of macro ‘TRACE_EVENT’
>   109 | TRACE_EVENT(binder_txn_latency_free,
>       | ^~~~~~~~~~~
> drivers/android/binder_trace.h:110:2: note: in expansion of macro ‘TP_PROTO’
>   110 |  TP_PROTO(struct binder_transaction *t
>       |  ^~~~~~~~
> ./include/linux/tracepoint.h:253:56: error: expected ‘;’, ‘,’ or ‘)’ before ‘void’
>   253 |  register_trace_prio_##name(void (*probe)(data_proto), void *data,\
>       |                                                        ^~~~
> ./include/linux/tracepoint.h:375:2: note: in expansion of macro ‘__DECLARE_TRACE’
>   375 |  __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args),  \
>       |  ^~~~~~~~~~~~~~~
> ./include/linux/tracepoint.h:511:2: note: in expansion of macro ‘DECLARE_TRACE’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |  ^~~~~~~~~~~~~
> drivers/android/binder_trace.h:109:1: note: in expansion of macro ‘TRACE_EVENT’
>   109 | TRACE_EVENT(binder_txn_latency_free,
>       | ^~~~~~~~~~~
> drivers/android/binder_trace.h:111:4: error: expected ‘;’, ‘,’ or ‘)’ before ‘int’
>   111 |    int from_proc, int from_thread
>       |    ^~~
> ./include/linux/tracepoint.h:260:40: note: in definition of macro ‘__DECLARE_TRACE’
>   260 |  unregister_trace_##name(void (*probe)(data_proto), void *data) \
>       |                                        ^~~~~~~~~~
> ./include/linux/tracepoint.h:377:4: note: in expansion of macro ‘PARAMS’
>   377 |    PARAMS(void *__data, proto),   \
>       |    ^~~~~~
> ./include/linux/tracepoint.h:511:2: note: in expansion of macro ‘DECLARE_TRACE’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |  ^~~~~~~~~~~~~
> ./include/linux/tracepoint.h:511:22: note: in expansion of macro ‘PARAMS’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |                      ^~~~~~
> drivers/android/binder_trace.h:109:1: note: in expansion of macro ‘TRACE_EVENT’
>   109 | TRACE_EVENT(binder_txn_latency_free,
>       | ^~~~~~~~~~~
> drivers/android/binder_trace.h:110:2: note: in expansion of macro ‘TP_PROTO’
>   110 |  TP_PROTO(struct binder_transaction *t
>       |  ^~~~~~~~
> ./include/linux/tracepoint.h:260:53: error: expected ‘;’, ‘,’ or ‘)’ before ‘void’
>   260 |  unregister_trace_##name(void (*probe)(data_proto), void *data) \
>       |                                                     ^~~~
> ./include/linux/tracepoint.h:375:2: note: in expansion of macro ‘__DECLARE_TRACE’
>   375 |  __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args),  \
>       |  ^~~~~~~~~~~~~~~
> ./include/linux/tracepoint.h:511:2: note: in expansion of macro ‘DECLARE_TRACE’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |  ^~~~~~~~~~~~~
> drivers/android/binder_trace.h:109:1: note: in expansion of macro ‘TRACE_EVENT’
>   109 | TRACE_EVENT(binder_txn_latency_free,
>       | ^~~~~~~~~~~
> drivers/android/binder_trace.h:111:4: error: expected ‘;’, ‘,’ or ‘)’ before ‘int’
>   111 |    int from_proc, int from_thread
>       |    ^~~
> ./include/linux/tracepoint.h:266:46: note: in definition of macro ‘__DECLARE_TRACE’
>   266 |  check_trace_callback_type_##name(void (*cb)(data_proto)) \
>       |                                              ^~~~~~~~~~
> ./include/linux/tracepoint.h:377:4: note: in expansion of macro ‘PARAMS’
>   377 |    PARAMS(void *__data, proto),   \
>       |    ^~~~~~
> ./include/linux/tracepoint.h:511:2: note: in expansion of macro ‘DECLARE_TRACE’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |  ^~~~~~~~~~~~~
> ./include/linux/tracepoint.h:511:22: note: in expansion of macro ‘PARAMS’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |                      ^~~~~~
> drivers/android/binder_trace.h:109:1: note: in expansion of macro ‘TRACE_EVENT’
>   109 | TRACE_EVENT(binder_txn_latency_free,
>       | ^~~~~~~~~~~
> drivers/android/binder_trace.h:110:2: note: in expansion of macro ‘TP_PROTO’
>   110 |  TP_PROTO(struct binder_transaction *t
>       |  ^~~~~~~~
> make[2]: *** [scripts/Makefile.build:283: drivers/android/binderfs.o] Error 1
> make[2]: *** Waiting for unfinished jobs....
> In file included from drivers/android/binder_latency_tracer.c:8:
> drivers/android/binder_internal.h:141:20: error: ‘BINDERFS_MAX_NAME’ undeclared here (not in a function)
>   141 |  char context_name[BINDERFS_MAX_NAME + 1];
>       |                    ^~~~~~~~~~~~~~~~~
> drivers/android/binder_internal.h:537:17: error: field ‘tv’ has incomplete type
>   537 |  struct timeval tv;
>       |                 ^~
> In file included from drivers/android/binder_trace.h:12,
>                  from drivers/android/binder_latency_tracer.c:9:
> drivers/android/binder_trace.h: In function ‘trace_binder_txn_latency_alloc’:
> drivers/android/binder_trace.h:100:13: error: ‘e’ undeclared (first use in this function)
>   100 |  TP_ARGS(t, e)
>       |             ^
> ./include/linux/tracepoint.h:191:33: note: in definition of macro ‘__DO_TRACE’
>   191 |     ((void(*)(proto))(it_func))(args); \
>       |                                 ^~~~
> ./include/linux/tracepoint.h:236:5: note: in expansion of macro ‘TP_ARGS’
>   236 |     TP_ARGS(data_args),   \
>       |     ^~~~~~~
> ./include/linux/tracepoint.h:375:2: note: in expansion of macro ‘__DECLARE_TRACE’
>   375 |  __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args),  \
>       |  ^~~~~~~~~~~~~~~
> ./include/linux/tracepoint.h:378:4: note: in expansion of macro ‘PARAMS’
>   378 |    PARAMS(__data, args))
>       |    ^~~~~~
> drivers/android/binder_trace.h:98:1: note: in expansion of macro ‘DECLARE_TRACE’
>    98 | DECLARE_TRACE(binder_txn_latency_alloc,
>       | ^~~~~~~~~~~~~
> drivers/android/binder_trace.h:100:2: note: in expansion of macro ‘TP_ARGS’
>   100 |  TP_ARGS(t, e)
>       |  ^~~~~~~
> drivers/android/binder_trace.h:100:13: note: each undeclared identifier is reported only once for each function it appears in
>   100 |  TP_ARGS(t, e)
>       |             ^
> ./include/linux/tracepoint.h:191:33: note: in definition of macro ‘__DO_TRACE’
>   191 |     ((void(*)(proto))(it_func))(args); \
>       |                                 ^~~~
> ./include/linux/tracepoint.h:236:5: note: in expansion of macro ‘TP_ARGS’
>   236 |     TP_ARGS(data_args),   \
>       |     ^~~~~~~
> ./include/linux/tracepoint.h:375:2: note: in expansion of macro ‘__DECLARE_TRACE’
>   375 |  __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args),  \
>       |  ^~~~~~~~~~~~~~~
> ./include/linux/tracepoint.h:378:4: note: in expansion of macro ‘PARAMS’
>   378 |    PARAMS(__data, args))
>       |    ^~~~~~
> drivers/android/binder_trace.h:98:1: note: in expansion of macro ‘DECLARE_TRACE’
>    98 | DECLARE_TRACE(binder_txn_latency_alloc,
>       | ^~~~~~~~~~~~~
> drivers/android/binder_trace.h:100:2: note: in expansion of macro ‘TP_ARGS’
>   100 |  TP_ARGS(t, e)
>       |  ^~~~~~~
> ./include/linux/tracepoint.h:191:6: error: too many arguments to function ‘(void (*)(void *, struct binder_transaction *))it_func’
>   191 |     ((void(*)(proto))(it_func))(args); \
>       |     ~^~~~~~~~~~~~~~~~~~~~~~~~~~
> ./include/linux/tracepoint.h:234:4: note: in expansion of macro ‘__DO_TRACE’
>   234 |    __DO_TRACE(&__tracepoint_##name,  \
>       |    ^~~~~~~~~~
> ./include/linux/tracepoint.h:375:2: note: in expansion of macro ‘__DECLARE_TRACE’
>   375 |  __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args),  \
>       |  ^~~~~~~~~~~~~~~
> drivers/android/binder_trace.h:98:1: note: in expansion of macro ‘DECLARE_TRACE’
>    98 | DECLARE_TRACE(binder_txn_latency_alloc,
>       | ^~~~~~~~~~~~~
> drivers/android/binder_trace.h: At top level:
> drivers/android/binder_trace.h:111:4: error: expected ‘;’, ‘,’ or ‘)’ before ‘int’
>   111 |    int from_proc, int from_thread
>       |    ^~~
> ./include/linux/tracepoint.h:231:34: note: in definition of macro ‘__DECLARE_TRACE’
>   231 |  static inline void trace_##name(proto)    \
>       |                                  ^~~~~
> ./include/linux/tracepoint.h:375:24: note: in expansion of macro ‘PARAMS’
>   375 |  __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args),  \
>       |                        ^~~~~~
> ./include/linux/tracepoint.h:511:2: note: in expansion of macro ‘DECLARE_TRACE’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |  ^~~~~~~~~~~~~
> ./include/linux/tracepoint.h:511:22: note: in expansion of macro ‘PARAMS’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |                      ^~~~~~
> drivers/android/binder_trace.h:109:1: note: in expansion of macro ‘TRACE_EVENT’
>   109 | TRACE_EVENT(binder_txn_latency_free,
>       | ^~~~~~~~~~~
> drivers/android/binder_trace.h:110:2: note: in expansion of macro ‘TP_PROTO’
>   110 |  TP_PROTO(struct binder_transaction *t
>       |  ^~~~~~~~
> drivers/android/binder_trace.h:111:4: error: expected ‘;’, ‘,’ or ‘)’ before ‘int’
>   111 |    int from_proc, int from_thread
>       |    ^~~
> ./include/linux/tracepoint.h:247:38: note: in definition of macro ‘__DECLARE_TRACE’
>   247 |  register_trace_##name(void (*probe)(data_proto), void *data) \
>       |                                      ^~~~~~~~~~
> ./include/linux/tracepoint.h:377:4: note: in expansion of macro ‘PARAMS’
>   377 |    PARAMS(void *__data, proto),   \
>       |    ^~~~~~
> ./include/linux/tracepoint.h:511:2: note: in expansion of macro ‘DECLARE_TRACE’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |  ^~~~~~~~~~~~~
> ./include/linux/tracepoint.h:511:22: note: in expansion of macro ‘PARAMS’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |                      ^~~~~~
> drivers/android/binder_trace.h:109:1: note: in expansion of macro ‘TRACE_EVENT’
>   109 | TRACE_EVENT(binder_txn_latency_free,
>       | ^~~~~~~~~~~
> drivers/android/binder_trace.h:110:2: note: in expansion of macro ‘TP_PROTO’
>   110 |  TP_PROTO(struct binder_transaction *t
>       |  ^~~~~~~~
> ./include/linux/tracepoint.h:247:51: error: expected ‘;’, ‘,’ or ‘)’ before ‘void’
>   247 |  register_trace_##name(void (*probe)(data_proto), void *data) \
>       |                                                   ^~~~
> ./include/linux/tracepoint.h:375:2: note: in expansion of macro ‘__DECLARE_TRACE’
>   375 |  __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args),  \
>       |  ^~~~~~~~~~~~~~~
> ./include/linux/tracepoint.h:511:2: note: in expansion of macro ‘DECLARE_TRACE’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |  ^~~~~~~~~~~~~
> drivers/android/binder_trace.h:109:1: note: in expansion of macro ‘TRACE_EVENT’
>   109 | TRACE_EVENT(binder_txn_latency_free,
>       | ^~~~~~~~~~~
> drivers/android/binder_trace.h:111:4: error: expected ‘;’, ‘,’ or ‘)’ before ‘int’
>   111 |    int from_proc, int from_thread
>       |    ^~~
> ./include/linux/tracepoint.h:253:43: note: in definition of macro ‘__DECLARE_TRACE’
>   253 |  register_trace_prio_##name(void (*probe)(data_proto), void *data,\
>       |                                           ^~~~~~~~~~
> ./include/linux/tracepoint.h:377:4: note: in expansion of macro ‘PARAMS’
>   377 |    PARAMS(void *__data, proto),   \
>       |    ^~~~~~
> ./include/linux/tracepoint.h:511:2: note: in expansion of macro ‘DECLARE_TRACE’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |  ^~~~~~~~~~~~~
> ./include/linux/tracepoint.h:511:22: note: in expansion of macro ‘PARAMS’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |                      ^~~~~~
> drivers/android/binder_trace.h:109:1: note: in expansion of macro ‘TRACE_EVENT’
>   109 | TRACE_EVENT(binder_txn_latency_free,
>       | ^~~~~~~~~~~
> drivers/android/binder_trace.h:110:2: note: in expansion of macro ‘TP_PROTO’
>   110 |  TP_PROTO(struct binder_transaction *t
>       |  ^~~~~~~~
> ./include/linux/tracepoint.h:253:56: error: expected ‘;’, ‘,’ or ‘)’ before ‘void’
>   253 |  register_trace_prio_##name(void (*probe)(data_proto), void *data,\
>       |                                                        ^~~~
> ./include/linux/tracepoint.h:375:2: note: in expansion of macro ‘__DECLARE_TRACE’
>   375 |  __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args),  \
>       |  ^~~~~~~~~~~~~~~
> ./include/linux/tracepoint.h:511:2: note: in expansion of macro ‘DECLARE_TRACE’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |  ^~~~~~~~~~~~~
> drivers/android/binder_trace.h:109:1: note: in expansion of macro ‘TRACE_EVENT’
>   109 | TRACE_EVENT(binder_txn_latency_free,
>       | ^~~~~~~~~~~
> drivers/android/binder_trace.h:111:4: error: expected ‘;’, ‘,’ or ‘)’ before ‘int’
>   111 |    int from_proc, int from_thread
>       |    ^~~
> ./include/linux/tracepoint.h:260:40: note: in definition of macro ‘__DECLARE_TRACE’
>   260 |  unregister_trace_##name(void (*probe)(data_proto), void *data) \
>       |                                        ^~~~~~~~~~
> ./include/linux/tracepoint.h:377:4: note: in expansion of macro ‘PARAMS’
>   377 |    PARAMS(void *__data, proto),   \
>       |    ^~~~~~
> ./include/linux/tracepoint.h:511:2: note: in expansion of macro ‘DECLARE_TRACE’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |  ^~~~~~~~~~~~~
> ./include/linux/tracepoint.h:511:22: note: in expansion of macro ‘PARAMS’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |                      ^~~~~~
> drivers/android/binder_trace.h:109:1: note: in expansion of macro ‘TRACE_EVENT’
>   109 | TRACE_EVENT(binder_txn_latency_free,
>       | ^~~~~~~~~~~
> drivers/android/binder_trace.h:110:2: note: in expansion of macro ‘TP_PROTO’
>   110 |  TP_PROTO(struct binder_transaction *t
>       |  ^~~~~~~~
> ./include/linux/tracepoint.h:260:53: error: expected ‘;’, ‘,’ or ‘)’ before ‘void’
>   260 |  unregister_trace_##name(void (*probe)(data_proto), void *data) \
>       |                                                     ^~~~
> ./include/linux/tracepoint.h:375:2: note: in expansion of macro ‘__DECLARE_TRACE’
>   375 |  __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args),  \
>       |  ^~~~~~~~~~~~~~~
> ./include/linux/tracepoint.h:511:2: note: in expansion of macro ‘DECLARE_TRACE’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |  ^~~~~~~~~~~~~
> drivers/android/binder_trace.h:109:1: note: in expansion of macro ‘TRACE_EVENT’
>   109 | TRACE_EVENT(binder_txn_latency_free,
>       | ^~~~~~~~~~~
> drivers/android/binder_trace.h:111:4: error: expected ‘;’, ‘,’ or ‘)’ before ‘int’
>   111 |    int from_proc, int from_thread
>       |    ^~~
> ./include/linux/tracepoint.h:266:46: note: in definition of macro ‘__DECLARE_TRACE’
>   266 |  check_trace_callback_type_##name(void (*cb)(data_proto)) \
>       |                                              ^~~~~~~~~~
> ./include/linux/tracepoint.h:377:4: note: in expansion of macro ‘PARAMS’
>   377 |    PARAMS(void *__data, proto),   \
>       |    ^~~~~~
> ./include/linux/tracepoint.h:511:2: note: in expansion of macro ‘DECLARE_TRACE’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |  ^~~~~~~~~~~~~
> ./include/linux/tracepoint.h:511:22: note: in expansion of macro ‘PARAMS’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |                      ^~~~~~
> drivers/android/binder_trace.h:109:1: note: in expansion of macro ‘TRACE_EVENT’
>   109 | TRACE_EVENT(binder_txn_latency_free,
>       | ^~~~~~~~~~~
> drivers/android/binder_trace.h:110:2: note: in expansion of macro ‘TP_PROTO’
>   110 |  TP_PROTO(struct binder_transaction *t
>       |  ^~~~~~~~
> In file included from drivers/android/binder.c:75:
> drivers/android/binder_internal.h:537:17: error: field ‘tv’ has incomplete type
>   537 |  struct timeval tv;
>       |                 ^~
> In file included from ./include/trace/syscall.h:5,
>                  from ./include/linux/syscalls.h:84,
>                  from drivers/android/binder.c:66:
> drivers/android/binder_trace.h: In function ‘trace_binder_txn_latency_alloc’:
> drivers/android/binder_trace.h:100:13: error: ‘e’ undeclared (first use in this function)
>   100 |  TP_ARGS(t, e)
>       |             ^
> ./include/linux/tracepoint.h:191:33: note: in definition of macro ‘__DO_TRACE’
>   191 |     ((void(*)(proto))(it_func))(args); \
>       |                                 ^~~~
> ./include/linux/tracepoint.h:236:5: note: in expansion of macro ‘TP_ARGS’
>   236 |     TP_ARGS(data_args),   \
>       |     ^~~~~~~
> ./include/linux/tracepoint.h:375:2: note: in expansion of macro ‘__DECLARE_TRACE’
>   375 |  __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args),  \
>       |  ^~~~~~~~~~~~~~~
> ./include/linux/tracepoint.h:378:4: note: in expansion of macro ‘PARAMS’
>   378 |    PARAMS(__data, args))
>       |    ^~~~~~
> drivers/android/binder_trace.h:98:1: note: in expansion of macro ‘DECLARE_TRACE’
>    98 | DECLARE_TRACE(binder_txn_latency_alloc,
>       | ^~~~~~~~~~~~~
> drivers/android/binder_trace.h:100:2: note: in expansion of macro ‘TP_ARGS’
>   100 |  TP_ARGS(t, e)
>       |  ^~~~~~~
> drivers/android/binder_trace.h:100:13: note: each undeclared identifier is reported only once for each function it appears in
>   100 |  TP_ARGS(t, e)
>       |             ^
> ./include/linux/tracepoint.h:191:33: note: in definition of macro ‘__DO_TRACE’
>   191 |     ((void(*)(proto))(it_func))(args); \
>       |                                 ^~~~
> ./include/linux/tracepoint.h:236:5: note: in expansion of macro ‘TP_ARGS’
>   236 |     TP_ARGS(data_args),   \
>       |     ^~~~~~~
> ./include/linux/tracepoint.h:375:2: note: in expansion of macro ‘__DECLARE_TRACE’
>   375 |  __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args),  \
>       |  ^~~~~~~~~~~~~~~
> ./include/linux/tracepoint.h:378:4: note: in expansion of macro ‘PARAMS’
>   378 |    PARAMS(__data, args))
>       |    ^~~~~~
> drivers/android/binder_trace.h:98:1: note: in expansion of macro ‘DECLARE_TRACE’
>    98 | DECLARE_TRACE(binder_txn_latency_alloc,
>       | ^~~~~~~~~~~~~
> drivers/android/binder_trace.h:100:2: note: in expansion of macro ‘TP_ARGS’
>   100 |  TP_ARGS(t, e)
>       |  ^~~~~~~
> ./include/linux/tracepoint.h:191:6: error: too many arguments to function ‘(void (*)(void *, struct binder_transaction *))it_func’
>   191 |     ((void(*)(proto))(it_func))(args); \
>       |     ~^~~~~~~~~~~~~~~~~~~~~~~~~~
> ./include/linux/tracepoint.h:234:4: note: in expansion of macro ‘__DO_TRACE’
>   234 |    __DO_TRACE(&__tracepoint_##name,  \
>       |    ^~~~~~~~~~
> ./include/linux/tracepoint.h:375:2: note: in expansion of macro ‘__DECLARE_TRACE’
>   375 |  __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args),  \
>       |  ^~~~~~~~~~~~~~~
> drivers/android/binder_trace.h:98:1: note: in expansion of macro ‘DECLARE_TRACE’
>    98 | DECLARE_TRACE(binder_txn_latency_alloc,
>       | ^~~~~~~~~~~~~
> drivers/android/binder_trace.h: In function ‘trace_binder_txn_latency_alloc_rcuidle’:
> drivers/android/binder_trace.h:100:13: error: ‘e’ undeclared (first use in this function)
>   100 |  TP_ARGS(t, e)
>       |             ^
> ./include/linux/tracepoint.h:191:33: note: in definition of macro ‘__DO_TRACE’
>   191 |     ((void(*)(proto))(it_func))(args); \
>       |                                 ^~~~
> ./include/linux/tracepoint.h:210:5: note: in expansion of macro ‘TP_ARGS’
>   210 |     TP_ARGS(data_args),   \
>       |     ^~~~~~~
> ./include/linux/tracepoint.h:244:2: note: in expansion of macro ‘__DECLARE_TRACE_RCU’
>   244 |  __DECLARE_TRACE_RCU(name, PARAMS(proto), PARAMS(args),  \
>       |  ^~~~~~~~~~~~~~~~~~~
> ./include/linux/tracepoint.h:245:37: note: in expansion of macro ‘PARAMS’
>   245 |   PARAMS(cond), PARAMS(data_proto), PARAMS(data_args)) \
>       |                                     ^~~~~~
> ./include/linux/tracepoint.h:375:2: note: in expansion of macro ‘__DECLARE_TRACE’
>   375 |  __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args),  \
>       |  ^~~~~~~~~~~~~~~
> ./include/linux/tracepoint.h:378:4: note: in expansion of macro ‘PARAMS’
>   378 |    PARAMS(__data, args))
>       |    ^~~~~~
> drivers/android/binder_trace.h:98:1: note: in expansion of macro ‘DECLARE_TRACE’
>    98 | DECLARE_TRACE(binder_txn_latency_alloc,
>       | ^~~~~~~~~~~~~
> drivers/android/binder_trace.h:100:2: note: in expansion of macro ‘TP_ARGS’
>   100 |  TP_ARGS(t, e)
>       |  ^~~~~~~
> ./include/linux/tracepoint.h:191:6: error: too many arguments to function ‘(void (*)(void *, struct binder_transaction *))it_func’
>   191 |     ((void(*)(proto))(it_func))(args); \
>       |     ~^~~~~~~~~~~~~~~~~~~~~~~~~~
> ./include/linux/tracepoint.h:208:4: note: in expansion of macro ‘__DO_TRACE’
>   208 |    __DO_TRACE(&__tracepoint_##name,  \
>       |    ^~~~~~~~~~
> ./include/linux/tracepoint.h:244:2: note: in expansion of macro ‘__DECLARE_TRACE_RCU’
>   244 |  __DECLARE_TRACE_RCU(name, PARAMS(proto), PARAMS(args),  \
>       |  ^~~~~~~~~~~~~~~~~~~
> ./include/linux/tracepoint.h:375:2: note: in expansion of macro ‘__DECLARE_TRACE’
>   375 |  __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args),  \
>       |  ^~~~~~~~~~~~~~~
> drivers/android/binder_trace.h:98:1: note: in expansion of macro ‘DECLARE_TRACE’
>    98 | DECLARE_TRACE(binder_txn_latency_alloc,
>       | ^~~~~~~~~~~~~
> drivers/android/binder_trace.h: At top level:
> drivers/android/binder_trace.h:111:4: error: expected ‘;’, ‘,’ or ‘)’ before ‘int’
>   111 |    int from_proc, int from_thread
>       |    ^~~
> ./include/linux/tracepoint.h:231:34: note: in definition of macro ‘__DECLARE_TRACE’
>   231 |  static inline void trace_##name(proto)    \
>       |                                  ^~~~~
> ./include/linux/tracepoint.h:375:24: note: in expansion of macro ‘PARAMS’
>   375 |  __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args),  \
>       |                        ^~~~~~
> ./include/linux/tracepoint.h:511:2: note: in expansion of macro ‘DECLARE_TRACE’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |  ^~~~~~~~~~~~~
> ./include/linux/tracepoint.h:511:22: note: in expansion of macro ‘PARAMS’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |                      ^~~~~~
> drivers/android/binder_trace.h:109:1: note: in expansion of macro ‘TRACE_EVENT’
>   109 | TRACE_EVENT(binder_txn_latency_free,
>       | ^~~~~~~~~~~
> drivers/android/binder_trace.h:110:2: note: in expansion of macro ‘TP_PROTO’
>   110 |  TP_PROTO(struct binder_transaction *t
>       |  ^~~~~~~~
> drivers/android/binder_trace.h:111:4: error: expected ‘;’, ‘,’ or ‘)’ before ‘int’
>   111 |    int from_proc, int from_thread
>       |    ^~~
> ./include/linux/tracepoint.h:205:44: note: in definition of macro ‘__DECLARE_TRACE_RCU’
>   205 |  static inline void trace_##name##_rcuidle(proto)  \
>       |                                            ^~~~~
> ./include/linux/tracepoint.h:244:28: note: in expansion of macro ‘PARAMS’
>   244 |  __DECLARE_TRACE_RCU(name, PARAMS(proto), PARAMS(args),  \
>       |                            ^~~~~~
> ./include/linux/tracepoint.h:375:2: note: in expansion of macro ‘__DECLARE_TRACE’
>   375 |  __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args),  \
>       |  ^~~~~~~~~~~~~~~
> ./include/linux/tracepoint.h:375:24: note: in expansion of macro ‘PARAMS’
>   375 |  __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args),  \
>       |                        ^~~~~~
> ./include/linux/tracepoint.h:511:2: note: in expansion of macro ‘DECLARE_TRACE’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |  ^~~~~~~~~~~~~
> ./include/linux/tracepoint.h:511:22: note: in expansion of macro ‘PARAMS’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |                      ^~~~~~
> drivers/android/binder_trace.h:109:1: note: in expansion of macro ‘TRACE_EVENT’
>   109 | TRACE_EVENT(binder_txn_latency_free,
>       | ^~~~~~~~~~~
> drivers/android/binder_trace.h:110:2: note: in expansion of macro ‘TP_PROTO’
>   110 |  TP_PROTO(struct binder_transaction *t
>       |  ^~~~~~~~
> drivers/android/binder_trace.h:111:4: error: expected ‘;’, ‘,’ or ‘)’ before ‘int’
>   111 |    int from_proc, int from_thread
>       |    ^~~
> ./include/linux/tracepoint.h:247:38: note: in definition of macro ‘__DECLARE_TRACE’
>   247 |  register_trace_##name(void (*probe)(data_proto), void *data) \
>       |                                      ^~~~~~~~~~
> ./include/linux/tracepoint.h:377:4: note: in expansion of macro ‘PARAMS’
>   377 |    PARAMS(void *__data, proto),   \
>       |    ^~~~~~
> ./include/linux/tracepoint.h:511:2: note: in expansion of macro ‘DECLARE_TRACE’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |  ^~~~~~~~~~~~~
> ./include/linux/tracepoint.h:511:22: note: in expansion of macro ‘PARAMS’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |                      ^~~~~~
> drivers/android/binder_trace.h:109:1: note: in expansion of macro ‘TRACE_EVENT’
>   109 | TRACE_EVENT(binder_txn_latency_free,
>       | ^~~~~~~~~~~
> drivers/android/binder_trace.h:110:2: note: in expansion of macro ‘TP_PROTO’
>   110 |  TP_PROTO(struct binder_transaction *t
>       |  ^~~~~~~~
> ./include/linux/tracepoint.h:247:51: error: expected ‘;’, ‘,’ or ‘)’ before ‘void’
>   247 |  register_trace_##name(void (*probe)(data_proto), void *data) \
>       |                                                   ^~~~
> ./include/linux/tracepoint.h:375:2: note: in expansion of macro ‘__DECLARE_TRACE’
>   375 |  __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args),  \
>       |  ^~~~~~~~~~~~~~~
> ./include/linux/tracepoint.h:511:2: note: in expansion of macro ‘DECLARE_TRACE’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |  ^~~~~~~~~~~~~
> drivers/android/binder_trace.h:109:1: note: in expansion of macro ‘TRACE_EVENT’
>   109 | TRACE_EVENT(binder_txn_latency_free,
>       | ^~~~~~~~~~~
> drivers/android/binder_trace.h:111:4: error: expected ‘;’, ‘,’ or ‘)’ before ‘int’
>   111 |    int from_proc, int from_thread
>       |    ^~~
> ./include/linux/tracepoint.h:253:43: note: in definition of macro ‘__DECLARE_TRACE’
>   253 |  register_trace_prio_##name(void (*probe)(data_proto), void *data,\
>       |                                           ^~~~~~~~~~
> ./include/linux/tracepoint.h:377:4: note: in expansion of macro ‘PARAMS’
>   377 |    PARAMS(void *__data, proto),   \
>       |    ^~~~~~
> ./include/linux/tracepoint.h:511:2: note: in expansion of macro ‘DECLARE_TRACE’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |  ^~~~~~~~~~~~~
> ./include/linux/tracepoint.h:511:22: note: in expansion of macro ‘PARAMS’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |                      ^~~~~~
> drivers/android/binder_trace.h:109:1: note: in expansion of macro ‘TRACE_EVENT’
>   109 | TRACE_EVENT(binder_txn_latency_free,
>       | ^~~~~~~~~~~
> drivers/android/binder_trace.h:110:2: note: in expansion of macro ‘TP_PROTO’
>   110 |  TP_PROTO(struct binder_transaction *t
>       |  ^~~~~~~~
> ./include/linux/tracepoint.h:253:56: error: expected ‘;’, ‘,’ or ‘)’ before ‘void’
>   253 |  register_trace_prio_##name(void (*probe)(data_proto), void *data,\
>       |                                                        ^~~~
> ./include/linux/tracepoint.h:375:2: note: in expansion of macro ‘__DECLARE_TRACE’
>   375 |  __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args),  \
>       |  ^~~~~~~~~~~~~~~
> ./include/linux/tracepoint.h:511:2: note: in expansion of macro ‘DECLARE_TRACE’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |  ^~~~~~~~~~~~~
> drivers/android/binder_trace.h:109:1: note: in expansion of macro ‘TRACE_EVENT’
>   109 | TRACE_EVENT(binder_txn_latency_free,
>       | ^~~~~~~~~~~
> drivers/android/binder_trace.h:111:4: error: expected ‘;’, ‘,’ or ‘)’ before ‘int’
>   111 |    int from_proc, int from_thread
>       |    ^~~
> ./include/linux/tracepoint.h:260:40: note: in definition of macro ‘__DECLARE_TRACE’
>   260 |  unregister_trace_##name(void (*probe)(data_proto), void *data) \
>       |                                        ^~~~~~~~~~
> ./include/linux/tracepoint.h:377:4: note: in expansion of macro ‘PARAMS’
>   377 |    PARAMS(void *__data, proto),   \
>       |    ^~~~~~
> ./include/linux/tracepoint.h:511:2: note: in expansion of macro ‘DECLARE_TRACE’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |  ^~~~~~~~~~~~~
> ./include/linux/tracepoint.h:511:22: note: in expansion of macro ‘PARAMS’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |                      ^~~~~~
> drivers/android/binder_trace.h:109:1: note: in expansion of macro ‘TRACE_EVENT’
>   109 | TRACE_EVENT(binder_txn_latency_free,
>       | ^~~~~~~~~~~
> drivers/android/binder_trace.h:110:2: note: in expansion of macro ‘TP_PROTO’
>   110 |  TP_PROTO(struct binder_transaction *t
>       |  ^~~~~~~~
> ./include/linux/tracepoint.h:260:53: error: expected ‘;’, ‘,’ or ‘)’ before ‘void’
>   260 |  unregister_trace_##name(void (*probe)(data_proto), void *data) \
>       |                                                     ^~~~
> ./include/linux/tracepoint.h:375:2: note: in expansion of macro ‘__DECLARE_TRACE’
>   375 |  __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args),  \
>       |  ^~~~~~~~~~~~~~~
> ./include/linux/tracepoint.h:511:2: note: in expansion of macro ‘DECLARE_TRACE’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |  ^~~~~~~~~~~~~
> drivers/android/binder_trace.h:109:1: note: in expansion of macro ‘TRACE_EVENT’
>   109 | TRACE_EVENT(binder_txn_latency_free,
>       | ^~~~~~~~~~~
> drivers/android/binder_trace.h:111:4: error: expected ‘;’, ‘,’ or ‘)’ before ‘int’
>   111 |    int from_proc, int from_thread
>       |    ^~~
> ./include/linux/tracepoint.h:266:46: note: in definition of macro ‘__DECLARE_TRACE’
>   266 |  check_trace_callback_type_##name(void (*cb)(data_proto)) \
>       |                                              ^~~~~~~~~~
> ./include/linux/tracepoint.h:377:4: note: in expansion of macro ‘PARAMS’
>   377 |    PARAMS(void *__data, proto),   \
>       |    ^~~~~~
> ./include/linux/tracepoint.h:511:2: note: in expansion of macro ‘DECLARE_TRACE’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |  ^~~~~~~~~~~~~
> ./include/linux/tracepoint.h:511:22: note: in expansion of macro ‘PARAMS’
>   511 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
>       |                      ^~~~~~
> drivers/android/binder_trace.h:109:1: note: in expansion of macro ‘TRACE_EVENT’
>   109 | TRACE_EVENT(binder_txn_latency_free,
>       | ^~~~~~~~~~~
> drivers/android/binder_trace.h:110:2: note: in expansion of macro ‘TP_PROTO’
>   110 |  TP_PROTO(struct binder_transaction *t
>       |  ^~~~~~~~
> drivers/android/binder_latency_tracer.c: In function ‘probe_binder_txn_latency_free’:
> drivers/android/binder_latency_tracer.c:43:2: error: implicit declaration of function ‘rtc_time_to_tm’; did you mean ‘rtc_ktime_to_tm’? [-Werror=implicit-function-declaration]
>    43 |  rtc_time_to_tm(t->tv.tv_sec, &tm);
>       |  ^~~~~~~~~~~~~~
>       |  rtc_ktime_to_tm
> make[2]: *** [scripts/Makefile.build:283: drivers/android/binder_alloc.o] Error 1
> drivers/android/binder_latency_tracer.c: In function ‘init_binder_latency_tracer’:
> drivers/android/binder_latency_tracer.c:89:2: error: implicit declaration of function ‘register_trace_binder_txn_latency_free’; did you mean ‘register_trace_binder_txn_latency_info’? [-Werror=implicit-function-declaration]
>    89 |  register_trace_binder_txn_latency_free(
>       |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>       |  register_trace_binder_txn_latency_info
> drivers/android/binder_latency_tracer.c: In function ‘exit_binder_latency_tracer’:
> drivers/android/binder_latency_tracer.c:101:2: error: implicit declaration of function ‘unregister_trace_binder_txn_latency_free’; did you mean ‘unregister_trace_binder_txn_latency_info’? [-Werror=implicit-function-declaration]
>   101 |  unregister_trace_binder_txn_latency_free(
>       |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>       |  unregister_trace_binder_txn_latency_info
> cc1: some warnings being treated as errors
> make[2]: *** [scripts/Makefile.build:283: drivers/android/binder_latency_tracer.o] Error 1
> drivers/android/binder.c: In function ‘binder_txn_latency_free’:
> drivers/android/binder.c:1522:2: error: implicit declaration of function ‘trace_binder_txn_latency_free’; did you mean ‘trace_binder_txn_latency_info’? [-Werror=implicit-function-declaration]
>  1522 |  trace_binder_txn_latency_free(t, from_proc, from_thread, to_proc, to_thread);
>       |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>       |  trace_binder_txn_latency_info
> In file included from ./include/trace/define_trace.h:102,
>                  from drivers/android/binder_trace.h:448,
>                  from drivers/android/binder.c:5822:
> drivers/android/./binder_trace.h: At top level:
> drivers/android/./binder_trace.h:111:4: error: expected ‘;’, ‘,’ or ‘)’ before ‘int’
>   111 |    int from_proc, int from_thread
>       |    ^~~
> ./include/trace/trace_events.h:510:58: note: in definition of macro ‘DECLARE_EVENT_CLASS’
>   510 |  struct trace_event_data_offsets_##call *__data_offsets, proto) \
>       |                                                          ^~~~~
> ./include/trace/trace_events.h:76:9: note: in expansion of macro ‘PARAMS’
>    76 |         PARAMS(proto),         \
>       |         ^~~~~~
> drivers/android/./binder_trace.h:109:1: note: in expansion of macro ‘TRACE_EVENT’
>   109 | TRACE_EVENT(binder_txn_latency_free,
>       | ^~~~~~~~~~~
> drivers/android/./binder_trace.h:110:2: note: in expansion of macro ‘TP_PROTO’
>   110 |  TP_PROTO(struct binder_transaction *t
>       |  ^~~~~~~~
> In file included from ./include/trace/define_trace.h:102,
>                  from drivers/android/binder_trace.h:448,
>                  from drivers/android/binder.c:5822:
> drivers/android/./binder_trace.h:111:4: error: expected ‘;’, ‘,’ or ‘)’ before ‘int’
>   111 |    int from_proc, int from_thread
>       |    ^~~
> ./include/trace/trace_events.h:674:44: note: in definition of macro ‘DECLARE_EVENT_CLASS’
>   674 | trace_event_raw_event_##call(void *__data, proto)   \
>       |                                            ^~~~~
> ./include/trace/trace_events.h:76:9: note: in expansion of macro ‘PARAMS’
>    76 |         PARAMS(proto),         \
>       |         ^~~~~~
> drivers/android/./binder_trace.h:109:1: note: in expansion of macro ‘TRACE_EVENT’
>   109 | TRACE_EVENT(binder_txn_latency_free,
>       | ^~~~~~~~~~~
> drivers/android/./binder_trace.h:110:2: note: in expansion of macro ‘TP_PROTO’
>   110 |  TP_PROTO(struct binder_transaction *t
>       |  ^~~~~~~~
> drivers/android/./binder_trace.h: In function ‘ftrace_test_probe_binder_txn_latency_free’:
> ./include/trace/trace_events.h:709:2: error: implicit declaration of function ‘check_trace_callback_type_binder_txn_latency_free’; did you mean ‘check_trace_callback_type_binder_txn_latency_info’? [-Werror=implicit-function-declaration]
>   709 |  check_trace_callback_type_##call(trace_event_raw_event_##template); \
>       |  ^~~~~~~~~~~~~~~~~~~~~~~~~~
> ./include/trace/trace_events.h:81:2: note: in expansion of macro ‘DEFINE_EVENT’
>    81 |  DEFINE_EVENT(name, name, PARAMS(proto), PARAMS(args));
>       |  ^~~~~~~~~~~~
> drivers/android/./binder_trace.h:109:1: note: in expansion of macro ‘TRACE_EVENT’
>   109 | TRACE_EVENT(binder_txn_latency_free,
>       | ^~~~~~~~~~~
> ./include/trace/trace_events.h:709:35: error: ‘trace_event_raw_event_binder_txn_latency_free’ undeclared (first use in this function); did you mean ‘trace_event_raw_binder_txn_latency_free’?
>   709 |  check_trace_callback_type_##call(trace_event_raw_event_##template); \
>       |                                   ^~~~~~~~~~~~~~~~~~~~~~
> ./include/trace/trace_events.h:81:2: note: in expansion of macro ‘DEFINE_EVENT’
>    81 |  DEFINE_EVENT(name, name, PARAMS(proto), PARAMS(args));
>       |  ^~~~~~~~~~~~
> drivers/android/./binder_trace.h:109:1: note: in expansion of macro ‘TRACE_EVENT’
>   109 | TRACE_EVENT(binder_txn_latency_free,
>       | ^~~~~~~~~~~
> drivers/android/./binder_trace.h: At top level:
> drivers/android/./binder_trace.h:111:4: error: expected ‘;’, ‘,’ or ‘)’ before ‘int’
>   111 |    int from_proc, int from_thread
>       |    ^~~
> ./include/trace/trace_events.h:618:34: note: in definition of macro ‘_TRACE_PERF_PROTO’
>   618 |  perf_trace_##call(void *__data, proto);
>       |                                  ^~~~~
> ./include/trace/trace_events.h:733:25: note: in expansion of macro ‘PARAMS’
>   733 | _TRACE_PERF_PROTO(call, PARAMS(proto));     \
>       |                         ^~~~~~
> ./include/trace/trace_events.h:75:2: note: in expansion of macro ‘DECLARE_EVENT_CLASS’
>    75 |  DECLARE_EVENT_CLASS(name,          \
>       |  ^~~~~~~~~~~~~~~~~~~
> ./include/trace/trace_events.h:76:9: note: in expansion of macro ‘PARAMS’
>    76 |         PARAMS(proto),         \
>       |         ^~~~~~
> drivers/android/./binder_trace.h:109:1: note: in expansion of macro ‘TRACE_EVENT’
>   109 | TRACE_EVENT(binder_txn_latency_free,
>       | ^~~~~~~~~~~
> drivers/android/./binder_trace.h:110:2: note: in expansion of macro ‘TP_PROTO’
>   110 |  TP_PROTO(struct binder_transaction *t
>       |  ^~~~~~~~
> In file included from ./include/trace/define_trace.h:102,
>                  from drivers/android/binder_trace.h:448,
>                  from drivers/android/binder.c:5822:
> ./include/trace/trace_events.h:740:13: error: ‘trace_event_raw_event_binder_txn_latency_free’ undeclared here (not in a function); did you mean ‘trace_event_raw_binder_txn_latency_free’?
>   740 |  .probe   = trace_event_raw_event_##call,  \
>       |             ^~~~~~~~~~~~~~~~~~~~~~
> ./include/trace/trace_events.h:75:2: note: in expansion of macro ‘DECLARE_EVENT_CLASS’
>    75 |  DECLARE_EVENT_CLASS(name,          \
>       |  ^~~~~~~~~~~~~~~~~~~
> drivers/android/./binder_trace.h:109:1: note: in expansion of macro ‘TRACE_EVENT’
>   109 | TRACE_EVENT(binder_txn_latency_free,
>       | ^~~~~~~~~~~
> In file included from ./include/trace/define_trace.h:102,
>                  from drivers/android/binder_trace.h:448,
>                  from drivers/android/binder.c:5822:
> ./include/trace/trace_events.h:621:17: error: ‘perf_trace_binder_txn_latency_free’ undeclared here (not in a function); did you mean ‘print_fmt_binder_txn_latency_free’?
>   621 |  .perf_probe  = perf_trace_##call,
>       |                 ^~~~~~~~~~~
> ./include/trace/trace_events.h:742:2: note: in expansion of macro ‘_TRACE_PERF_INIT’
>   742 |  _TRACE_PERF_INIT(call)      \
>       |  ^~~~~~~~~~~~~~~~
> ./include/trace/trace_events.h:75:2: note: in expansion of macro ‘DECLARE_EVENT_CLASS’
>    75 |  DECLARE_EVENT_CLASS(name,          \
>       |  ^~~~~~~~~~~~~~~~~~~
> drivers/android/./binder_trace.h:109:1: note: in expansion of macro ‘TRACE_EVENT’
>   109 | TRACE_EVENT(binder_txn_latency_free,
>       | ^~~~~~~~~~~
> In file included from ./include/trace/define_trace.h:103,
>                  from drivers/android/binder_trace.h:448,
>                  from drivers/android/binder.c:5822:
> drivers/android/./binder_trace.h:111:4: error: expected ‘;’, ‘,’ or ‘)’ before ‘int’
>   111 |    int from_proc, int from_thread
>       |    ^~~
> ./include/trace/perf.h:33:33: note: in definition of macro ‘DECLARE_EVENT_CLASS’
>    33 | perf_trace_##call(void *__data, proto)     \
>       |                                 ^~~~~
> ./include/trace/trace_events.h:76:9: note: in expansion of macro ‘PARAMS’
>    76 |         PARAMS(proto),         \
>       |         ^~~~~~
> drivers/android/./binder_trace.h:109:1: note: in expansion of macro ‘TRACE_EVENT’
>   109 | TRACE_EVENT(binder_txn_latency_free,
>       | ^~~~~~~~~~~
> drivers/android/./binder_trace.h:110:2: note: in expansion of macro ‘TP_PROTO’
>   110 |  TP_PROTO(struct binder_transaction *t
>       |  ^~~~~~~~
> cc1: some warnings being treated as errors
> make[2]: *** [scripts/Makefile.build:283: drivers/android/binder.o] Error 1
> make[1]: *** [scripts/Makefile.build:500: drivers/android] Error 2
> make[1]: *** Waiting for unfinished jobs....
> make: *** [Makefile:1788: drivers] Error 2
> 



More information about the Linux-mediatek mailing list