mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-31 16:38:12 +00:00
6984cbc6df
Switch perf_buffer test to use skeleton to avoid use of bpf_prog_load() and make test a bit more succinct. Also switch BPF program to use tracepoint instead of kprobe, as that allows to support older kernels, which had tracepoint support before kprobe support in the form that libbpf expects (i.e., libbpf expects /sys/bus/event_source/devices/kprobe/type, which doesn't always exist on old kernels). Signed-off-by: Andrii Nakryiko <andriin@fb.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Link: https://lore.kernel.org/bpf/20200708015318.3827358-7-andriin@fb.com
25 lines
579 B
C
25 lines
579 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);
|
|
__uint(key_size, sizeof(int));
|
|
__uint(value_size, sizeof(int));
|
|
} perf_buf_map SEC(".maps");
|
|
|
|
SEC("tp/raw_syscalls/sys_enter")
|
|
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";
|