Hi Arnaldo,

Could you please pick this up?  The kernel part is landed in the
tip.git already.

Thanks,
Namhyung

On Wed, Feb 10, 2021 at 5:33 PM Namhyung Kim <namhy...@kernel.org> wrote:
>
> It counts how often cgroups are changed actually during the context
> switches.
>
>   # perf stat -a -e context-switches,cgroup-switches -a sleep 1
>
>    Performance counter stats for 'system wide':
>
>               11,267      context-switches
>               10,950      cgroup-switches
>
>          1.015634369 seconds time elapsed
>
> Signed-off-by: Namhyung Kim <namhy...@kernel.org>
> ---
>  tools/include/uapi/linux/perf_event.h | 1 +
>  tools/perf/util/parse-events.c        | 4 ++++
>  tools/perf/util/parse-events.l        | 1 +
>  3 files changed, 6 insertions(+)
>
> diff --git a/tools/include/uapi/linux/perf_event.h 
> b/tools/include/uapi/linux/perf_event.h
> index b15e3447cd9f..16b9538ad89b 100644
> --- a/tools/include/uapi/linux/perf_event.h
> +++ b/tools/include/uapi/linux/perf_event.h
> @@ -112,6 +112,7 @@ enum perf_sw_ids {
>         PERF_COUNT_SW_EMULATION_FAULTS          = 8,
>         PERF_COUNT_SW_DUMMY                     = 9,
>         PERF_COUNT_SW_BPF_OUTPUT                = 10,
> +       PERF_COUNT_SW_CGROUP_SWITCHES           = 11,
>
>         PERF_COUNT_SW_MAX,                      /* non-ABI */
>  };
> diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
> index 42c84adeb2fb..09ff678519f3 100644
> --- a/tools/perf/util/parse-events.c
> +++ b/tools/perf/util/parse-events.c
> @@ -145,6 +145,10 @@ struct event_symbol event_symbols_sw[PERF_COUNT_SW_MAX] 
> = {
>                 .symbol = "bpf-output",
>                 .alias  = "",
>         },
> +       [PERF_COUNT_SW_CGROUP_SWITCHES] = {
> +               .symbol = "cgroup-switches",
> +               .alias  = "",
> +       },
>  };
>
>  #define __PERF_EVENT_FIELD(config, name) \
> diff --git a/tools/perf/util/parse-events.l b/tools/perf/util/parse-events.l
> index 9db5097317f4..88f203bb6fab 100644
> --- a/tools/perf/util/parse-events.l
> +++ b/tools/perf/util/parse-events.l
> @@ -347,6 +347,7 @@ emulation-faults                            { return 
> sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_EM
>  dummy                                          { return sym(yyscanner, 
> PERF_TYPE_SOFTWARE, PERF_COUNT_SW_DUMMY); }
>  duration_time                                  { return tool(yyscanner, 
> PERF_TOOL_DURATION_TIME); }
>  bpf-output                                     { return sym(yyscanner, 
> PERF_TYPE_SOFTWARE, PERF_COUNT_SW_BPF_OUTPUT); }
> +cgroup-switches                                        { return 
> sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_CGROUP_SWITCHES); }
>
>         /*
>          * We have to handle the kernel PMU event 
> cycles-ct/cycles-t/mem-loads/mem-stores separately.
> --
> 2.30.0.478.g8a0d178c01-goog
>

Reply via email to