linux/tools/perf/tests
Ian Rogers 6f765bbbfb perf expr: Make the evaluation of & and | logical and lazy
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>
2023-06-05 15:56:14 -03:00
..
attr perf test attr: Update no event/metric expectations 2023-05-19 10:36:25 -03:00
shell perf test: Fix perf stat JSON output test 2023-05-26 22:47:51 -03:00
workloads perf test workload thloop: Make count increments atomic 2023-01-19 13:42:06 -03:00
.gitignore
api-io.c perf tests api-io: Use zfree() to reduce chances of use after free 2023-04-12 10:14:58 -03:00
attr.c perf pmus: Remove perf_pmus__has_hybrid 2023-05-27 09:42:38 -03:00
attr.py perf test attr: Fix python SafeConfigParser() deprecation warning 2023-05-19 10:36:35 -03:00
backward-ring-buffer.c
bitmap.c
bp_account.c
bp_signal_overflow.c
bp_signal.c
bpf-script-example.c perf test: Switch basic bpf filtering test to use syscall tracepoint 2023-01-23 09:58:01 -03:00
bpf-script-test-kbuild.c
bpf-script-test-prologue.c perf tests bpf prologue: Fix bpf-script-test-prologue test compile issue with clang 2023-01-09 11:57:47 -03:00
bpf-script-test-relocation.c
bpf.c perf evlist: Remove nr_groups 2023-03-13 17:42:27 -03:00
Build perf test: Add Symbols test 2023-01-22 18:09:56 -03:00
builtin-test-list.c
builtin-test-list.h
builtin-test.c perf tests: Organize cpu_map tests into a single suite 2023-05-26 22:47:22 -03:00
clang.c
code-reading.c perf map: Changes to reference counting 2023-04-06 22:13:43 -03:00
cpumap.c perf cpumap: Add equal function 2023-05-27 09:36:44 -03:00
demangle-java-test.c
demangle-ocaml-test.c
dlfilter-test.c perf tools: Fix usage of the verbose variable 2022-12-20 15:16:33 -03:00
dso-data.c
dwarf-unwind.c perf test: Fix DWARF unwind test by adding non-inline to expected function in a backtrace 2023-01-30 14:54:13 -03:00
event_groups.c perf pmu: Separate pmu and pmus 2023-05-27 09:41:39 -03:00
event_update.c
event-times.c
evsel-roundtrip-name.c perf test: Roundtrip name, don't assume 1 event per name 2023-05-15 09:12:13 -03:00
evsel-tp-sched.c
expand-cgroup.c perf evsel: Introduce evsel__name_is() method to check if the evsel name is equal to a given string 2023-04-24 14:28:11 -03:00
expr.c perf expr: Make the evaluation of & and | logical and lazy 2023-06-05 15:56:14 -03:00
fdarray.c
genelf.c
hists_common.c perf map: Add accessor for dso 2023-04-04 16:41:57 -03:00
hists_common.h
hists_cumulate.c perf map: Changes to reference counting 2023-04-06 22:13:43 -03:00
hists_filter.c perf map: Changes to reference counting 2023-04-06 22:13:43 -03:00
hists_link.c perf map: Add reference count checking 2023-04-19 12:57:53 -03:00
hists_output.c perf map: Changes to reference counting 2023-04-06 22:13:43 -03:00
is_printable_array.c
keep-tracking.c
kmod-path.c
llvm.c
llvm.h
make perf build: Fix unescaped # in perf build-test 2023-05-02 08:36:14 -03:00
maps.c perf map: Add set_ methods for map->{start,end,pgoff,pgoff,reloc,erange_warned,dso,map_ip,unmap_ip,priv} 2023-04-19 12:54:41 -03:00
mem2node.c
mem.c
mmap-basic.c
mmap-thread-lookup.c perf map: Changes to reference counting 2023-04-06 22:13:43 -03:00
openat-syscall-all-cpus.c
openat-syscall-tp-fields.c
openat-syscall.c
parse-events.c perf test: Update parse-events expectations to test for multiple events 2023-06-01 14:29:41 -03:00
parse-metric.c perf pmus: Remove perf_pmus__has_hybrid 2023-05-27 09:42:38 -03:00
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 perf evlist: Remove nr_groups 2023-03-13 17:42:27 -03:00
pmu-events.c perf pmus: Allow just core PMU scanning 2023-05-27 09:42:00 -03:00
pmu.c perf test pmu: Avoid 2 static path arrays 2023-05-28 10:25:45 -03:00
python-use.c perf test python: Put perf python at start of sys.path 2023-05-27 09:35:14 -03:00
sample-parsing.c perf script: Show branch speculation info 2023-02-02 17:18:31 -03:00
sdt.c
sigtrap.c
stat.c
sw-clock.c
switch-tracking.c perf pmus: Remove perf_pmus__has_hybrid 2023-05-27 09:42:38 -03:00
symbols.c perf map: Add accessor for dso 2023-04-04 16:41:57 -03:00
task-exit.c
tests.h perf tests: Organize cpu_map tests into a single suite 2023-05-26 22:47:22 -03:00
thread-map.c
thread-maps-share.c perf test: Fix maps use after put 2023-04-20 08:23:52 -03:00
time-utils-test.c
topology.c perf pmus: Remove perf_pmus__has_hybrid 2023-05-27 09:42:38 -03:00
unit_number__scnprintf.c
vmlinux-kallsyms.c perf map: Add set_ methods for map->{start,end,pgoff,pgoff,reloc,erange_warned,dso,map_ip,unmap_ip,priv} 2023-04-19 12:54:41 -03:00
wp.c