• Ian Rogers's avatar
    perf expr: Make the evaluation of & and | logical and lazy · 6f765bbb
    Ian Rogers authored
    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: default avatarKan Liang <kan.liang@linux.intel.com>
    Signed-off-by: default avatarIan Rogers <irogers@google.com>
    Tested-by: default avatarKan Liang <kan.liang@linux.intel.com>
    Acked-by: default avatarJiri 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.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    6f765bbb
expr.c 8.86 KB