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