test_urandom_usdt.c (1928B)
1// SPDX-License-Identifier: GPL-2.0 2/* 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";