https://github.com/torvalds/linux
Revision b6c7abd1c28a63ad633433d037ee15a1bc3023ba authored by Yafang Shao on 12 February 2023, 15:13:03 UTC, committed by Steven Rostedt (Google) on 12 February 2023, 15:23:39 UTC
After commit 3087c61ed2c4 ("tools/testing/selftests/bpf: replace open-coded 16 with TASK_COMM_LEN"), the content of the format file under /sys/kernel/tracing/events/task/task_newtask was changed from field:char comm[16]; offset:12; size:16; signed:0; to field:char comm[TASK_COMM_LEN]; offset:12; size:16; signed:0; John reported that this change breaks older versions of perfetto. Then Mathieu pointed out that this behavioral change was caused by the use of __stringify(_len), which happens to work on macros, but not on enum labels. And he also gave the suggestion on how to fix it: :One possible solution to make this more robust would be to extend :struct trace_event_fields with one more field that indicates the length :of an array as an actual integer, without storing it in its stringified :form in the type, and do the formatting in f_show where it belongs. The result as follows after this change, $ cat /sys/kernel/tracing/events/task/task_newtask/format field:char comm[16]; offset:12; size:16; signed:0; Link: https://lore.kernel.org/lkml/Y+QaZtz55LIirsUO@google.com/ Link: https://lore.kernel.org/linux-trace-kernel/20230210155921.4610-1-laoar.shao@gmail.com/ Link: https://lore.kernel.org/linux-trace-kernel/20230212151303.12353-1-laoar.shao@gmail.com Cc: stable@vger.kernel.org Cc: Alexei Starovoitov <alexei.starovoitov@gmail.com> Cc: Kajetan Puchalski <kajetan.puchalski@arm.com> CC: Qais Yousef <qyousef@layalina.io> Fixes: 3087c61ed2c4 ("tools/testing/selftests/bpf: replace open-coded 16 with TASK_COMM_LEN") Reported-by: John Stultz <jstultz@google.com> Debugged-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Suggested-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Suggested-by: Steven Rostedt <rostedt@goodmis.org> Signed-off-by: Yafang Shao <laoar.shao@gmail.com> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
1 parent 3e46d91
Tip revision: b6c7abd1c28a63ad633433d037ee15a1bc3023ba authored by Yafang Shao on 12 February 2023, 15:13:03 UTC
tracing: Fix TASK_COMM_LEN in trace event format file
tracing: Fix TASK_COMM_LEN in trace event format file
Tip revision: b6c7abd
File | Mode | Size |
---|---|---|
Makefile | -rw-r--r-- | 361 bytes |
compat.c | -rw-r--r-- | 2.2 KB |
ipc_sysctl.c | -rw-r--r-- | 7.2 KB |
mq_sysctl.c | -rw-r--r-- | 3.0 KB |
mqueue.c | -rw-r--r-- | 43.8 KB |
msg.c | -rw-r--r-- | 32.3 KB |
msgutil.c | -rw-r--r-- | 3.6 KB |
namespace.c | -rw-r--r-- | 5.3 KB |
sem.c | -rw-r--r-- | 63.2 KB |
shm.c | -rw-r--r-- | 45.1 KB |
syscall.c | -rw-r--r-- | 5.1 KB |
util.c | -rw-r--r-- | 24.2 KB |
util.h | -rw-r--r-- | 8.9 KB |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...