@@ -281,6 +281,21 @@ static void timerlat_hist_header(struct osnoise_tool *tool)
281
281
trace_seq_reset (s );
282
282
}
283
283
284
+ /*
285
+ * format_summary_value - format a line of summary value (min, max or avg)
286
+ * of hist data
287
+ */
288
+ static void format_summary_value (struct trace_seq * seq ,
289
+ int count ,
290
+ unsigned long long val ,
291
+ bool avg )
292
+ {
293
+ if (count )
294
+ trace_seq_printf (seq , "%9llu " , avg ? val / count : val );
295
+ else
296
+ trace_seq_printf (seq , "%9c " , '-' );
297
+ }
298
+
284
299
/*
285
300
* timerlat_print_summary - print the summary of the hist data to the output
286
301
*/
@@ -328,29 +343,23 @@ timerlat_print_summary(struct timerlat_hist_params *params,
328
343
if (!data -> hist [cpu ].irq_count && !data -> hist [cpu ].thread_count )
329
344
continue ;
330
345
331
- if (!params -> no_irq ) {
332
- if (data -> hist [cpu ].irq_count )
333
- trace_seq_printf (trace -> seq , "%9llu " ,
334
- data -> hist [cpu ].min_irq );
335
- else
336
- trace_seq_printf (trace -> seq , " - " );
337
- }
346
+ if (!params -> no_irq )
347
+ format_summary_value (trace -> seq ,
348
+ data -> hist [cpu ].irq_count ,
349
+ data -> hist [cpu ].min_irq ,
350
+ false);
338
351
339
- if (!params -> no_thread ) {
340
- if (data -> hist [cpu ].thread_count )
341
- trace_seq_printf (trace -> seq , "%9llu " ,
342
- data -> hist [cpu ].min_thread );
343
- else
344
- trace_seq_printf (trace -> seq , " - " );
345
- }
352
+ if (!params -> no_thread )
353
+ format_summary_value (trace -> seq ,
354
+ data -> hist [cpu ].thread_count ,
355
+ data -> hist [cpu ].min_thread ,
356
+ false);
346
357
347
- if (params -> user_hist ) {
348
- if (data -> hist [cpu ].user_count )
349
- trace_seq_printf (trace -> seq , "%9llu " ,
350
- data -> hist [cpu ].min_user );
351
- else
352
- trace_seq_printf (trace -> seq , " - " );
353
- }
358
+ if (params -> user_hist )
359
+ format_summary_value (trace -> seq ,
360
+ data -> hist [cpu ].user_count ,
361
+ data -> hist [cpu ].min_user ,
362
+ false);
354
363
}
355
364
trace_seq_printf (trace -> seq , "\n" );
356
365
@@ -364,29 +373,23 @@ timerlat_print_summary(struct timerlat_hist_params *params,
364
373
if (!data -> hist [cpu ].irq_count && !data -> hist [cpu ].thread_count )
365
374
continue ;
366
375
367
- if (!params -> no_irq ) {
368
- if (data -> hist [cpu ].irq_count )
369
- trace_seq_printf (trace -> seq , "%9llu " ,
370
- data -> hist [cpu ].sum_irq / data -> hist [cpu ].irq_count );
371
- else
372
- trace_seq_printf (trace -> seq , " - " );
373
- }
376
+ if (!params -> no_irq )
377
+ format_summary_value (trace -> seq ,
378
+ data -> hist [cpu ].irq_count ,
379
+ data -> hist [cpu ].sum_irq ,
380
+ true);
374
381
375
- if (!params -> no_thread ) {
376
- if (data -> hist [cpu ].thread_count )
377
- trace_seq_printf (trace -> seq , "%9llu " ,
378
- data -> hist [cpu ].sum_thread / data -> hist [cpu ].thread_count );
379
- else
380
- trace_seq_printf (trace -> seq , " - " );
381
- }
382
+ if (!params -> no_thread )
383
+ format_summary_value (trace -> seq ,
384
+ data -> hist [cpu ].thread_count ,
385
+ data -> hist [cpu ].sum_thread ,
386
+ true);
382
387
383
- if (params -> user_hist ) {
384
- if (data -> hist [cpu ].user_count )
385
- trace_seq_printf (trace -> seq , "%9llu " ,
386
- data -> hist [cpu ].sum_user / data -> hist [cpu ].user_count );
387
- else
388
- trace_seq_printf (trace -> seq , " - " );
389
- }
388
+ if (params -> user_hist )
389
+ format_summary_value (trace -> seq ,
390
+ data -> hist [cpu ].user_count ,
391
+ data -> hist [cpu ].sum_user ,
392
+ true);
390
393
}
391
394
trace_seq_printf (trace -> seq , "\n" );
392
395
@@ -400,29 +403,23 @@ timerlat_print_summary(struct timerlat_hist_params *params,
400
403
if (!data -> hist [cpu ].irq_count && !data -> hist [cpu ].thread_count )
401
404
continue ;
402
405
403
- if (!params -> no_irq ) {
404
- if (data -> hist [cpu ].irq_count )
405
- trace_seq_printf (trace -> seq , "%9llu " ,
406
- data -> hist [cpu ].max_irq );
407
- else
408
- trace_seq_printf (trace -> seq , " - " );
409
- }
406
+ if (!params -> no_irq )
407
+ format_summary_value (trace -> seq ,
408
+ data -> hist [cpu ].irq_count ,
409
+ data -> hist [cpu ].max_irq ,
410
+ false);
410
411
411
- if (!params -> no_thread ) {
412
- if (data -> hist [cpu ].thread_count )
413
- trace_seq_printf (trace -> seq , "%9llu " ,
414
- data -> hist [cpu ].max_thread );
415
- else
416
- trace_seq_printf (trace -> seq , " - " );
417
- }
412
+ if (!params -> no_thread )
413
+ format_summary_value (trace -> seq ,
414
+ data -> hist [cpu ].thread_count ,
415
+ data -> hist [cpu ].max_thread ,
416
+ false);
418
417
419
- if (params -> user_hist ) {
420
- if (data -> hist [cpu ].user_count )
421
- trace_seq_printf (trace -> seq , "%9llu " ,
422
- data -> hist [cpu ].max_user );
423
- else
424
- trace_seq_printf (trace -> seq , " - " );
425
- }
418
+ if (params -> user_hist )
419
+ format_summary_value (trace -> seq ,
420
+ data -> hist [cpu ].user_count ,
421
+ data -> hist [cpu ].max_user ,
422
+ false);
426
423
}
427
424
trace_seq_printf (trace -> seq , "\n" );
428
425
trace_seq_do_printf (trace -> seq );
@@ -506,50 +503,68 @@ timerlat_print_stats_all(struct timerlat_hist_params *params,
506
503
trace_seq_printf (trace -> seq , "min: " );
507
504
508
505
if (!params -> no_irq )
509
- trace_seq_printf (trace -> seq , "%9llu " ,
510
- sum .min_irq );
506
+ format_summary_value (trace -> seq ,
507
+ sum .irq_count ,
508
+ sum .min_irq ,
509
+ false);
511
510
512
511
if (!params -> no_thread )
513
- trace_seq_printf (trace -> seq , "%9llu " ,
514
- sum .min_thread );
512
+ format_summary_value (trace -> seq ,
513
+ sum .thread_count ,
514
+ sum .min_thread ,
515
+ false);
515
516
516
517
if (params -> user_hist )
517
- trace_seq_printf (trace -> seq , "%9llu " ,
518
- sum .min_user );
518
+ format_summary_value (trace -> seq ,
519
+ sum .user_count ,
520
+ sum .min_user ,
521
+ false);
519
522
520
523
trace_seq_printf (trace -> seq , "\n" );
521
524
522
525
if (!params -> no_index )
523
526
trace_seq_printf (trace -> seq , "avg: " );
524
527
525
528
if (!params -> no_irq )
526
- trace_seq_printf (trace -> seq , "%9llu " ,
527
- sum .sum_irq / sum .irq_count );
529
+ format_summary_value (trace -> seq ,
530
+ sum .irq_count ,
531
+ sum .sum_irq ,
532
+ true);
528
533
529
534
if (!params -> no_thread )
530
- trace_seq_printf (trace -> seq , "%9llu " ,
531
- sum .sum_thread / sum .thread_count );
535
+ format_summary_value (trace -> seq ,
536
+ sum .thread_count ,
537
+ sum .sum_thread ,
538
+ true);
532
539
533
540
if (params -> user_hist )
534
- trace_seq_printf (trace -> seq , "%9llu " ,
535
- sum .sum_user / sum .user_count );
541
+ format_summary_value (trace -> seq ,
542
+ sum .user_count ,
543
+ sum .sum_user ,
544
+ true);
536
545
537
546
trace_seq_printf (trace -> seq , "\n" );
538
547
539
548
if (!params -> no_index )
540
549
trace_seq_printf (trace -> seq , "max: " );
541
550
542
551
if (!params -> no_irq )
543
- trace_seq_printf (trace -> seq , "%9llu " ,
544
- sum .max_irq );
552
+ format_summary_value (trace -> seq ,
553
+ sum .irq_count ,
554
+ sum .max_irq ,
555
+ false);
545
556
546
557
if (!params -> no_thread )
547
- trace_seq_printf (trace -> seq , "%9llu " ,
548
- sum .max_thread );
558
+ format_summary_value (trace -> seq ,
559
+ sum .thread_count ,
560
+ sum .max_thread ,
561
+ false);
549
562
550
563
if (params -> user_hist )
551
- trace_seq_printf (trace -> seq , "%9llu " ,
552
- sum .max_user );
564
+ format_summary_value (trace -> seq ,
565
+ sum .user_count ,
566
+ sum .max_user ,
567
+ false);
553
568
554
569
trace_seq_printf (trace -> seq , "\n" );
555
570
trace_seq_do_printf (trace -> seq );
0 commit comments