mirror of https://gitee.com/openkylin/linux.git
tracing: Add correct/incorrect to sort keys for branch annotation output
The branch annotation is a bit difficult to see the worst offenders because it only sorts by percentage: correct incorrect % Function File Line ------- --------- - -------- ---- ---- 0 163 100 qdisc_restart sch_generic.c 179 0 163 100 pfifo_fast_dequeue sch_generic.c 447 0 4 100 pskb_trim_rcsum skbuff.h 1689 0 4 100 llc_rcv llc_input.c 170 0 18 100 psmouse_interrupt psmouse-base.c 304 0 3 100 atkbd_interrupt atkbd.c 389 0 5 100 usb_alloc_dev usb.c 437 0 11 100 vsscanf vsprintf.c 1897 0 2 100 IS_ERR err.h 34 0 23 100 __rmqueue_fallback page_alloc.c 865 0 4 100 probe_wakeup_sched_switch trace_sched_wakeup.c 142 0 3 100 move_masked_irq migration.c 11 Adding the incorrect and correct values as sort keys makes this file a bit more informative: correct incorrect % Function File Line ------- --------- - -------- ---- ---- 0 366541 100 audit_syscall_entry auditsc.c 1637 0 366538 100 audit_syscall_exit auditsc.c 1685 0 115839 100 sched_info_switch sched_stats.h 269 0 74567 100 sched_info_queued sched_stats.h 222 0 66578 100 sched_info_dequeued sched_stats.h 177 0 15113 100 trace_workqueue_insertion workqueue.h 38 0 15107 100 trace_workqueue_execution workqueue.h 45 0 3622 100 syscall_trace_leave ptrace.c 1772 0 2750 100 sched_move_task sched.c 10100 0 2750 100 sched_move_task sched.c 10110 0 1815 100 pre_schedule_rt sched_rt.c 1462 0 837 100 audit_alloc auditsc.c 879 0 814 100 tcp_mss_split_point tcp_output.c 1302 Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
This commit is contained in:
parent
ea2c68a08f
commit
ede55c9d78
|
@ -307,8 +307,23 @@ static int annotated_branch_stat_cmp(void *p1, void *p2)
|
||||||
return -1;
|
return -1;
|
||||||
if (percent_a > percent_b)
|
if (percent_a > percent_b)
|
||||||
return 1;
|
return 1;
|
||||||
else
|
|
||||||
return 0;
|
if (a->incorrect < b->incorrect)
|
||||||
|
return -1;
|
||||||
|
if (a->incorrect > b->incorrect)
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Since the above shows worse (incorrect) cases
|
||||||
|
* first, we continue that by showing best (correct)
|
||||||
|
* cases last.
|
||||||
|
*/
|
||||||
|
if (a->correct > b->correct)
|
||||||
|
return -1;
|
||||||
|
if (a->correct < b->correct)
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct tracer_stat annotated_branch_stats = {
|
static struct tracer_stat annotated_branch_stats = {
|
||||||
|
|
Loading…
Reference in New Issue