Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

selftests/bpf: use canonical ftrace path

The canonical location for the tracefs filesystem is at
/sys/kernel/tracing.

But, from Documentation/trace/ftrace.rst:

Before 4.1, all ftrace tracing control files were within the debugfs
file system, which is typically located at /sys/kernel/debug/tracing.
For backward compatibility, when mounting the debugfs file system,
the tracefs file system will be automatically mounted at:

/sys/kernel/debug/tracing

Many tests in the bpf selftest code still refer to this older debugfs
path, so let's update them to avoid confusion.

Signed-off-by: Ross Zwisler <zwisler@google.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Link: https://lore.kernel.org/r/20230313205628.1058720-3-zwisler@kernel.org
Signed-off-by: Alexei Starovoitov <ast@kernel.org>

authored by

Ross Zwisler and committed by
Alexei Starovoitov
ab4c15fe 27d7fdf0

+64 -22
+7 -2
tools/testing/selftests/bpf/get_cgroup_id_user.c
··· 86 86 pid = getpid(); 87 87 bpf_map_update_elem(pidmap_fd, &key, &pid, 0); 88 88 89 - snprintf(buf, sizeof(buf), 90 - "/sys/kernel/debug/tracing/events/%s/id", probe_name); 89 + if (access("/sys/kernel/tracing/trace", F_OK) == 0) { 90 + snprintf(buf, sizeof(buf), 91 + "/sys/kernel/tracing/events/%s/id", probe_name); 92 + } else { 93 + snprintf(buf, sizeof(buf), 94 + "/sys/kernel/debug/tracing/events/%s/id", probe_name); 95 + } 91 96 efd = open(buf, O_RDONLY, 0); 92 97 if (CHECK(efd < 0, "open", "err %d errno %d\n", efd, errno)) 93 98 goto close_prog;
+6 -1
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c
··· 338 338 * Filtering out duplicates by using hashmap__add, which won't 339 339 * add existing entry. 340 340 */ 341 - f = fopen("/sys/kernel/debug/tracing/available_filter_functions", "r"); 341 + 342 + if (access("/sys/kernel/tracing/trace", F_OK) == 0) 343 + f = fopen("/sys/kernel/tracing/available_filter_functions", "r"); 344 + else 345 + f = fopen("/sys/kernel/debug/tracing/available_filter_functions", "r"); 346 + 342 347 if (!f) 343 348 return -EINVAL; 344 349
+7 -2
tools/testing/selftests/bpf/prog_tests/task_fd_query_tp.c
··· 17 17 if (CHECK(err, "bpf_prog_test_load", "err %d errno %d\n", err, errno)) 18 18 goto close_prog; 19 19 20 - snprintf(buf, sizeof(buf), 21 - "/sys/kernel/debug/tracing/events/%s/id", probe_name); 20 + if (access("/sys/kernel/tracing/trace", F_OK) == 0) { 21 + snprintf(buf, sizeof(buf), 22 + "/sys/kernel/tracing/events/%s/id", probe_name); 23 + } else { 24 + snprintf(buf, sizeof(buf), 25 + "/sys/kernel/debug/tracing/events/%s/id", probe_name); 26 + } 22 27 efd = open(buf, O_RDONLY, 0); 23 28 if (CHECK(efd < 0, "open", "err %d errno %d\n", efd, errno)) 24 29 goto close_prog;
+7 -2
tools/testing/selftests/bpf/prog_tests/tp_attach_query.c
··· 16 16 for (i = 0; i < num_progs; i++) 17 17 obj[i] = NULL; 18 18 19 - snprintf(buf, sizeof(buf), 20 - "/sys/kernel/debug/tracing/events/sched/sched_switch/id"); 19 + if (access("/sys/kernel/tracing/trace", F_OK) == 0) { 20 + snprintf(buf, sizeof(buf), 21 + "/sys/kernel/tracing/events/sched/sched_switch/id"); 22 + } else { 23 + snprintf(buf, sizeof(buf), 24 + "/sys/kernel/debug/tracing/events/sched/sched_switch/id"); 25 + } 21 26 efd = open(buf, O_RDONLY, 0); 22 27 if (CHECK(efd < 0, "open", "err %d errno %d\n", efd, errno)) 23 28 return;
+7 -3
tools/testing/selftests/bpf/prog_tests/trace_printk.c
··· 5 5 6 6 #include "trace_printk.lskel.h" 7 7 8 - #define TRACEBUF "/sys/kernel/debug/tracing/trace_pipe" 8 + #define TRACEFS_PIPE "/sys/kernel/tracing/trace_pipe" 9 + #define DEBUGFS_PIPE "/sys/kernel/debug/tracing/trace_pipe" 9 10 #define SEARCHMSG "testing,testing" 10 11 11 12 void serial_test_trace_printk(void) ··· 35 34 if (!ASSERT_OK(err, "trace_printk__attach")) 36 35 goto cleanup; 37 36 38 - fp = fopen(TRACEBUF, "r"); 39 - if (!ASSERT_OK_PTR(fp, "fopen(TRACEBUF)")) 37 + if (access(TRACEFS_PIPE, F_OK) == 0) 38 + fp = fopen(TRACEFS_PIPE, "r"); 39 + else 40 + fp = fopen(DEBUGFS_PIPE, "r"); 41 + if (!ASSERT_OK_PTR(fp, "fopen(TRACE_PIPE)")) 40 42 goto cleanup; 41 43 42 44 /* We do not want to wait forever if this test fails... */
+7 -3
tools/testing/selftests/bpf/prog_tests/trace_vprintk.c
··· 5 5 6 6 #include "trace_vprintk.lskel.h" 7 7 8 - #define TRACEBUF "/sys/kernel/debug/tracing/trace_pipe" 8 + #define TRACEFS_PIPE "/sys/kernel/tracing/trace_pipe" 9 + #define DEBUGFS_PIPE "/sys/kernel/debug/tracing/trace_pipe" 9 10 #define SEARCHMSG "1,2,3,4,5,6,7,8,9,10" 10 11 11 12 void serial_test_trace_vprintk(void) ··· 28 27 if (!ASSERT_OK(err, "trace_vprintk__attach")) 29 28 goto cleanup; 30 29 31 - fp = fopen(TRACEBUF, "r"); 32 - if (!ASSERT_OK_PTR(fp, "fopen(TRACEBUF)")) 30 + if (access(TRACEFS_PIPE, F_OK) == 0) 31 + fp = fopen(TRACEFS_PIPE, "r"); 32 + else 33 + fp = fopen(DEBUGFS_PIPE, "r"); 34 + if (!ASSERT_OK_PTR(fp, "fopen(TRACE_PIPE)")) 33 35 goto cleanup; 34 36 35 37 /* We do not want to wait forever if this test fails... */
+1 -1
tools/testing/selftests/bpf/progs/test_stacktrace_map.c
··· 38 38 __type(value, stack_trace_t); 39 39 } stack_amap SEC(".maps"); 40 40 41 - /* taken from /sys/kernel/debug/tracing/events/sched/sched_switch/format */ 41 + /* taken from /sys/kernel/tracing/events/sched/sched_switch/format */ 42 42 struct sched_switch_args { 43 43 unsigned long long pad; 44 44 char prev_comm[TASK_COMM_LEN];
+1 -1
tools/testing/selftests/bpf/progs/test_tracepoint.c
··· 4 4 #include <vmlinux.h> 5 5 #include <bpf/bpf_helpers.h> 6 6 7 - /* taken from /sys/kernel/debug/tracing/events/sched/sched_switch/format */ 7 + /* taken from /sys/kernel/tracing/events/sched/sched_switch/format */ 8 8 struct sched_switch_args { 9 9 unsigned long long pad; 10 10 char prev_comm[TASK_COMM_LEN];
+6 -1
tools/testing/selftests/bpf/test_ftrace.sh
··· 1 1 #!/bin/bash 2 2 3 - TR=/sys/kernel/debug/tracing/ 3 + if [[ -e /sys/kernel/tracing/trace ]]; then 4 + TR=/sys/kernel/tracing/ 5 + else 6 + TR=/sys/kernel/debug/tracing/ 7 + fi 8 + 4 9 clear_trace() { # reset trace output 5 10 echo > $TR/trace 6 11 }
+9 -4
tools/testing/selftests/bpf/test_tunnel.sh
··· 571 571 572 572 test_xfrm_tunnel() 573 573 { 574 + if [[ -e /sys/kernel/tracing/trace ]]; then 575 + TRACE=/sys/kernel/tracing/trace 576 + else 577 + TRACE=/sys/kernel/debug/tracing/trace 578 + fi 574 579 config_device 575 - > /sys/kernel/debug/tracing/trace 580 + > ${TRACE} 576 581 setup_xfrm_tunnel 577 582 mkdir -p ${BPF_PIN_TUNNEL_DIR} 578 583 bpftool prog loadall ${BPF_FILE} ${BPF_PIN_TUNNEL_DIR} ··· 586 581 ${BPF_PIN_TUNNEL_DIR}/xfrm_get_state 587 582 ip netns exec at_ns0 ping $PING_ARG 10.1.1.200 588 583 sleep 1 589 - grep "reqid 1" /sys/kernel/debug/tracing/trace 584 + grep "reqid 1" ${TRACE} 590 585 check_err $? 591 - grep "spi 0x1" /sys/kernel/debug/tracing/trace 586 + grep "spi 0x1" ${TRACE} 592 587 check_err $? 593 - grep "remote ip 0xac100164" /sys/kernel/debug/tracing/trace 588 + grep "remote ip 0xac100164" ${TRACE} 594 589 check_err $? 595 590 cleanup 596 591
+6 -2
tools/testing/selftests/bpf/trace_helpers.c
··· 12 12 #include <sys/mman.h> 13 13 #include "trace_helpers.h" 14 14 15 - #define DEBUGFS "/sys/kernel/debug/tracing/" 15 + #define TRACEFS_PIPE "/sys/kernel/tracing/trace_pipe" 16 + #define DEBUGFS_PIPE "/sys/kernel/debug/tracing/trace_pipe" 16 17 17 18 #define MAX_SYMS 300000 18 19 static struct ksym syms[MAX_SYMS]; ··· 137 136 { 138 137 int trace_fd; 139 138 140 - trace_fd = open(DEBUGFS "trace_pipe", O_RDONLY, 0); 139 + if (access(TRACEFS_PIPE, F_OK) == 0) 140 + trace_fd = open(TRACEFS_PIPE, O_RDONLY, 0); 141 + else 142 + trace_fd = open(DEBUGFS_PIPE, O_RDONLY, 0); 141 143 if (trace_fd < 0) 142 144 return; 143 145