diff options
author | 2021-11-10 16:21:06 -0800 | |
---|---|---|
committer | 2021-11-13 18:11:50 -0300 | |
commit | 3613f6c1180b4af432ee607f8b43da381cd03fae (patch) | |
tree | 6d93b1be6d7686ead8a7158e7965131557388220 /tools/perf/util/expr.c | |
parent | perf cputopo: Match thread_siblings to topology ABI name (diff) | |
download | wireguard-linux-3613f6c1180b4af432ee607f8b43da381cd03fae.tar.xz wireguard-linux-3613f6c1180b4af432ee607f8b43da381cd03fae.zip |
perf expr: Add literal values starting with #
It is useful to have literal values for constants relating to
topologies, SMT, etc. Make the parsing of literals shared code and add a
lookup function. Move #smt_on to this function.
Signed-off-by: Ian Rogers <irogers@google.com>
Acked-by: Jiri Olsa <jolsa@redhat.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: John Garry <john.garry@huawei.com>
Cc: Kajol Jain <kjain@linux.ibm.com>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul A . Clarke <pc@us.ibm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Riccardo Mancini <rickyman7@gmail.com>
Cc: Song Liu <song@kernel.org>
Cc: Wan Jiabing <wanjiabing@vivo.com>
Cc: Yury Norov <yury.norov@gmail.com>
Link: https://lore.kernel.org/r/20211111002109.194172-6-irogers@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/expr.c')
-rw-r--r-- | tools/perf/util/expr.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/tools/perf/util/expr.c b/tools/perf/util/expr.c index 77c6ad81a923..7464739c2890 100644 --- a/tools/perf/util/expr.c +++ b/tools/perf/util/expr.c @@ -9,9 +9,11 @@ #include "expr.h" #include "expr-bison.h" #include "expr-flex.h" +#include "smt.h" #include <linux/kernel.h> #include <linux/zalloc.h> #include <ctype.h> +#include <math.h> #ifdef PARSER_DEBUG extern int expr_debug; @@ -370,3 +372,12 @@ double expr_id_data__value(const struct expr_id_data *data) assert(data->kind == EXPR_ID_DATA__REF_VALUE); return data->ref.val; } + +double expr__get_literal(const char *literal) +{ + if (!strcmp("#smt_on", literal)) + return smt_on() > 0 ? 1.0 : 0.0; + + pr_err("Unrecognized literal '%s'", literal); + return NAN; +} |