Skip to content

Commit 04fa6bf

Browse files
makelinuxlenticularis39
authored andcommitted
tools/rtla: Add for_each_monitored_cpu() helper
The rtla tools have many instances of iterating over CPUs while checking if they are monitored. Add a for_each_monitored_cpu() helper macro to make the code more readable and reduce code duplication. Signed-off-by: Costa Shulyupin <costa.shul@redhat.com> Reviewed-by: Tomas Glozar <tglozar@redhat.com> Link: https://lore.kernel.org/r/20251002123553.389467-1-costa.shul@redhat.com Signed-off-by: Tomas Glozar <tglozar@redhat.com>
1 parent 0d5077c commit 04fa6bf

6 files changed

Lines changed: 23 additions & 58 deletions

File tree

tools/tracing/rtla/src/common.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,10 @@ struct common_params {
107107
struct timerlat_u_params user;
108108
};
109109

110+
#define for_each_monitored_cpu(cpu, nr_cpus, common) \
111+
for (cpu = 0; cpu < nr_cpus; cpu++) \
112+
if (!(common)->cpus || CPU_ISSET(cpu, &(common)->monitored_cpus))
113+
110114
struct tool_ops;
111115

112116
/*

tools/tracing/rtla/src/osnoise_hist.c

Lines changed: 7 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -247,9 +247,7 @@ static void osnoise_hist_header(struct osnoise_tool *tool)
247247
if (!params->common.hist.no_index)
248248
trace_seq_printf(s, "Index");
249249

250-
for (cpu = 0; cpu < data->nr_cpus; cpu++) {
251-
if (params->common.cpus && !CPU_ISSET(cpu, &params->common.monitored_cpus))
252-
continue;
250+
for_each_monitored_cpu(cpu, data->nr_cpus, &params->common) {
253251

254252
if (!data->hist[cpu].count)
255253
continue;
@@ -278,9 +276,7 @@ osnoise_print_summary(struct osnoise_params *params,
278276
if (!params->common.hist.no_index)
279277
trace_seq_printf(trace->seq, "count:");
280278

281-
for (cpu = 0; cpu < data->nr_cpus; cpu++) {
282-
if (params->common.cpus && !CPU_ISSET(cpu, &params->common.monitored_cpus))
283-
continue;
279+
for_each_monitored_cpu(cpu, data->nr_cpus, &params->common) {
284280

285281
if (!data->hist[cpu].count)
286282
continue;
@@ -292,9 +288,7 @@ osnoise_print_summary(struct osnoise_params *params,
292288
if (!params->common.hist.no_index)
293289
trace_seq_printf(trace->seq, "min: ");
294290

295-
for (cpu = 0; cpu < data->nr_cpus; cpu++) {
296-
if (params->common.cpus && !CPU_ISSET(cpu, &params->common.monitored_cpus))
297-
continue;
291+
for_each_monitored_cpu(cpu, data->nr_cpus, &params->common) {
298292

299293
if (!data->hist[cpu].count)
300294
continue;
@@ -307,9 +301,7 @@ osnoise_print_summary(struct osnoise_params *params,
307301
if (!params->common.hist.no_index)
308302
trace_seq_printf(trace->seq, "avg: ");
309303

310-
for (cpu = 0; cpu < data->nr_cpus; cpu++) {
311-
if (params->common.cpus && !CPU_ISSET(cpu, &params->common.monitored_cpus))
312-
continue;
304+
for_each_monitored_cpu(cpu, data->nr_cpus, &params->common) {
313305

314306
if (!data->hist[cpu].count)
315307
continue;
@@ -325,9 +317,7 @@ osnoise_print_summary(struct osnoise_params *params,
325317
if (!params->common.hist.no_index)
326318
trace_seq_printf(trace->seq, "max: ");
327319

328-
for (cpu = 0; cpu < data->nr_cpus; cpu++) {
329-
if (params->common.cpus && !CPU_ISSET(cpu, &params->common.monitored_cpus))
330-
continue;
320+
for_each_monitored_cpu(cpu, data->nr_cpus, &params->common) {
331321

332322
if (!data->hist[cpu].count)
333323
continue;
@@ -362,9 +352,7 @@ osnoise_print_stats(struct osnoise_tool *tool)
362352
trace_seq_printf(trace->seq, "%-6d",
363353
bucket * data->bucket_size);
364354

365-
for (cpu = 0; cpu < data->nr_cpus; cpu++) {
366-
if (params->common.cpus && !CPU_ISSET(cpu, &params->common.monitored_cpus))
367-
continue;
355+
for_each_monitored_cpu(cpu, data->nr_cpus, &params->common) {
368356

369357
if (!data->hist[cpu].count)
370358
continue;
@@ -400,9 +388,7 @@ osnoise_print_stats(struct osnoise_tool *tool)
400388
if (!params->common.hist.no_index)
401389
trace_seq_printf(trace->seq, "over: ");
402390

403-
for (cpu = 0; cpu < data->nr_cpus; cpu++) {
404-
if (params->common.cpus && !CPU_ISSET(cpu, &params->common.monitored_cpus))
405-
continue;
391+
for_each_monitored_cpu(cpu, data->nr_cpus, &params->common) {
406392

407393
if (!data->hist[cpu].count)
408394
continue;

tools/tracing/rtla/src/osnoise_top.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -243,9 +243,7 @@ osnoise_print_stats(struct osnoise_tool *top)
243243

244244
osnoise_top_header(top);
245245

246-
for (i = 0; i < nr_cpus; i++) {
247-
if (params->common.cpus && !CPU_ISSET(i, &params->common.monitored_cpus))
248-
continue;
246+
for_each_monitored_cpu(i, nr_cpus, &params->common) {
249247
osnoise_top_print(top, i);
250248
}
251249

tools/tracing/rtla/src/timerlat.c

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -126,9 +126,7 @@ int timerlat_enable(struct osnoise_tool *tool)
126126

127127
nr_cpus = sysconf(_SC_NPROCESSORS_CONF);
128128

129-
for (i = 0; i < nr_cpus; i++) {
130-
if (params->common.cpus && !CPU_ISSET(i, &params->common.monitored_cpus))
131-
continue;
129+
for_each_monitored_cpu(i, nr_cpus, &params->common) {
132130
if (save_cpu_idle_disable_state(i) < 0) {
133131
err_msg("Could not save cpu idle state.\n");
134132
return -1;
@@ -221,10 +219,7 @@ void timerlat_free(struct osnoise_tool *tool)
221219
if (dma_latency_fd >= 0)
222220
close(dma_latency_fd);
223221
if (params->deepest_idle_state >= -1) {
224-
for (i = 0; i < nr_cpus; i++) {
225-
if (params->common.cpus &&
226-
!CPU_ISSET(i, &params->common.monitored_cpus))
227-
continue;
222+
for_each_monitored_cpu(i, nr_cpus, &params->common) {
228223
restore_cpu_idle_disable_state(i);
229224
}
230225
}

tools/tracing/rtla/src/timerlat_hist.c

Lines changed: 8 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -305,9 +305,7 @@ static void timerlat_hist_header(struct osnoise_tool *tool)
305305
if (!params->common.hist.no_index)
306306
trace_seq_printf(s, "Index");
307307

308-
for (cpu = 0; cpu < data->nr_cpus; cpu++) {
309-
if (params->common.cpus && !CPU_ISSET(cpu, &params->common.monitored_cpus))
310-
continue;
308+
for_each_monitored_cpu(cpu, data->nr_cpus, &params->common) {
311309

312310
if (!data->hist[cpu].irq_count && !data->hist[cpu].thread_count)
313311
continue;
@@ -359,9 +357,7 @@ timerlat_print_summary(struct timerlat_params *params,
359357
if (!params->common.hist.no_index)
360358
trace_seq_printf(trace->seq, "count:");
361359

362-
for (cpu = 0; cpu < data->nr_cpus; cpu++) {
363-
if (params->common.cpus && !CPU_ISSET(cpu, &params->common.monitored_cpus))
364-
continue;
360+
for_each_monitored_cpu(cpu, data->nr_cpus, &params->common) {
365361

366362
if (!data->hist[cpu].irq_count && !data->hist[cpu].thread_count)
367363
continue;
@@ -383,9 +379,7 @@ timerlat_print_summary(struct timerlat_params *params,
383379
if (!params->common.hist.no_index)
384380
trace_seq_printf(trace->seq, "min: ");
385381

386-
for (cpu = 0; cpu < data->nr_cpus; cpu++) {
387-
if (params->common.cpus && !CPU_ISSET(cpu, &params->common.monitored_cpus))
388-
continue;
382+
for_each_monitored_cpu(cpu, data->nr_cpus, &params->common) {
389383

390384
if (!data->hist[cpu].irq_count && !data->hist[cpu].thread_count)
391385
continue;
@@ -413,9 +407,7 @@ timerlat_print_summary(struct timerlat_params *params,
413407
if (!params->common.hist.no_index)
414408
trace_seq_printf(trace->seq, "avg: ");
415409

416-
for (cpu = 0; cpu < data->nr_cpus; cpu++) {
417-
if (params->common.cpus && !CPU_ISSET(cpu, &params->common.monitored_cpus))
418-
continue;
410+
for_each_monitored_cpu(cpu, data->nr_cpus, &params->common) {
419411

420412
if (!data->hist[cpu].irq_count && !data->hist[cpu].thread_count)
421413
continue;
@@ -443,9 +435,7 @@ timerlat_print_summary(struct timerlat_params *params,
443435
if (!params->common.hist.no_index)
444436
trace_seq_printf(trace->seq, "max: ");
445437

446-
for (cpu = 0; cpu < data->nr_cpus; cpu++) {
447-
if (params->common.cpus && !CPU_ISSET(cpu, &params->common.monitored_cpus))
448-
continue;
438+
for_each_monitored_cpu(cpu, data->nr_cpus, &params->common) {
449439

450440
if (!data->hist[cpu].irq_count && !data->hist[cpu].thread_count)
451441
continue;
@@ -490,9 +480,7 @@ timerlat_print_stats_all(struct timerlat_params *params,
490480
sum.min_thread = ~0;
491481
sum.min_user = ~0;
492482

493-
for (cpu = 0; cpu < data->nr_cpus; cpu++) {
494-
if (params->common.cpus && !CPU_ISSET(cpu, &params->common.monitored_cpus))
495-
continue;
483+
for_each_monitored_cpu(cpu, data->nr_cpus, &params->common) {
496484

497485
if (!data->hist[cpu].irq_count && !data->hist[cpu].thread_count)
498486
continue;
@@ -639,9 +627,7 @@ timerlat_print_stats(struct osnoise_tool *tool)
639627
trace_seq_printf(trace->seq, "%-6d",
640628
bucket * data->bucket_size);
641629

642-
for (cpu = 0; cpu < data->nr_cpus; cpu++) {
643-
if (params->common.cpus && !CPU_ISSET(cpu, &params->common.monitored_cpus))
644-
continue;
630+
for_each_monitored_cpu(cpu, data->nr_cpus, &params->common) {
645631

646632
if (!data->hist[cpu].irq_count && !data->hist[cpu].thread_count)
647633
continue;
@@ -679,9 +665,7 @@ timerlat_print_stats(struct osnoise_tool *tool)
679665
if (!params->common.hist.no_index)
680666
trace_seq_printf(trace->seq, "over: ");
681667

682-
for (cpu = 0; cpu < data->nr_cpus; cpu++) {
683-
if (params->common.cpus && !CPU_ISSET(cpu, &params->common.monitored_cpus))
684-
continue;
668+
for_each_monitored_cpu(cpu, data->nr_cpus, &params->common) {
685669

686670
if (!data->hist[cpu].irq_count && !data->hist[cpu].thread_count)
687671
continue;

tools/tracing/rtla/src/timerlat_top.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -459,9 +459,7 @@ timerlat_print_stats(struct osnoise_tool *top)
459459

460460
timerlat_top_header(params, top);
461461

462-
for (i = 0; i < nr_cpus; i++) {
463-
if (params->common.cpus && !CPU_ISSET(i, &params->common.monitored_cpus))
464-
continue;
462+
for_each_monitored_cpu(i, nr_cpus, &params->common) {
465463
timerlat_top_print(top, i);
466464
timerlat_top_update_sum(top, i, &summary);
467465
}

0 commit comments

Comments
 (0)