tools/testing/selftests/bpf/progs/profiler.inc.h

Source file repositories/reference/linux-study-clean/tools/testing/selftests/bpf/progs/profiler.inc.h

File Facts

System
Linux kernel
Corpus path
tools/testing/selftests/bpf/progs/profiler.inc.h
Extension
.h
Size
29678 bytes
Lines
961
Domain
Support Tooling And Documentation
Bucket
tools
Inferred role
Support Tooling And Documentation: implementation source
Status
source implementation candidate

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

struct var_kill_data_arr_t {
	struct var_kill_data_t array[KILL_DATA_ARRAY_SIZE];
};

union any_profiler_data_t {
	struct var_exec_data_t var_exec;
	struct var_kill_data_t var_kill;
	struct var_sysctl_data_t var_sysctl;
	struct var_filemod_data_t var_filemod;
	struct var_fork_data_t var_fork;
	struct var_kill_data_arr_t var_kill_data_arr;
};

volatile struct profiler_config_struct bpf_config = {};

#define FETCH_CGROUPS_FROM_BPF (bpf_config.fetch_cgroups_from_bpf)
#define CGROUP_FS_INODE (bpf_config.cgroup_fs_inode)
#define CGROUP_LOGIN_SESSION_INODE \
	(bpf_config.cgroup_login_session_inode)
#define KILL_SIGNALS (bpf_config.kill_signals_mask)
#define STALE_INFO (bpf_config.stale_info_secs)
#define INODE_FILTER (bpf_config.inode_filter)
#define READ_ENVIRON_FROM_EXEC (bpf_config.read_environ_from_exec)
#define ENABLE_CGROUP_V1_RESOLVER (bpf_config.enable_cgroup_v1_resolver)

struct kernfs_iattrs___52 {
	struct iattr ia_iattr;
};

struct kernfs_node___52 {
	union /* kernfs_node_id */ {
		struct {
			u32 ino;
			u32 generation;
		};
		u64 id;
	} id;
};

struct {
	__uint(type, BPF_MAP_TYPE_PERCPU_ARRAY);
	__uint(max_entries, 1);
	__type(key, u32);
	__type(value, union any_profiler_data_t);
} data_heap SEC(".maps");

struct {
	__uint(type, BPF_MAP_TYPE_PERF_EVENT_ARRAY);
	__uint(key_size, sizeof(int));
	__uint(value_size, sizeof(int));
} events SEC(".maps");

struct {
	__uint(type, BPF_MAP_TYPE_HASH);
	__uint(max_entries, KILL_DATA_ARRAY_SIZE);
	__type(key, u32);
	__type(value, struct var_kill_data_arr_t);
} var_tpid_to_data SEC(".maps");

struct {
	__uint(type, BPF_MAP_TYPE_PERCPU_ARRAY);
	__uint(max_entries, profiler_bpf_max_function_id);
	__type(key, u32);
	__type(value, struct bpf_func_stats_data);
} bpf_func_stats SEC(".maps");

struct {
	__uint(type, BPF_MAP_TYPE_HASH);
	__type(key, u32);
	__type(value, bool);
	__uint(max_entries, 16);
} allowed_devices SEC(".maps");

struct {
	__uint(type, BPF_MAP_TYPE_HASH);
	__type(key, u64);
	__type(value, bool);
	__uint(max_entries, 1024);
} allowed_file_inodes SEC(".maps");

struct {
	__uint(type, BPF_MAP_TYPE_HASH);
	__type(key, u64);
	__type(value, bool);
	__uint(max_entries, 1024);
} allowed_directory_inodes SEC(".maps");

struct {
	__uint(type, BPF_MAP_TYPE_HASH);
	__type(key, u32);

Annotation

Implementation Notes