Re: [PATCH v3 3/3] perf tools: Add 'cgroup-switches' software event

From: Namhyung Kim
Date: Thu May 06 2021 - 01:53:37 EST


On Mon, Apr 19, 2021 at 11:02 AM Namhyung Kim <namhyung@xxxxxxxxxx> wrote:
>
> Hi Arnaldo,
>
> Could you please pick this up? The kernel part is landed in the
> tip.git already.

Ping!

Thanks,
Namhyung


> On Wed, Feb 10, 2021 at 5:33 PM Namhyung Kim <namhyung@xxxxxxxxxx> 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 <namhyung@xxxxxxxxxx>
> > ---
> > 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
> >