6f765bbbfb
Currently the & and | operators are only used in metric thresholds like (from the tma_retiring metric): tma_retiring > 0.7 | tma_heavy_operations > 0.1 Thresholds are always computed when present, but a lack of events may mean the threshold can't be computed. This happens with the option --metric-no-threshold for say the metric tma_retiring on Tigerlake model CPUs. To fully compute the threshold tma_heavy_operations is needed and it needs the extra events of IDQ.MS_UOPS, UOPS_DECODED.DEC0, cpu/UOPS_DECODED.DEC0,cmask=1/ and IDQ.MITE_UOPS. So --metric-no-threshold is a useful option to reduce the number of events needed and potentially multiplexing of events. Rather than just fail threshold computations like this, we may know a result from just the left or right-hand side. So, for tma_retiring if its value is "> 0.7" we know it is over the threshold. This allows the metric to have the threshold coloring, when possible, without all the counters being programmed. Reviewed-by: Kan Liang <kan.liang@linux.intel.com> Signed-off-by: Ian Rogers <irogers@google.com> Tested-by: Kan Liang <kan.liang@linux.intel.com> Acked-by: Jiri Olsa <jolsa@kernel.org> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Ahmad Yasin <ahmad.yasin@intel.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Andrii Nakryiko <andrii@kernel.org> Cc: Caleb Biggers <caleb.biggers@intel.com> Cc: Eduard Zingerman <eddyz87@gmail.com> Cc: Edward Baker <edward.baker@intel.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: James Clark <james.clark@arm.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Perry Taylor <perry.taylor@intel.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Samantha Alt <samantha.alt@intel.com> Cc: Stephane Eranian <eranian@google.com> Cc: Weilin Wang <weilin.wang@intel.com> Link: https://lore.kernel.org/r/20230519063719.1029596-1-irogers@google.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> |
||
---|---|---|
.. | ||
attr | ||
shell | ||
workloads | ||
.gitignore | ||
api-io.c | ||
attr.c | ||
attr.py | ||
backward-ring-buffer.c | ||
bitmap.c | ||
bp_account.c | ||
bp_signal_overflow.c | ||
bp_signal.c | ||
bpf-script-example.c | ||
bpf-script-test-kbuild.c | ||
bpf-script-test-prologue.c | ||
bpf-script-test-relocation.c | ||
bpf.c | ||
Build | ||
builtin-test-list.c | ||
builtin-test-list.h | ||
builtin-test.c | ||
clang.c | ||
code-reading.c | ||
cpumap.c | ||
demangle-java-test.c | ||
demangle-ocaml-test.c | ||
dlfilter-test.c | ||
dso-data.c | ||
dwarf-unwind.c | ||
event_groups.c | ||
event_update.c | ||
event-times.c | ||
evsel-roundtrip-name.c | ||
evsel-tp-sched.c | ||
expand-cgroup.c | ||
expr.c | ||
fdarray.c | ||
genelf.c | ||
hists_common.c | ||
hists_common.h | ||
hists_cumulate.c | ||
hists_filter.c | ||
hists_link.c | ||
hists_output.c | ||
is_printable_array.c | ||
keep-tracking.c | ||
kmod-path.c | ||
llvm.c | ||
llvm.h | ||
make | ||
maps.c | ||
mem2node.c | ||
mem.c | ||
mmap-basic.c | ||
mmap-thread-lookup.c | ||
openat-syscall-all-cpus.c | ||
openat-syscall-tp-fields.c | ||
openat-syscall.c | ||
parse-events.c | ||
parse-metric.c | ||
parse-no-sample-id-all.c | ||
pe-file-parsing.c | ||
pe-file.c | ||
pe-file.exe | ||
pe-file.exe.debug | ||
perf-hooks.c | ||
perf-record.c | ||
perf-targz-src-pkg | ||
perf-time-to-tsc.c | ||
pfm.c | ||
pmu-events.c | ||
pmu.c | ||
python-use.c | ||
sample-parsing.c | ||
sdt.c | ||
sigtrap.c | ||
stat.c | ||
sw-clock.c | ||
switch-tracking.c | ||
symbols.c | ||
task-exit.c | ||
tests.h | ||
thread-map.c | ||
thread-maps-share.c | ||
time-utils-test.c | ||
topology.c | ||
unit_number__scnprintf.c | ||
vmlinux-kallsyms.c | ||
wp.c |