Re: [PATCH v2 1/3] perf tool: fix reading new topology attribute "core_cpus"

From: Arnaldo Carvalho de Melo
Date: Wed Apr 29 2020 - 14:11:08 EST


Em Wed, Apr 29, 2020 at 07:19:47PM +0300, Konstantin Khlebnikov escreveu:
> Check access("devices/system/cpu/cpu%d/topology/core_cpus", F_OK) fails,
> unless current directory is "/sys". Simply try read this file first.
>
> Signed-off-by: Konstantin Khlebnikov <khlebnikov@xxxxxxxxxxxxxx>
> Fixes: 0ccdb8407a46 ("perf tools: Apply new CPU topology sysfs attributes")
> ---
> tools/perf/util/smt.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)

Thanks, applied,

- Arnaldo

> diff --git a/tools/perf/util/smt.c b/tools/perf/util/smt.c
> index 3b791ef2cd50..8481842e9edb 100644
> --- a/tools/perf/util/smt.c
> +++ b/tools/perf/util/smt.c
> @@ -24,13 +24,13 @@ int smt_on(void)
>
> snprintf(fn, sizeof fn,
> "devices/system/cpu/cpu%d/topology/core_cpus", cpu);
> - if (access(fn, F_OK) == -1) {
> + if (sysfs__read_str(fn, &str, &strlen) < 0) {
> snprintf(fn, sizeof fn,
> "devices/system/cpu/cpu%d/topology/thread_siblings",
> cpu);
> + if (sysfs__read_str(fn, &str, &strlen) < 0)
> + continue;
> }
> - if (sysfs__read_str(fn, &str, &strlen) < 0)
> - continue;
> /* Entry is hex, but does not have 0x, so need custom parser */
> siblings = strtoull(str, NULL, 16);
> free(str);
>

--

- Arnaldo