mirror of
https://github.com/torvalds/linux.git
synced 2026-09-24 06:24:02 +02:00
perf jevents: Add context switch metrics for AMD
Metrics break down context switches for different kinds of instruction. Reviewed-by: Sandipan Das <sandipan.das@amd.com> Signed-off-by: Ian Rogers <irogers@google.com> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Benjamin Gray <bgray@linux.ibm.com> Cc: Caleb Biggers <caleb.biggers@intel.com> Cc: Edward Baker <edward.baker@intel.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: James Clark <james.clark@linaro.org> Cc: Jing Zhang <renyu.zj@linux.alibaba.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: John Garry <john.g.garry@oracle.com> Cc: Leo Yan <leo.yan@arm.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Perry Taylor <perry.taylor@intel.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Falcon <thomas.falcon@intel.com> Cc: Weilin Wang <weilin.wang@intel.com> Cc: Xu Yang <xu.yang_2@nxp.com> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
fb4c058174
commit
3563030d4f
|
|
@ -122,6 +122,38 @@ def AmdBr():
|
|||
description="breakdown of retired branch instructions")
|
||||
|
||||
|
||||
def AmdCtxSw() -> MetricGroup:
|
||||
cs = Event("context\\-switches")
|
||||
metrics = [
|
||||
Metric("lpm_cs_rate", "Context switches per second",
|
||||
d_ratio(cs, interval_sec), "ctxsw/s")
|
||||
]
|
||||
|
||||
ev = Event("instructions")
|
||||
metrics.append(Metric("lpm_cs_instr", "Instructions per context switch",
|
||||
d_ratio(ev, cs), "instr/cs"))
|
||||
|
||||
ev = Event("cycles")
|
||||
metrics.append(Metric("lpm_cs_cycles", "Cycles per context switch",
|
||||
d_ratio(ev, cs), "cycles/cs"))
|
||||
|
||||
ev = Event("ls_dispatch.pure_ld", "ls_dispatch.ld_dispatch")
|
||||
metrics.append(Metric("lpm_cs_loads", "Loads per context switch",
|
||||
d_ratio(ev, cs), "loads/cs"))
|
||||
|
||||
ev = Event("ls_dispatch.pure_st", "ls_dispatch.store_dispatch")
|
||||
metrics.append(Metric("lpm_cs_stores", "Stores per context switch",
|
||||
d_ratio(ev, cs), "stores/cs"))
|
||||
|
||||
ev = Event("ex_ret_brn_tkn")
|
||||
metrics.append(Metric("lpm_cs_br_taken", "Branches taken per context switch",
|
||||
d_ratio(ev, cs), "br_taken/cs"))
|
||||
|
||||
return MetricGroup("lpm_cs", metrics,
|
||||
description=("Number of context switches per second, instructions "
|
||||
"retired & core cycles between context switches"))
|
||||
|
||||
|
||||
def AmdDtlb() -> Optional[MetricGroup]:
|
||||
global _zen_model
|
||||
if _zen_model >= 4:
|
||||
|
|
@ -438,6 +470,7 @@ def main() -> None:
|
|||
|
||||
all_metrics = MetricGroup("", [
|
||||
AmdBr(),
|
||||
AmdCtxSw(),
|
||||
AmdDtlb(),
|
||||
AmdItlb(),
|
||||
AmdLdSt(),
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user