xref: /openbmc/linux/tools/perf/util/bpf_skel/lock_data.h (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
1fd507d3eSNamhyung Kim // SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2fd507d3eSNamhyung Kim /* Data structures shared between BPF and tools. */
3fd507d3eSNamhyung Kim #ifndef UTIL_BPF_SKEL_LOCK_DATA_H
4fd507d3eSNamhyung Kim #define UTIL_BPF_SKEL_LOCK_DATA_H
5fd507d3eSNamhyung Kim 
6fd507d3eSNamhyung Kim struct contention_key {
7ebab2916SNamhyung Kim 	u32 stack_id;
8ebab2916SNamhyung Kim 	u32 pid;
9ebab2916SNamhyung Kim 	u64 lock_addr;
10fd507d3eSNamhyung Kim };
11fd507d3eSNamhyung Kim 
12fd507d3eSNamhyung Kim #define TASK_COMM_LEN  16
13fd507d3eSNamhyung Kim 
14fd507d3eSNamhyung Kim struct contention_task_data {
15fd507d3eSNamhyung Kim 	char comm[TASK_COMM_LEN];
16fd507d3eSNamhyung Kim };
17fd507d3eSNamhyung Kim 
18*2d8d0165SNamhyung Kim /* default buffer size */
19*2d8d0165SNamhyung Kim #define MAX_ENTRIES  16384
20*2d8d0165SNamhyung Kim 
213ace2435SNamhyung Kim /*
223ace2435SNamhyung Kim  * Upper bits of the flags in the contention_data are used to identify
233ace2435SNamhyung Kim  * some well-known locks which do not have symbols (non-global locks).
243ace2435SNamhyung Kim  */
253ace2435SNamhyung Kim #define LCD_F_MMAP_LOCK		(1U << 31)
261811e827SNamhyung Kim #define LCD_F_SIGHAND_LOCK	(1U << 30)
273ace2435SNamhyung Kim 
284f701063SNamhyung Kim #define LCB_F_MAX_FLAGS		(1U << 7)
294f701063SNamhyung Kim 
30fd507d3eSNamhyung Kim struct contention_data {
31fd507d3eSNamhyung Kim 	u64 total_time;
32fd507d3eSNamhyung Kim 	u64 min_time;
33fd507d3eSNamhyung Kim 	u64 max_time;
34fd507d3eSNamhyung Kim 	u32 count;
35fd507d3eSNamhyung Kim 	u32 flags;
36fd507d3eSNamhyung Kim };
37fd507d3eSNamhyung Kim 
38fd507d3eSNamhyung Kim enum lock_aggr_mode {
39fd507d3eSNamhyung Kim 	LOCK_AGGR_ADDR = 0,
40fd507d3eSNamhyung Kim 	LOCK_AGGR_TASK,
41fd507d3eSNamhyung Kim 	LOCK_AGGR_CALLER,
42fd507d3eSNamhyung Kim };
43fd507d3eSNamhyung Kim 
44d24c0144SNamhyung Kim enum lock_class_sym {
45d24c0144SNamhyung Kim 	LOCK_CLASS_NONE,
46d24c0144SNamhyung Kim 	LOCK_CLASS_RQLOCK,
47d24c0144SNamhyung Kim };
48d24c0144SNamhyung Kim 
49fd507d3eSNamhyung Kim #endif /* UTIL_BPF_SKEL_LOCK_DATA_H */
50