Commit e5a9df51 authored by David Vernet's avatar David Vernet Committed by Andrii Nakryiko
Browse files

selftests/bpf: Add selftests validating the user ringbuf



This change includes selftests that validate the expected behavior and
APIs of the new BPF_MAP_TYPE_USER_RINGBUF map type.

Signed-off-by: default avatarDavid Vernet <void@manifault.com>
Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20220920000100.477320-5-void@manifault.com
parent b66ccae0
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -71,3 +71,4 @@ cb_refs # expected error message unexpected err
cgroup_hierarchical_stats                # JIT does not support calling kernel function                                (kfunc)
htab_update                              # failed to attach: ERROR: strerror_r(-524)=22                                (trampoline)
tracing_struct                           # failed to auto-attach: -524                                                 (trampoline)
user_ringbuf                             # failed to find kernel BTF type ID of '__s390x_sys_prctl': -3                (?)
+754 −0

File added.

Preview size limit exceeded, changes collapsed.

+35 −0
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0 */
/* Copyright (c) 2022 Meta Platforms, Inc. and affiliates. */

#ifndef _TEST_USER_RINGBUF_H
#define _TEST_USER_RINGBUF_H

#define TEST_OP_64 4
#define TEST_OP_32 2

enum test_msg_op {
	TEST_MSG_OP_INC64,
	TEST_MSG_OP_INC32,
	TEST_MSG_OP_MUL64,
	TEST_MSG_OP_MUL32,

	// Must come last.
	TEST_MSG_OP_NUM_OPS,
};

struct test_msg {
	enum test_msg_op msg_op;
	union {
		__s64 operand_64;
		__s32 operand_32;
	};
};

struct sample {
	int pid;
	int seq;
	long value;
	char comm[16];
};

#endif /* _TEST_USER_RINGBUF_H */
+177 −0

File added.

Preview size limit exceeded, changes collapsed.

+218 −0

File added.

Preview size limit exceeded, changes collapsed.