LCOV - code coverage report
Current view: top level - vppinfra/perfmon - bundle_default.c (source / functions) Hit Total Coverage
Test: coverage-filtered.info Lines: 1 31 3.2 %
Date: 2023-07-05 22:20:52 Functions: 1 2 50.0 %

          Line data    Source code
       1             : /* SPDX-License-Identifier: Apache-2.0
       2             :  * Copyright(c) 2022 Cisco Systems, Inc.
       3             :  */
       4             : 
       5             : #include <vppinfra/format.h>
       6             : #include <vppinfra/error.h>
       7             : #include <vppinfra/perfmon/perfmon.h>
       8             : 
       9             : static u8 *
      10           0 : format_perfmon_bundle_default (u8 *s, va_list *args)
      11             : {
      12           0 :   clib_perfmon_ctx_t *ctx = va_arg (*args, clib_perfmon_ctx_t *);
      13           0 :   clib_perfmon_capture_t *c = va_arg (*args, clib_perfmon_capture_t *);
      14           0 :   u32 col = va_arg (*args, int);
      15           0 :   u64 *d = c->data;
      16             : 
      17           0 :   switch (col)
      18             :     {
      19           0 :     case 0:
      20           0 :       if (ctx->ref_clock > 0)
      21           0 :         return format (s, "%8.1f", (f64) d[0] / d[1] * (ctx->ref_clock / 1e9));
      22             :       else
      23           0 :         return s;
      24           0 :     case 1:
      25           0 :       return format (s, "%5.2f", (f64) d[2] / d[0]);
      26           0 :     case 2:
      27           0 :       return format (s, "%8u", d[0]);
      28           0 :     case 3:
      29           0 :       return format (s, "%8.2f", (f64) d[0] / c->n_ops);
      30           0 :     case 4:
      31           0 :       return format (s, "%8u", d[2]);
      32           0 :     case 5:
      33           0 :       return format (s, "%8.2f", (f64) d[2] / c->n_ops);
      34           0 :     case 6:
      35           0 :       return format (s, "%9u", d[3]);
      36           0 :     case 7:
      37           0 :       return format (s, "%9.2f", (f64) d[3] / c->n_ops);
      38           0 :     case 8:
      39           0 :       return format (s, "%10u", d[4]);
      40           0 :     case 9:
      41           0 :       return format (s, "%10.2f", (f64) d[4] / c->n_ops);
      42           0 :     default:
      43           0 :       return s;
      44             :     }
      45             : }
      46             : 
      47         626 : CLIB_PERFMON_BUNDLE (default) = {
      48             :   .name = "default",
      49             :   .desc = "IPC, Clocks/Operatiom, Instr/Operation, Branch Total & Miss",
      50             :   .type = PERF_TYPE_HARDWARE,
      51             :   .config[0] = PERF_COUNT_HW_CPU_CYCLES,
      52             :   .config[1] = PERF_COUNT_HW_REF_CPU_CYCLES,
      53             :   .config[2] = PERF_COUNT_HW_INSTRUCTIONS,
      54             :   .config[3] = PERF_COUNT_HW_BRANCH_INSTRUCTIONS,
      55             :   .config[4] = PERF_COUNT_HW_BRANCH_MISSES,
      56             :   .n_events = 5,
      57             :   .format_fn = format_perfmon_bundle_default,
      58             :   .column_headers = CLIB_STRING_ARRAY ("Freq", "IPC", "Clks", "Clks/Op",
      59             :                                        "Inst", "Inst/Op", "Brnch", "Brnch/Op",
      60             :                                        "BrMiss", "BrMiss/Op"),
      61             : };

Generated by: LCOV version 1.14