Linux Audio

Check our new training course

Loading...
v6.13.7
 1// SPDX-License-Identifier: GPL-2.0
 2/* Copyright (c) 2021 Facebook */
 3#include "vmlinux.h"
 4#include <bpf/bpf_helpers.h>
 5#include <bpf/bpf_tracing.h>
 6#include "bpf_misc.h"
 7
 8char LICENSE[] SEC("license") = "GPL";
 9
10int pid = 0;
11int fentry_cnt = 0;
12int fexit_cnt = 0;
13
14SEC("fentry/" SYS_PREFIX "sys_nanosleep")
15int nanosleep_fentry(void *ctx)
16{
17	if (bpf_get_current_pid_tgid() >> 32 != pid)
18		return 0;
19
20	fentry_cnt++;
21	return 0;
22}
23
24SEC("fexit/" SYS_PREFIX "sys_nanosleep")
25int nanosleep_fexit(void *ctx)
26{
27	if (bpf_get_current_pid_tgid() >> 32 != pid)
28		return 0;
29
30	fexit_cnt++;
31	return 0;
32}
v5.14.15
 1// SPDX-License-Identifier: GPL-2.0
 2/* Copyright (c) 2021 Facebook */
 3#include "vmlinux.h"
 4#include <bpf/bpf_helpers.h>
 5#include <bpf/bpf_tracing.h>
 
 6
 7char LICENSE[] SEC("license") = "GPL";
 8
 9int pid = 0;
10int fentry_cnt = 0;
11int fexit_cnt = 0;
12
13SEC("fentry/__x64_sys_nanosleep")
14int BPF_PROG(nanosleep_fentry, const struct pt_regs *regs)
15{
16	if ((int)bpf_get_current_pid_tgid() != pid)
17		return 0;
18
19	fentry_cnt++;
20	return 0;
21}
22
23SEC("fexit/__x64_sys_nanosleep")
24int BPF_PROG(nanosleep_fexit, const struct pt_regs *regs, int ret)
25{
26	if ((int)bpf_get_current_pid_tgid() != pid)
27		return 0;
28
29	fexit_cnt++;
30	return 0;
31}