File tree Expand file tree Collapse file tree 2 files changed +152
-152
lines changed Expand file tree Collapse file tree 2 files changed +152
-152
lines changed Original file line number Diff line number Diff line change 245245 dist .print_log2_hist (label , "hardirq" , section_print_fn = bytes .decode )
246246 else :
247247 print ("%-26s %11s" % ("HARDIRQ" , "TOTAL_" + label ))
248- for k , v in sorted (dist .items (), key = lambda dist : dist [1 ].value ):
248+ for k , v in sorted (dist .items (), key = lambda dist : - dist [1 ].value ):
249249 print ("%-26s %11d" % (k .name .decode ('utf-8' , 'replace' ), v .value / factor ))
250250 dist .clear ()
251251
Original file line number Diff line number Diff line change @@ -8,28 +8,28 @@ in-kernel for efficiency. For example:
88Tracing hard irq event time... Hit Ctrl-C to end.
99^C
1010HARDIRQ TOTAL_usecs
11- callfuncsingle0 2
12- callfuncsingle5 5
13- callfuncsingle6 5
14- callfuncsingle7 21
15- blkif 66
16- timer7 84
17- resched5 94
18- resched0 97
19- resched3 102
20- resched7 111
21- resched6 255
22- timer3 362
23- resched4 367
24- timer5 474
25- timer1 529
26- timer6 679
27- timer2 746
28- timer4 943
29- resched1 1048
30- timer0 1558
31- resched2 1750
3211eth0 11441
12+ resched2 1750
13+ timer0 1558
14+ resched1 1048
15+ timer4 943
16+ timer2 746
17+ timer6 679
18+ timer1 529
19+ timer5 474
20+ resched4 367
21+ timer3 362
22+ resched6 255
23+ resched7 111
24+ resched3 102
25+ resched0 97
26+ resched5 94
27+ timer7 84
28+ blkif 66
29+ callfuncsingle7 21
30+ callfuncsingle6 5
31+ callfuncsingle5 5
32+ callfuncsingle0 2
3333
3434The HARDIRQ column prints the interrupt action name. While tracing, the eth0
3535hard irq action ran for 11441 microseconds (11 milliseconds) in total.
@@ -47,80 +47,80 @@ Tracing hard irq event time... Hit Ctrl-C to end.
4747
484822:16:14
4949HARDIRQ TOTAL_usecs
50- callfuncsingle0 2
51- callfuncsingle7 5
52- callfuncsingle3 5
53- callfuncsingle2 5
54- callfuncsingle6 6
55- callfuncsingle1 11
56- resched0 32
57- blkif 51
58- resched5 71
59- resched7 71
60- resched4 72
61- resched6 82
62- timer7 172
63- resched1 187
64- resched2 236
65- timer3 252
66- resched3 282
67- timer1 320
68- timer2 374
69- timer6 396
70- timer5 427
71- timer4 470
72- timer0 1430
7350eth0 7498
51+ timer0 1430
52+ timer4 470
53+ timer5 427
54+ timer6 396
55+ timer2 374
56+ timer1 320
57+ resched3 282
58+ timer3 252
59+ resched2 236
60+ resched1 187
61+ timer7 172
62+ resched6 82
63+ resched4 72
64+ resched7 71
65+ resched5 71
66+ blkif 51
67+ resched0 32
68+ callfuncsingle1 11
69+ callfuncsingle6 6
70+ callfuncsingle2 5
71+ callfuncsingle3 5
72+ callfuncsingle7 5
73+ callfuncsingle0 2
7474
757522:16:15
7676HARDIRQ TOTAL_usecs
77- callfuncsingle7 6
78- callfuncsingle5 11
79- callfuncsingle4 13
80- timer2 17
81- callfuncsingle6 18
82- resched0 21
83- blkif 33
84- resched3 40
85- resched5 60
86- resched4 69
87- resched6 70
88- resched7 74
89- timer7 86
90- resched2 91
91- timer3 134
92- resched1 293
93- timer5 354
94- timer1 433
95- timer6 497
96- timer4 1112
97- timer0 1768
9877eth0 6972
78+ timer0 1768
79+ timer4 1112
80+ timer6 497
81+ timer1 433
82+ timer5 354
83+ resched1 293
84+ timer3 134
85+ resched2 91
86+ timer7 86
87+ resched7 74
88+ resched6 70
89+ resched4 69
90+ resched5 60
91+ resched3 40
92+ blkif 33
93+ resched0 21
94+ callfuncsingle6 18
95+ timer2 17
96+ callfuncsingle4 13
97+ callfuncsingle5 11
98+ callfuncsingle7 6
9999
10010022:16:16
101101HARDIRQ TOTAL_usecs
102- callfuncsingle7 5
103- callfuncsingle3 5
104- callfuncsingle2 6
105- timer3 10
106- resched0 18
107- callfuncsingle4 22
108- resched5 27
109- resched6 44
110- blkif 45
111- resched7 65
112- resched4 69
113- timer4 77
114- resched2 97
115- timer7 98
116- resched3 103
117- timer2 169
118- resched1 226
119- timer5 525
120- timer1 691
121- timer6 697
122- timer0 1415
123102eth0 7152
103+ timer0 1415
104+ timer6 697
105+ timer1 691
106+ timer5 525
107+ resched1 226
108+ timer2 169
109+ resched3 103
110+ timer7 98
111+ resched2 97
112+ timer4 77
113+ resched4 69
114+ resched7 65
115+ blkif 45
116+ resched6 44
117+ resched5 27
118+ callfuncsingle4 22
119+ resched0 18
120+ timer3 10
121+ callfuncsingle2 6
122+ callfuncsingle3 5
123+ callfuncsingle7 5
124124
125125This can be useful for quantifying where CPU cycles are spent among the hard
126126interrupts (summarized as the %irq column from mpstat(1)). The output above
@@ -133,57 +133,57 @@ perf tool is performing a 999 Hertz CPU profile ("perf record -F 999 -a ..."):
133133
13413422:13:59
135135HARDIRQ TOTAL_usecs
136- callfuncsingle7 5
137- callfuncsingle5 5
138- callfuncsingle3 6
139- callfuncsingle4 7
140- callfuncsingle6 19
141- blkif 66
142- resched0 66
143- resched2 82
144- resched7 87
145- resched3 96
146- resched4 118
147- resched5 120
148- resched6 130
149- resched1 230
150- timer3 946
151- timer1 1981
152- timer7 2618
153- timer5 3063
154- timer6 3141
155- timer4 3511
156- timer2 3554
157- timer0 5044
158136eth0 16015
137+ timer0 5044
138+ timer2 3554
139+ timer4 3511
140+ timer6 3141
141+ timer5 3063
142+ timer7 2618
143+ timer1 1981
144+ timer3 946
145+ resched1 230
146+ resched6 130
147+ resched5 120
148+ resched4 118
149+ resched3 96
150+ resched7 87
151+ resched2 82
152+ resched0 66
153+ blkif 66
154+ callfuncsingle6 19
155+ callfuncsingle4 7
156+ callfuncsingle3 6
157+ callfuncsingle5 5
158+ callfuncsingle7 5
159159
160160This sheds some light into the CPU overhead of the perf profiler, which cost
161161around 3 milliseconds per second. Note that I'm usually profiling at a much
162162lower rate, 99 Hertz, which looks like this:
163163
16416422:22:12
165165HARDIRQ TOTAL_usecs
166- callfuncsingle3 5
167- callfuncsingle6 5
168- callfuncsingle5 22
169- blkif 46
170- resched6 47
171- resched5 57
172- resched4 66
173- resched7 78
174- resched2 97
175- resched0 214
176- timer2 326
177- timer0 498
178- timer5 536
179- timer6 576
180- timer1 600
181- timer4 982
182- resched1 1315
183- timer7 1364
184- timer3 1825
185- resched3 5708
186166eth0 9743
167+ resched3 5708
168+ timer3 1825
169+ timer7 1364
170+ resched1 1315
171+ timer4 982
172+ timer1 600
173+ timer6 576
174+ timer5 536
175+ timer0 498
176+ timer2 326
177+ resched0 214
178+ resched2 97
179+ resched7 78
180+ resched4 66
181+ resched5 57
182+ resched6 47
183+ blkif 46
184+ callfuncsingle5 22
185+ callfuncsingle6 5
186+ callfuncsingle3 5
187187
188188Much lower (and remember to compare this to the baseline). Note that perf has
189189other overheads (non-irq CPU cycles, file system storage).
@@ -621,30 +621,30 @@ of times. You can use the -C or --count option:
621621Tracing hard irq events... Hit Ctrl-C to end.
622622^C
623623HARDIRQ TOTAL_count
624- blkif 2
625- callfuncsingle3 8
626- callfuncsingle2 10
627- callfuncsingle1 18
628- resched7 25
629- callfuncsingle6 25
630- callfuncsingle5 27
631- callfuncsingle0 27
632- eth0 34
633- resched2 40
634- resched1 66
635- timer7 70
636- resched6 71
637- resched0 73
638- resched5 79
639- resched4 90
640- timer6 95
641- timer4 100
642- timer1 109
643- timer2 115
644- timer0 117
645- timer3 123
646- resched3 140
647624timer5 288
625+ resched3 140
626+ timer3 123
627+ timer0 117
628+ timer2 115
629+ timer1 109
630+ timer4 100
631+ timer6 95
632+ resched4 90
633+ resched5 79
634+ resched0 73
635+ resched6 71
636+ timer7 70
637+ resched1 66
638+ resched2 40
639+ eth0 34
640+ callfuncsingle0 27
641+ callfuncsingle5 27
642+ callfuncsingle6 25
643+ resched7 25
644+ callfuncsingle1 18
645+ callfuncsingle2 10
646+ callfuncsingle3 8
647+ blkif 2
648648
649649
650650USAGE message:
You can’t perform that action at this time.
0 commit comments