]> git.baikalelectronics.ru Git - kernel.git/commit
perf intel-pt: Fix 'CPU too large' error
authorAdrian Hunter <adrian.hunter@intel.com>
Thu, 7 Jan 2021 17:41:59 +0000 (19:41 +0200)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 15 Jan 2021 20:28:27 +0000 (17:28 -0300)
commitdf09422ab0a54f871b4c9b9bdccac886f5388dc6
tree99e210837098c3421069de4eddec5e827738f0c4
parent6f6ac4e3c4465a4651864c748d2e97141fd1651b
perf intel-pt: Fix 'CPU too large' error

In some cases, the number of cpus (nr_cpus_online) is confused with the
maximum cpu number (nr_cpus_avail), which results in the error in the
example below:

Example on system with 8 cpus:

 Before:
   # echo 0 > /sys/devices/system/cpu/cpu2/online
   # ./perf record --kcore -e intel_pt// taskset --cpu-list 7 uname
   Linux
   [ perf record: Woken up 1 times to write data ]
   [ perf record: Captured and wrote 0.147 MB perf.data ]
   # ./perf script --itrace=e
   Requested CPU 7 too large. Consider raising MAX_NR_CPUS
   0x25908 [0x8]: failed to process type: 68 [Invalid argument]

 After:
   # ./perf script --itrace=e
   #

Fixes: 2d2e6b4d7d7e ("perf machine: Replace MAX_NR_CPUS with perf_env::nr_cpus_online")
Fixes: dade8a6a0756 ("perf session: Replace MAX_NR_CPUS with perf_env::nr_cpus_online")
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Tested-by: Kan Liang <kan.liang@linux.intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: stable@vger.kernel.org
Link: http://lore.kernel.org/lkml/20210107174159.24897-1-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/machine.c
tools/perf/util/session.c