brintos

brintos / linux-shallow public Read only

0
0
Text · 728 B · 29c1639 Raw
34 lines · c
1// SPDX-License-Identifier: GPL-2.02// Copyright (c) 2020 Facebook3 4#include <linux/bpf.h>5#include <stdint.h>6#include <bpf/bpf_helpers.h>7#include "bpf_misc.h"8 9char _license[] SEC("license") = "GPL";10 11struct {12	__uint(type, BPF_MAP_TYPE_PERF_EVENT_ARRAY);13	__uint(value_size, sizeof(int));14	__uint(key_size, sizeof(int));15} perfbuf SEC(".maps");16 17const volatile int batch_cnt = 0;18 19long sample_val = 42;20long dropped __attribute__((aligned(128))) = 0;21 22SEC("fentry/" SYS_PREFIX "sys_getpgid")23int bench_perfbuf(void *ctx)24{25	int i;26 27	for (i = 0; i < batch_cnt; i++) {28		if (bpf_perf_event_output(ctx, &perfbuf, BPF_F_CURRENT_CPU,29					  &sample_val, sizeof(sample_val)))30			__sync_add_and_fetch(&dropped, 1);31	}32	return 0;33}34