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 <[email protected]>
> 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

Reply via email to