brintos

brintos / linux-shallow public Read only

0
0
Text · 1.9 KiB · 3539b02 Raw
71 lines · c
1// SPDX-License-Identifier: GPL-2.02/* Copyright (c) 2022 Meta Platforms, Inc. and affiliates. */3 4#include "vmlinux.h"5#include <bpf/bpf_helpers.h>6#include <bpf/usdt.bpf.h>7 8int urand_pid;9 10int urand_read_without_sema_call_cnt;11int urand_read_without_sema_buf_sz_sum;12 13SEC("usdt/./urandom_read:urand:read_without_sema")14int BPF_USDT(urand_read_without_sema, int iter_num, int iter_cnt, int buf_sz)15{16	if (urand_pid != (bpf_get_current_pid_tgid() >> 32))17		return 0;18 19	__sync_fetch_and_add(&urand_read_without_sema_call_cnt, 1);20	__sync_fetch_and_add(&urand_read_without_sema_buf_sz_sum, buf_sz);21 22	return 0;23}24 25int urand_read_with_sema_call_cnt;26int urand_read_with_sema_buf_sz_sum;27 28SEC("usdt/./urandom_read:urand:read_with_sema")29int BPF_USDT(urand_read_with_sema, int iter_num, int iter_cnt, int buf_sz)30{31	if (urand_pid != (bpf_get_current_pid_tgid() >> 32))32		return 0;33 34	__sync_fetch_and_add(&urand_read_with_sema_call_cnt, 1);35	__sync_fetch_and_add(&urand_read_with_sema_buf_sz_sum, buf_sz);36 37	return 0;38}39 40int urandlib_read_without_sema_call_cnt;41int urandlib_read_without_sema_buf_sz_sum;42 43SEC("usdt/./liburandom_read.so:urandlib:read_without_sema")44int BPF_USDT(urandlib_read_without_sema, int iter_num, int iter_cnt, int buf_sz)45{46	if (urand_pid != (bpf_get_current_pid_tgid() >> 32))47		return 0;48 49	__sync_fetch_and_add(&urandlib_read_without_sema_call_cnt, 1);50	__sync_fetch_and_add(&urandlib_read_without_sema_buf_sz_sum, buf_sz);51 52	return 0;53}54 55int urandlib_read_with_sema_call_cnt;56int urandlib_read_with_sema_buf_sz_sum;57 58SEC("usdt/./liburandom_read.so:urandlib:read_with_sema")59int BPF_USDT(urandlib_read_with_sema, int iter_num, int iter_cnt, int buf_sz)60{61	if (urand_pid != (bpf_get_current_pid_tgid() >> 32))62		return 0;63 64	__sync_fetch_and_add(&urandlib_read_with_sema_call_cnt, 1);65	__sync_fetch_and_add(&urandlib_read_with_sema_buf_sz_sum, buf_sz);66 67	return 0;68}69 70char _license[] SEC("license") = "GPL";71