lkml.org 
[lkml]   [2021]   [Feb]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v3 3/3] perf tools: Add 'cgroup-switches' software event
    Date
    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@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
    \
     
     \ /
      Last update: 2021-02-10 09:41    [W:4.625 / U:0.064 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site