Lines Matching +full:class +full:- +full:d
1 // SPDX-License-Identifier: GPL-2.0
41 static void print_name(struct seq_file *m, struct lock_class *class) in print_name() argument
44 const char *name = class->name; in print_name()
47 name = __get_key_name(class->key, str); in print_name()
51 if (class->name_version > 1) in print_name()
52 seq_printf(m, "#%d", class->name_version); in print_name()
53 if (class->subclass) in print_name()
54 seq_printf(m, "/%d", class->subclass); in print_name()
60 struct lock_class *class = list_entry(v, struct lock_class, lock_entry); in l_show() local
69 seq_printf(m, "%p", class->key); in l_show()
71 seq_printf(m, " OPS:%8ld", debug_class_ops_read(class)); in l_show()
74 seq_printf(m, " FD:%5ld", lockdep_count_forward_deps(class)); in l_show()
75 seq_printf(m, " BD:%5ld", lockdep_count_backward_deps(class)); in l_show()
78 get_usage_chars(class, usage); in l_show()
82 print_name(m, class); in l_show()
85 list_for_each_entry(entry, &class->locks_after, entry) { in l_show()
86 if (entry->distance == 1) { in l_show()
87 seq_printf(m, " -> [%p] ", entry->class->key); in l_show()
88 print_name(m, entry->class); in l_show()
113 return lock_chains + (*pos - 1); in lc_start()
118 *pos = lockdep_next_lockchain(*pos - 1) + 1; in lc_next()
129 struct lock_class *class; in lc_show() local
146 seq_printf(m, "irq_context: %s\n", irq_strs[chain->irq_context]); in lc_show()
148 for (i = 0; i < chain->depth; i++) { in lc_show()
149 class = lock_chain_get_class(chain, i); in lc_show()
150 if (!class->key) in lc_show()
153 seq_printf(m, "[%p] ", class->key); in lc_show()
154 print_name(m, class); in lc_show()
192 seq_printf(m, " find-mask forwards checks: %11llu\n", in lockdep_stats_debug_show()
194 seq_printf(m, " find-mask backwards checks: %11llu\n", in lockdep_stats_debug_show()
220 struct lock_class *class; in lockdep_stats_show() local
222 list_for_each_entry(class, &all_lock_classes, lock_entry) { in lockdep_stats_show()
224 if (class->usage_mask == 0) in lockdep_stats_show()
226 if (class->usage_mask == LOCKF_USED) in lockdep_stats_show()
228 if (class->usage_mask & LOCKF_USED_IN_IRQ) in lockdep_stats_show()
230 if (class->usage_mask & LOCKF_ENABLED_IRQ) in lockdep_stats_show()
232 if (class->usage_mask & LOCKF_USED_IN_SOFTIRQ) in lockdep_stats_show()
234 if (class->usage_mask & LOCKF_ENABLED_SOFTIRQ) in lockdep_stats_show()
236 if (class->usage_mask & LOCKF_USED_IN_HARDIRQ) in lockdep_stats_show()
238 if (class->usage_mask & LOCKF_ENABLED_HARDIRQ) in lockdep_stats_show()
240 if (class->usage_mask & LOCKF_USED_IN_IRQ_READ) in lockdep_stats_show()
242 if (class->usage_mask & LOCKF_ENABLED_IRQ_READ) in lockdep_stats_show()
244 if (class->usage_mask & LOCKF_USED_IN_SOFTIRQ_READ) in lockdep_stats_show()
246 if (class->usage_mask & LOCKF_ENABLED_SOFTIRQ_READ) in lockdep_stats_show()
248 if (class->usage_mask & LOCKF_USED_IN_HARDIRQ_READ) in lockdep_stats_show()
250 if (class->usage_mask & LOCKF_ENABLED_HARDIRQ_READ) in lockdep_stats_show()
253 sum_forward_deps += lockdep_count_forward_deps(class); in lockdep_stats_show()
260 seq_printf(m, " lock-classes: %11lu [max: %lu]\n", in lockdep_stats_show()
270 * All irq-safe locks may nest inside irq-unsafe locks, in lockdep_stats_show()
282 MAX_LOCKDEP_CHAIN_HLOCKS - in lockdep_stats_show()
290 seq_printf(m, " in-hardirq chains: %11u\n", in lockdep_stats_show()
292 seq_printf(m, " in-softirq chains: %11u\n", in lockdep_stats_show()
295 seq_printf(m, " in-process chains: %11u\n", in lockdep_stats_show()
297 seq_printf(m, " stack-trace entries: %11lu [max: %lu]\n", in lockdep_stats_show()
310 seq_printf(m, " hardirq-safe locks: %11lu\n", in lockdep_stats_show()
312 seq_printf(m, " hardirq-unsafe locks: %11lu\n", in lockdep_stats_show()
314 seq_printf(m, " softirq-safe locks: %11lu\n", in lockdep_stats_show()
316 seq_printf(m, " softirq-unsafe locks: %11lu\n", in lockdep_stats_show()
318 seq_printf(m, " irq-safe locks: %11lu\n", in lockdep_stats_show()
320 seq_printf(m, " irq-unsafe locks: %11lu\n", in lockdep_stats_show()
323 seq_printf(m, " hardirq-read-safe locks: %11lu\n", in lockdep_stats_show()
325 seq_printf(m, " hardirq-read-unsafe locks: %11lu\n", in lockdep_stats_show()
327 seq_printf(m, " softirq-read-safe locks: %11lu\n", in lockdep_stats_show()
329 seq_printf(m, " softirq-read-unsafe locks: %11lu\n", in lockdep_stats_show()
331 seq_printf(m, " irq-read-safe locks: %11lu\n", in lockdep_stats_show()
333 seq_printf(m, " irq-read-unsafe locks: %11lu\n", in lockdep_stats_show()
368 struct lock_class *class; member
385 nl = dl->stats.read_waittime.nr + dl->stats.write_waittime.nr; in lock_stat_cmp()
386 nr = dr->stats.read_waittime.nr + dr->stats.write_waittime.nr; in lock_stat_cmp()
388 return nr - nl; in lock_stat_cmp()
409 snprintf(buf, bufsiz, "%lld.%02d", (long long)div, (int)rem/10); in snprint_time()
422 seq_printf(m, "%14lu", lt->nr); in seq_lock_time()
423 seq_time(m, lt->min); in seq_lock_time()
424 seq_time(m, lt->max); in seq_lock_time()
425 seq_time(m, lt->total); in seq_lock_time()
426 seq_time(m, lt->nr ? div64_u64(lt->total, lt->nr) : 0); in seq_lock_time()
433 struct lock_class *class; in seq_stats() local
438 class = data->class; in seq_stats()
439 stats = &data->stats; in seq_stats()
442 if (class->name_version > 1) in seq_stats()
443 namelen -= 2; /* XXX truncates versions > 9 */ in seq_stats()
444 if (class->subclass) in seq_stats()
445 namelen -= 2; in seq_stats()
448 cname = rcu_dereference_sched(class->name); in seq_stats()
449 ckey = rcu_dereference_sched(class->key); in seq_stats()
467 if (class->name_version > 1) { in seq_stats()
468 snprintf(name+namelen, 3, "#%d", class->name_version); in seq_stats()
471 if (class->subclass) { in seq_stats()
472 snprintf(name+namelen, 3, "/%d", class->subclass); in seq_stats()
476 if (stats->write_holdtime.nr) { in seq_stats()
477 if (stats->read_holdtime.nr) in seq_stats()
478 seq_printf(m, "%38s-W:", name); in seq_stats()
482 seq_printf(m, "%14lu ", stats->bounces[bounce_contended_write]); in seq_stats()
483 seq_lock_time(m, &stats->write_waittime); in seq_stats()
484 seq_printf(m, " %14lu ", stats->bounces[bounce_acquired_write]); in seq_stats()
485 seq_lock_time(m, &stats->write_holdtime); in seq_stats()
489 if (stats->read_holdtime.nr) { in seq_stats()
490 seq_printf(m, "%38s-R:", name); in seq_stats()
491 seq_printf(m, "%14lu ", stats->bounces[bounce_contended_read]); in seq_stats()
492 seq_lock_time(m, &stats->read_waittime); in seq_stats()
493 seq_printf(m, " %14lu ", stats->bounces[bounce_acquired_read]); in seq_stats()
494 seq_lock_time(m, &stats->read_holdtime); in seq_stats()
498 if (stats->read_waittime.nr + stats->write_waittime.nr == 0) in seq_stats()
501 if (stats->read_holdtime.nr) in seq_stats()
507 if (class->contention_point[i] == 0) in seq_stats()
511 seq_line(m, '-', 40-namelen, namelen); in seq_stats()
514 (void *)class->contention_point[i]); in seq_stats()
516 name, stats->contention_point[i], in seq_stats()
517 ip, (void *)class->contention_point[i]); in seq_stats()
522 if (class->contending_point[i] == 0) in seq_stats()
526 seq_line(m, '-', 40-namelen, namelen); in seq_stats()
529 (void *)class->contending_point[i]); in seq_stats()
531 name, stats->contending_point[i], in seq_stats()
532 ip, (void *)class->contending_point[i]); in seq_stats()
546 seq_printf(m, "*WARNING* lock debugging disabled!! - possibly due to a lockdep warning\n"); in seq_header()
548 seq_line(m, '-', 0, 40 + 1 + 12 * (14 + 1)); in seq_header()
551 "class name", in seq_header()
552 "con-bounces", in seq_header()
554 "waittime-min", in seq_header()
555 "waittime-max", in seq_header()
556 "waittime-total", in seq_header()
557 "waittime-avg", in seq_header()
558 "acq-bounces", in seq_header()
560 "holdtime-min", in seq_header()
561 "holdtime-max", in seq_header()
562 "holdtime-total", in seq_header()
563 "holdtime-avg"); in seq_header()
564 seq_line(m, '-', 0, 40 + 1 + 12 * (14 + 1)); in seq_header()
570 struct lock_stat_seq *data = m->private; in ls_start()
576 iter = data->stats + (*pos - 1); in ls_start()
577 if (iter >= data->iter_end) in ls_start()
613 struct lock_class *class; in lock_stat_open() local
617 return -ENOMEM; in lock_stat_open()
621 struct lock_stat_data *iter = data->stats; in lock_stat_open()
622 struct seq_file *m = file->private_data; in lock_stat_open()
624 list_for_each_entry(class, &all_lock_classes, lock_entry) { in lock_stat_open()
625 iter->class = class; in lock_stat_open()
626 iter->stats = lock_stats(class); in lock_stat_open()
629 data->iter_end = iter; in lock_stat_open()
631 sort(data->stats, data->iter_end - data->stats, in lock_stat_open()
635 m->private = data; in lock_stat_open()
645 struct lock_class *class; in lock_stat_write() local
650 return -EFAULT; in lock_stat_write()
655 list_for_each_entry(class, &all_lock_classes, lock_entry) in lock_stat_write()
656 clear_lock_stats(class); in lock_stat_write()
663 struct seq_file *seq = file->private_data; in lock_stat_release()
665 vfree(seq->private); in lock_stat_release()