The perf buffer tests triggers trace with nanosleep syscall, but monitors all syscalls, which results in lot of data in the buffer and makes it harder to debug. Let's lower the trace traffic and monitor just nanosleep syscall. Signed-off-by: Jiri Olsa <jolsa@kernel.org> Signed-off-by: Andrii Nakryiko <andrii@kernel.org> Acked-by: John Fastabend <john.fastabend@gmail.com> Link: https://lore.kernel.org/bpf/20211021114132.8196-4-jolsa@kernel.org
26 lines
559 B
C
26 lines
559 B
C
// SPDX-License-Identifier: GPL-2.0
|
|
// Copyright (c) 2019 Facebook
|
|
|
|
#include <linux/ptrace.h>
|
|
#include <linux/bpf.h>
|
|
#include <bpf/bpf_helpers.h>
|
|
#include <bpf/bpf_tracing.h>
|
|
|
|
struct {
|
|
__uint(type, BPF_MAP_TYPE_PERF_EVENT_ARRAY);
|
|
__type(key, int);
|
|
__type(value, int);
|
|
} perf_buf_map SEC(".maps");
|
|
|
|
SEC("tp/syscalls/sys_enter_nanosleep")
|
|
int handle_sys_enter(void *ctx)
|
|
{
|
|
int cpu = bpf_get_smp_processor_id();
|
|
|
|
bpf_perf_event_output(ctx, &perf_buf_map, BPF_F_CURRENT_CPU,
|
|
&cpu, sizeof(cpu));
|
|
return 0;
|
|
}
|
|
|
|
char _license[] SEC("license") = "GPL";
|