Arnaldo Carvalho de Melo
6234eda093
perf machine: Initialize machine->env to address a segfault
[ Upstream commit 88a6e2f67c ]
Its used from trace__run(), for the 'perf trace' live mode, i.e. its
strace-like, non-perf.data file processing mode, the most common one.
The trace__run() function will set trace->host using machine__new_host()
that is supposed to give a machine instance representing the running
machine, and since we'll use perf_env__arch_strerrno() to get the right
errno -> string table, we need to use machine->env, so initialize it in
machine__new_host().
Before the patch:
(gdb) run trace --errno-summary -a sleep 1
<SNIP>
Summary of events:
gvfs-afc-volume (3187), 2 events, 0.0%
syscall calls errors total min avg max stddev
(msec) (msec) (msec) (msec) (%)
--------------- -------- ------ -------- --------- --------- --------- ------
pselect6 1 0 0.000 0.000 0.000 0.000 0.00%
GUsbEventThread (3519), 2 events, 0.0%
syscall calls errors total min avg max stddev
(msec) (msec) (msec) (msec) (%)
--------------- -------- ------ -------- --------- --------- --------- ------
poll 1 0 0.000 0.000 0.000 0.000 0.00%
<SNIP>
Program received signal SIGSEGV, Segmentation fault.
0x00000000005caba0 in perf_env__arch_strerrno (env=0x0, err=110) at util/env.c:478
478 if (env->arch_strerrno == NULL)
(gdb) bt
#0 0x00000000005caba0 in perf_env__arch_strerrno (env=0x0, err=110) at util/env.c:478
#1 0x00000000004b75d2 in thread__dump_stats (ttrace=0x14f58f0, trace=0x7fffffffa5b0, fp=0x7ffff6ff74e0 <_IO_2_1_stderr_>) at builtin-trace.c:4673
#2 0x00000000004b78bf in trace__fprintf_thread (fp=0x7ffff6ff74e0 <_IO_2_1_stderr_>, thread=0x10fa0b0, trace=0x7fffffffa5b0) at builtin-trace.c:4708
#3 0x00000000004b7ad9 in trace__fprintf_thread_summary (trace=0x7fffffffa5b0, fp=0x7ffff6ff74e0 <_IO_2_1_stderr_>) at builtin-trace.c:4747
#4 0x00000000004b656e in trace__run (trace=0x7fffffffa5b0, argc=2, argv=0x7fffffffde60) at builtin-trace.c:4456
#5 0x00000000004ba43e in cmd_trace (argc=2, argv=0x7fffffffde60) at builtin-trace.c:5487
#6 0x00000000004c0414 in run_builtin (p=0xec3068 <commands+648>, argc=5, argv=0x7fffffffde60) at perf.c:351
#7 0x00000000004c06bb in handle_internal_command (argc=5, argv=0x7fffffffde60) at perf.c:404
#8 0x00000000004c0814 in run_argv (argcp=0x7fffffffdc4c, argv=0x7fffffffdc40) at perf.c:448
#9 0x00000000004c0b5d in main (argc=5, argv=0x7fffffffde60) at perf.c:560
(gdb)
After:
root@number:~# perf trace -a --errno-summary sleep 1
<SNIP>
pw-data-loop (2685), 1410 events, 16.0%
syscall calls errors total min avg max stddev
(msec) (msec) (msec) (msec) (%)
--------------- -------- ------ -------- --------- --------- --------- ------
epoll_wait 188 0 983.428 0.000 5.231 15.595 8.68%
ioctl 94 0 0.811 0.004 0.009 0.016 2.82%
read 188 0 0.322 0.001 0.002 0.006 5.15%
write 141 0 0.280 0.001 0.002 0.018 8.39%
timerfd_settime 94 0 0.138 0.001 0.001 0.007 6.47%
gnome-control-c (179406), 1848 events, 20.9%
syscall calls errors total min avg max stddev
(msec) (msec) (msec) (msec) (%)
--------------- -------- ------ -------- --------- --------- --------- ------
poll 222 0 959.577 0.000 4.322 21.414 11.40%
recvmsg 150 0 0.539 0.001 0.004 0.013 5.12%
write 300 0 0.442 0.001 0.001 0.007 3.29%
read 150 0 0.183 0.001 0.001 0.009 5.53%
getpid 102 0 0.101 0.000 0.001 0.008 7.82%
root@number:~#
Fixes: 54373b5d53 ("perf env: Introduce perf_env__arch_strerrno()")
Reported-by: Veronika Molnarova <vmolnaro@redhat.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Acked-by: Veronika Molnarova <vmolnaro@redhat.com>
Acked-by: Michael Petlan <mpetlan@redhat.com>
Tested-by: Michael Petlan <mpetlan@redhat.com>
Link: https://lore.kernel.org/r/Z0XffUgNSv_9OjOi@x1
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-12-19 18:13:11 +01:00
..
2024-10-02 17:23:23 -04:00
2024-10-23 11:34:56 -03:00
2024-08-29 15:56:37 -03:00
2024-06-26 11:07:42 -07:00
2024-07-31 16:12:59 -03:00
2024-10-02 17:23:23 -04:00
2024-06-26 11:07:42 -07:00
2024-09-06 11:44:58 -03:00
2024-09-10 17:32:47 -03:00
2024-08-22 12:38:18 -03:00
2024-09-11 13:08:46 -03:00
2024-08-14 10:20:40 -03:00
2024-08-12 18:05:14 -03:00
2023-10-17 12:40:50 -07:00
2024-08-28 18:14:42 -03:00
2024-08-28 18:15:16 -03:00
2024-08-14 10:20:40 -03:00
2024-08-14 10:20:40 -03:00
2023-11-09 13:49:33 -03:00
2024-09-03 11:43:16 -03:00
2023-12-12 14:55:13 -03:00
2024-09-03 11:47:02 -03:00
2024-09-03 11:50:20 -03:00
2024-09-03 11:50:20 -03:00
2024-09-03 11:53:15 -03:00
2024-08-21 11:39:51 -03:00
2024-09-03 11:54:47 -03:00
2024-08-12 18:05:14 -03:00
2024-01-03 17:54:54 -03:00
2024-12-05 14:02:27 +01:00
2024-08-01 12:11:33 -03:00
2024-08-28 18:21:49 -03:00
2024-08-28 18:21:49 -03:00
2023-10-25 13:38:50 -07:00
2024-08-14 10:20:40 -03:00
2024-09-03 10:15:16 -03:00
2024-12-19 18:13:10 +01:00
2024-08-12 18:07:10 -03:00
2024-09-10 17:32:47 -03:00
2024-09-10 17:32:47 -03:00
2024-10-28 13:04:52 -03:00
2024-08-20 17:53:12 -03:00
2024-05-10 10:52:46 -03:00
2023-09-12 17:32:00 -03:00
2024-07-03 14:59:15 -07:00
2023-11-28 14:25:06 -03:00
2024-05-07 18:06:44 -03:00
2024-05-07 18:06:44 -03:00
2023-12-12 14:55:13 -03:00
2024-12-05 14:02:17 +01:00
2024-08-29 15:55:24 -03:00
2024-08-12 18:13:00 -03:00
2024-08-12 18:12:44 -03:00
2024-08-12 18:15:39 -03:00
2024-01-22 12:08:21 -08:00
2024-05-06 15:28:49 -03:00
2024-03-21 10:41:28 -03:00
2024-03-21 10:41:28 -03:00
2023-11-10 09:03:54 -03:00
2024-08-09 17:37:03 -03:00
2024-08-01 18:54:19 -03:00
2024-08-01 18:54:19 -03:00
2024-12-05 14:02:21 +01:00
2024-07-31 16:12:59 -03:00
2024-05-06 15:28:49 -03:00
2024-08-19 14:52:13 -03:00
2024-08-19 14:52:13 -03:00
2024-08-19 14:52:13 -03:00
2024-08-19 14:52:13 -03:00
2024-09-03 12:22:01 -03:00
2024-09-03 12:22:01 -03:00
2024-08-22 12:32:18 -03:00
2024-10-02 18:21:49 -03:00
2023-12-23 10:56:05 -03:00
2024-09-11 13:08:46 -03:00
2024-09-11 13:08:46 -03:00
2024-08-12 18:07:10 -03:00
2024-08-12 18:07:10 -03:00
2024-08-28 18:07:20 -03:00
2024-12-05 14:02:18 +01:00
2024-12-05 14:02:18 +01:00
2024-08-01 18:55:55 -03:00
2024-09-11 11:28:27 -03:00
2024-09-11 11:28:27 -03:00
2024-06-06 00:19:36 -07:00
2024-02-13 13:47:08 -08:00
2023-09-12 17:46:50 -03:00
2024-07-31 16:58:18 -03:00
2024-06-03 22:07:52 -07:00
2024-04-18 22:22:51 -03:00
2023-09-11 10:31:02 -03:00
2024-08-30 09:24:27 -03:00
2024-08-30 09:24:27 -03:00
2024-03-21 13:54:40 -03:00
2024-08-12 18:05:14 -03:00
2024-08-28 18:20:38 -03:00
2024-08-28 18:07:20 -03:00
2024-08-12 18:05:14 -03:00
2024-08-12 18:05:14 -03:00
2023-10-17 12:40:50 -07:00
2024-08-13 15:24:48 -03:00
2024-08-13 15:24:48 -03:00
2024-08-19 14:51:46 -03:00
2024-08-19 14:51:46 -03:00
2023-09-12 17:31:59 -03:00
2024-09-03 10:39:20 -03:00
2024-09-03 10:39:20 -03:00
2023-09-12 17:32:00 -03:00
2024-12-19 18:13:11 +01:00
2024-09-10 17:32:47 -03:00
2024-08-01 18:55:55 -03:00
2024-08-01 18:55:55 -03:00
2024-09-10 17:32:47 -03:00
2024-09-10 17:32:47 -03:00
2024-06-06 23:31:30 -07:00
2024-02-12 12:35:41 -08:00
2024-12-05 14:02:18 +01:00
2024-09-06 11:45:17 -03:00
2024-08-01 18:55:55 -03:00
2024-08-01 18:55:55 -03:00
2024-09-11 11:27:42 -03:00
2024-04-18 22:22:51 -03:00
2024-08-01 18:55:55 -03:00
2023-11-28 14:25:06 -03:00
2023-11-09 13:47:50 -03:00
2024-09-11 11:27:42 -03:00
2024-09-11 11:27:42 -03:00
2024-08-12 18:15:27 -03:00
2024-05-26 08:41:34 -03:00
2024-02-15 13:48:36 -08:00
2023-12-12 14:55:13 -03:00
2024-03-21 13:53:45 -03:00
2024-02-15 13:48:36 -08:00
2024-02-15 13:48:36 -08:00
2024-12-05 14:02:24 +01:00
2024-09-11 11:29:20 -03:00
2024-09-11 11:29:20 -03:00
2023-09-12 17:47:00 -03:00
2024-12-05 14:02:24 +01:00
2024-09-11 11:27:42 -03:00
2024-07-31 16:12:59 -03:00
2024-07-31 16:12:59 -03:00
2024-08-01 12:11:33 -03:00
2024-05-06 15:28:49 -03:00
2024-12-05 14:02:20 +01:00
2024-12-05 14:02:20 +01:00
2024-10-23 19:29:50 -03:00
2024-03-03 22:51:18 -08:00
2024-03-21 10:41:28 -03:00
2023-10-25 10:02:11 -07:00
2023-10-25 10:02:11 -07:00
2023-10-25 13:35:35 -07:00
2023-10-25 13:35:35 -07:00
2023-11-15 12:51:53 -05:00
2024-08-12 18:05:14 -03:00
2023-11-27 15:38:37 -03:00
2023-11-09 13:47:50 -03:00
2024-09-11 13:08:46 -03:00
2024-08-30 09:23:51 -03:00
2024-08-22 17:26:50 -03:00
2024-08-21 11:48:43 -03:00
2024-08-21 11:48:43 -03:00
2024-09-03 10:15:16 -03:00
2024-08-16 19:35:18 -03:00
2024-09-11 11:28:27 -03:00
2024-03-21 10:41:28 -03:00
2024-04-18 22:22:51 -03:00
2023-09-12 17:32:00 -03:00
2023-09-12 17:32:00 -03:00
2024-03-21 10:41:28 -03:00
2024-08-12 13:59:22 -03:00
2024-05-06 15:28:49 -03:00
2024-05-06 16:07:30 -03:00
2024-05-06 15:28:49 -03:00
2024-09-22 23:46:18 +02:00
2024-05-07 18:06:44 -03:00
2024-09-10 17:32:47 -03:00
2024-09-10 17:32:47 -03:00
2024-10-23 11:34:56 -03:00
2024-07-12 09:49:02 -07:00
2024-02-22 09:11:03 -08:00
2024-08-08 17:30:27 -03:00
2024-08-08 17:30:27 -03:00
2024-03-03 22:52:04 -08:00
2024-03-03 22:52:13 -08:00
2024-09-03 11:21:55 -03:00
2024-08-12 18:13:58 -03:00
2024-08-12 18:13:58 -03:00
2023-12-18 21:34:39 -03:00
2023-12-07 16:47:55 -03:00
2024-09-10 09:52:13 -03:00
2023-10-12 10:01:57 -07:00
2024-02-01 22:10:27 -08:00
2024-02-01 22:10:27 -08:00
2024-05-09 18:46:43 -03:00
2024-05-09 18:46:43 -03:00
2024-08-12 18:05:14 -03:00
2024-07-12 09:38:41 -07:00
2024-07-17 13:17:57 -07:00
2024-05-06 15:28:49 -03:00
2024-08-20 17:53:12 -03:00
2024-02-22 09:11:41 -08:00
2024-04-17 12:21:39 -03:00
2024-09-27 15:38:52 -03:00
2023-11-28 14:25:06 -03:00