Commit 19fb518c2a0c5d88ed22bba7083b7e7bc2a9c231
Committed by
Ingo Molnar
1 parent
50df5d6aea
Exists in
master
and in
4 other branches
latencytop: optimize LT_BACKTRACEDEPTH loops a bit
There is no need to loop any longer when 'same == 0'. Signed-off-by: Dmitry Adamushko <dmitry.adamushko@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Showing 1 changed file with 17 additions and 10 deletions Side-by-side Diff
kernel/latencytop.c
... | ... | @@ -64,8 +64,8 @@ |
64 | 64 | return; |
65 | 65 | |
66 | 66 | for (i = 0; i < MAXLR; i++) { |
67 | - int q; | |
68 | - int same = 1; | |
67 | + int q, same = 1; | |
68 | + | |
69 | 69 | /* Nothing stored: */ |
70 | 70 | if (!latency_record[i].backtrace[0]) { |
71 | 71 | if (firstnonnull > i) |
72 | 72 | |
73 | 73 | |
... | ... | @@ -73,12 +73,15 @@ |
73 | 73 | continue; |
74 | 74 | } |
75 | 75 | for (q = 0 ; q < LT_BACKTRACEDEPTH ; q++) { |
76 | - if (latency_record[i].backtrace[q] != | |
77 | - lat->backtrace[q]) | |
76 | + unsigned long record = lat->backtrace[q]; | |
77 | + | |
78 | + if (latency_record[i].backtrace[q] != record) { | |
78 | 79 | same = 0; |
79 | - if (same && lat->backtrace[q] == 0) | |
80 | 80 | break; |
81 | - if (same && lat->backtrace[q] == ULONG_MAX) | |
81 | + } | |
82 | + | |
83 | + /* 0 and ULONG_MAX entries mean end of backtrace: */ | |
84 | + if (record == 0 || record == ULONG_MAX) | |
82 | 85 | break; |
83 | 86 | } |
84 | 87 | if (same) { |
85 | 88 | |
86 | 89 | |
87 | 90 | |
... | ... | @@ -143,14 +146,18 @@ |
143 | 146 | for (i = 0; i < LT_SAVECOUNT ; i++) { |
144 | 147 | struct latency_record *mylat; |
145 | 148 | int same = 1; |
149 | + | |
146 | 150 | mylat = &tsk->latency_record[i]; |
147 | 151 | for (q = 0 ; q < LT_BACKTRACEDEPTH ; q++) { |
148 | - if (mylat->backtrace[q] != | |
149 | - lat.backtrace[q]) | |
152 | + unsigned long record = lat.backtrace[q]; | |
153 | + | |
154 | + if (mylat->backtrace[q] != record) { | |
150 | 155 | same = 0; |
151 | - if (same && lat.backtrace[q] == 0) | |
152 | 156 | break; |
153 | - if (same && lat.backtrace[q] == ULONG_MAX) | |
157 | + } | |
158 | + | |
159 | + /* 0 and ULONG_MAX entries mean end of backtrace: */ | |
160 | + if (record == 0 || record == ULONG_MAX) | |
154 | 161 | break; |
155 | 162 | } |
156 | 163 | if (same) { |