Lines Matching refs:con

20 int lock_contention_prepare(struct lock_contention *con)  in lock_contention_prepare()  argument
24 struct evlist *evlist = con->evlist; in lock_contention_prepare()
25 struct target *target = con->target; in lock_contention_prepare()
33 bpf_map__set_value_size(skel->maps.stacks, con->max_stack * sizeof(u64)); in lock_contention_prepare()
34 bpf_map__set_max_entries(skel->maps.lock_stat, con->map_nr_entries); in lock_contention_prepare()
35 bpf_map__set_max_entries(skel->maps.tstamp, con->map_nr_entries); in lock_contention_prepare()
37 if (con->aggr_mode == LOCK_AGGR_TASK) in lock_contention_prepare()
38 bpf_map__set_max_entries(skel->maps.task_data, con->map_nr_entries); in lock_contention_prepare()
42 if (con->save_callstack) in lock_contention_prepare()
43 bpf_map__set_max_entries(skel->maps.stacks, con->map_nr_entries); in lock_contention_prepare()
51 if (con->filters->nr_types) in lock_contention_prepare()
52 ntypes = con->filters->nr_types; in lock_contention_prepare()
55 if (con->filters->nr_syms) { in lock_contention_prepare()
60 for (i = 0; i < con->filters->nr_syms; i++) { in lock_contention_prepare()
61 sym = machine__find_kernel_symbol_by_name(con->machine, in lock_contention_prepare()
62 con->filters->syms[i], in lock_contention_prepare()
66 con->filters->syms[i]); in lock_contention_prepare()
70 addrs = realloc(con->filters->addrs, in lock_contention_prepare()
71 (con->filters->nr_addrs + 1) * sizeof(*addrs)); in lock_contention_prepare()
77 addrs[con->filters->nr_addrs++] = map__unmap_ip(kmap, sym->start); in lock_contention_prepare()
78 con->filters->addrs = addrs; in lock_contention_prepare()
80 naddrs = con->filters->nr_addrs; in lock_contention_prepare()
128 if (con->filters->nr_types) { in lock_contention_prepare()
134 for (i = 0; i < con->filters->nr_types; i++) in lock_contention_prepare()
135 bpf_map_update_elem(fd, &con->filters->types[i], &val, BPF_ANY); in lock_contention_prepare()
138 if (con->filters->nr_addrs) { in lock_contention_prepare()
144 for (i = 0; i < con->filters->nr_addrs; i++) in lock_contention_prepare()
145 bpf_map_update_elem(fd, &con->filters->addrs[i], &val, BPF_ANY); in lock_contention_prepare()
149 skel->bss->stack_skip = con->stack_skip; in lock_contention_prepare()
150 skel->bss->aggr_mode = con->aggr_mode; in lock_contention_prepare()
151 skel->bss->needs_callstack = con->save_callstack; in lock_contention_prepare()
152 skel->bss->lock_owner = con->owner; in lock_contention_prepare()
172 static const char *lock_contention_get_name(struct lock_contention *con, in lock_contention_get_name() argument
182 struct machine *machine = con->machine; in lock_contention_get_name()
184 if (con->aggr_mode == LOCK_AGGR_TASK) { in lock_contention_get_name()
202 if (con->aggr_mode == LOCK_AGGR_ADDR) { in lock_contention_get_name()
227 idx < con->max_stack - 1) in lock_contention_get_name()
249 int lock_contention_read(struct lock_contention *con) in lock_contention_read() argument
255 struct machine *machine = con->machine; in lock_contention_read()
257 size_t stack_size = con->max_stack * sizeof(*stack_trace); in lock_contention_read()
262 con->fails.task = skel->bss->task_fail; in lock_contention_read()
263 con->fails.stack = skel->bss->stack_fail; in lock_contention_read()
264 con->fails.time = skel->bss->time_fail; in lock_contention_read()
265 con->fails.data = skel->bss->data_fail; in lock_contention_read()
271 if (con->aggr_mode == LOCK_AGGR_TASK) { in lock_contention_read()
278 if (con->aggr_mode == LOCK_AGGR_ADDR) { in lock_contention_read()
299 if (con->save_callstack) { in lock_contention_read()
303 con->nr_filtered += data.count; in lock_contention_read()
308 switch (con->aggr_mode) { in lock_contention_read()
336 name = lock_contention_get_name(con, &key, stack_trace, data.flags); in lock_contention_read()
349 if (con->aggr_mode == LOCK_AGGR_CALLER && verbose > 0) { in lock_contention_read()