perf expr: Add debug logging for literals
Useful for diagnosing problems with metrics. Signed-off-by: Ian Rogers <irogers@google.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Jiri Olsa <jolsa@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: Konstantin Khlebnikov <koct9i@gmail.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Paul Clarke <pc@us.ibm.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Link: http://lore.kernel.org/lkml/20211124001231.3277836-1-irogers@google.com [ Fixed up perf_cpu conflict, i.e. we need to append ".cpu" to cpu__max_present_cpu() result ] Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
6dd8646939
commit
f56ef30a31
@ -405,12 +405,17 @@ double expr_id_data__source_count(const struct expr_id_data *data)
|
||||
double expr__get_literal(const char *literal)
|
||||
{
|
||||
static struct cpu_topology *topology;
|
||||
double result = NAN;
|
||||
|
||||
if (!strcmp("#smt_on", literal))
|
||||
return smt_on() > 0 ? 1.0 : 0.0;
|
||||
if (!strcmp("#smt_on", literal)) {
|
||||
result = smt_on() > 0 ? 1.0 : 0.0;
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (!strcmp("#num_cpus", literal))
|
||||
return cpu__max_present_cpu().cpu;
|
||||
if (!strcmp("#num_cpus", literal)) {
|
||||
result = cpu__max_present_cpu().cpu;
|
||||
goto out;
|
||||
}
|
||||
|
||||
/*
|
||||
* Assume that topology strings are consistent, such as CPUs "0-1"
|
||||
@ -422,16 +427,24 @@ double expr__get_literal(const char *literal)
|
||||
topology = cpu_topology__new();
|
||||
if (!topology) {
|
||||
pr_err("Error creating CPU topology");
|
||||
return NAN;
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
if (!strcmp("#num_packages", literal))
|
||||
return topology->package_cpus_lists;
|
||||
if (!strcmp("#num_dies", literal))
|
||||
return topology->die_cpus_lists;
|
||||
if (!strcmp("#num_cores", literal))
|
||||
return topology->core_cpus_lists;
|
||||
if (!strcmp("#num_packages", literal)) {
|
||||
result = topology->package_cpus_lists;
|
||||
goto out;
|
||||
}
|
||||
if (!strcmp("#num_dies", literal)) {
|
||||
result = topology->die_cpus_lists;
|
||||
goto out;
|
||||
}
|
||||
if (!strcmp("#num_cores", literal)) {
|
||||
result = topology->core_cpus_lists;
|
||||
goto out;
|
||||
}
|
||||
|
||||
pr_err("Unrecognized literal '%s'", literal);
|
||||
return NAN;
|
||||
out:
|
||||
pr_debug2("literal: %s = %f\n", literal, result);
|
||||
return result;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user