Skip to content

Commit 1892380

Browse files
lenticularis39rostedt
authored andcommitted
rtla/timerlat_top: Move divisor to update
Unlike timerlat-hist, timerlat-top applies the output divisor used to set ns/us mode when printing results instead of applying it when collecting the samples. Move the application of the divisor from timerlat_top_print into timerlat_top_update to make it consistent with timerlat-hist. Cc: John Kacur <[email protected]> Cc: Luis Goncalves <[email protected]> Cc: Gabriele Monaco <[email protected]> Cc: Clark Williams <[email protected]> Link: https://lore.kernel.org/[email protected] Signed-off-by: Tomas Glozar <[email protected]> Signed-off-by: Steven Rostedt (Google) <[email protected]>
1 parent fd7925c commit 1892380

File tree

1 file changed

+25
-29
lines changed

1 file changed

+25
-29
lines changed

tools/tracing/rtla/src/timerlat_top.c

Lines changed: 25 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -127,9 +127,13 @@ timerlat_top_update(struct osnoise_tool *tool, int cpu,
127127
unsigned long long thread,
128128
unsigned long long latency)
129129
{
130+
struct timerlat_params *params = tool->params;
130131
struct timerlat_top_data *data = tool->data;
131132
struct timerlat_top_cpu *cpu_data = &data->cpu_data[cpu];
132133

134+
if (params->output_divisor)
135+
latency = latency / params->output_divisor;
136+
133137
if (!thread) {
134138
cpu_data->irq_count++;
135139
cpu_data->cur_irq = latency;
@@ -231,12 +235,8 @@ static void timerlat_top_print(struct osnoise_tool *top, int cpu)
231235
struct timerlat_params *params = top->params;
232236
struct timerlat_top_data *data = top->data;
233237
struct timerlat_top_cpu *cpu_data = &data->cpu_data[cpu];
234-
int divisor = params->output_divisor;
235238
struct trace_seq *s = top->trace.seq;
236239

237-
if (divisor == 0)
238-
return;
239-
240240
/*
241241
* Skip if no data is available: is this cpu offline?
242242
*/
@@ -251,20 +251,20 @@ static void timerlat_top_print(struct osnoise_tool *top, int cpu)
251251
if (!cpu_data->irq_count) {
252252
trace_seq_printf(s, "%s %s %s %s |", no_value, no_value, no_value, no_value);
253253
} else {
254-
trace_seq_printf(s, "%9llu ", cpu_data->cur_irq / params->output_divisor);
255-
trace_seq_printf(s, "%9llu ", cpu_data->min_irq / params->output_divisor);
256-
trace_seq_printf(s, "%9llu ", (cpu_data->sum_irq / cpu_data->irq_count) / divisor);
257-
trace_seq_printf(s, "%9llu |", cpu_data->max_irq / divisor);
254+
trace_seq_printf(s, "%9llu ", cpu_data->cur_irq);
255+
trace_seq_printf(s, "%9llu ", cpu_data->min_irq);
256+
trace_seq_printf(s, "%9llu ", cpu_data->sum_irq / cpu_data->irq_count);
257+
trace_seq_printf(s, "%9llu |", cpu_data->max_irq);
258258
}
259259

260260
if (!cpu_data->thread_count) {
261261
trace_seq_printf(s, "%s %s %s %s", no_value, no_value, no_value, no_value);
262262
} else {
263-
trace_seq_printf(s, "%9llu ", cpu_data->cur_thread / divisor);
264-
trace_seq_printf(s, "%9llu ", cpu_data->min_thread / divisor);
263+
trace_seq_printf(s, "%9llu ", cpu_data->cur_thread);
264+
trace_seq_printf(s, "%9llu ", cpu_data->min_thread);
265265
trace_seq_printf(s, "%9llu ",
266-
(cpu_data->sum_thread / cpu_data->thread_count) / divisor);
267-
trace_seq_printf(s, "%9llu", cpu_data->max_thread / divisor);
266+
cpu_data->sum_thread / cpu_data->thread_count);
267+
trace_seq_printf(s, "%9llu", cpu_data->max_thread);
268268
}
269269

270270
if (!params->user_top) {
@@ -277,11 +277,11 @@ static void timerlat_top_print(struct osnoise_tool *top, int cpu)
277277
if (!cpu_data->user_count) {
278278
trace_seq_printf(s, "%s %s %s %s\n", no_value, no_value, no_value, no_value);
279279
} else {
280-
trace_seq_printf(s, "%9llu ", cpu_data->cur_user / divisor);
281-
trace_seq_printf(s, "%9llu ", cpu_data->min_user / divisor);
280+
trace_seq_printf(s, "%9llu ", cpu_data->cur_user);
281+
trace_seq_printf(s, "%9llu ", cpu_data->min_user);
282282
trace_seq_printf(s, "%9llu ",
283-
(cpu_data->sum_user / cpu_data->user_count) / divisor);
284-
trace_seq_printf(s, "%9llu\n", cpu_data->max_user / divisor);
283+
cpu_data->sum_user / cpu_data->user_count);
284+
trace_seq_printf(s, "%9llu\n", cpu_data->max_user);
285285
}
286286
}
287287

@@ -294,13 +294,9 @@ timerlat_top_print_sum(struct osnoise_tool *top, struct timerlat_top_cpu *summar
294294
const char *split = "----------------------------------------";
295295
struct timerlat_params *params = top->params;
296296
unsigned long long count = summary->irq_count;
297-
int divisor = params->output_divisor;
298297
struct trace_seq *s = top->trace.seq;
299298
int e = 0;
300299

301-
if (divisor == 0)
302-
return;
303-
304300
/*
305301
* Skip if no data is available: is this cpu offline?
306302
*/
@@ -323,19 +319,19 @@ timerlat_top_print_sum(struct osnoise_tool *top, struct timerlat_top_cpu *summar
323319
trace_seq_printf(s, " %s %s %s |", no_value, no_value, no_value);
324320
} else {
325321
trace_seq_printf(s, " ");
326-
trace_seq_printf(s, "%9llu ", summary->min_irq / params->output_divisor);
327-
trace_seq_printf(s, "%9llu ", (summary->sum_irq / summary->irq_count) / divisor);
328-
trace_seq_printf(s, "%9llu |", summary->max_irq / divisor);
322+
trace_seq_printf(s, "%9llu ", summary->min_irq);
323+
trace_seq_printf(s, "%9llu ", summary->sum_irq / summary->irq_count);
324+
trace_seq_printf(s, "%9llu |", summary->max_irq);
329325
}
330326

331327
if (!summary->thread_count) {
332328
trace_seq_printf(s, "%s %s %s %s", no_value, no_value, no_value, no_value);
333329
} else {
334330
trace_seq_printf(s, " ");
335-
trace_seq_printf(s, "%9llu ", summary->min_thread / divisor);
331+
trace_seq_printf(s, "%9llu ", summary->min_thread);
336332
trace_seq_printf(s, "%9llu ",
337-
(summary->sum_thread / summary->thread_count) / divisor);
338-
trace_seq_printf(s, "%9llu", summary->max_thread / divisor);
333+
summary->sum_thread / summary->thread_count);
334+
trace_seq_printf(s, "%9llu", summary->max_thread);
339335
}
340336

341337
if (!params->user_top) {
@@ -349,10 +345,10 @@ timerlat_top_print_sum(struct osnoise_tool *top, struct timerlat_top_cpu *summar
349345
trace_seq_printf(s, " %s %s %s |", no_value, no_value, no_value);
350346
} else {
351347
trace_seq_printf(s, " ");
352-
trace_seq_printf(s, "%9llu ", summary->min_user / divisor);
348+
trace_seq_printf(s, "%9llu ", summary->min_user);
353349
trace_seq_printf(s, "%9llu ",
354-
(summary->sum_user / summary->user_count) / divisor);
355-
trace_seq_printf(s, "%9llu\n", summary->max_user / divisor);
350+
summary->sum_user / summary->user_count);
351+
trace_seq_printf(s, "%9llu\n", summary->max_user);
356352
}
357353
}
358354

0 commit comments

Comments
 (0)