• Jiri Olsa's avatar
    perf evsel: Store ids for events with their own cpus perf_event__synthesize_event_update_cpus · 4ab8455f
    Jiri Olsa authored
    John reported crash when recording on an event under PMU with cpumask defined:
    
      root@localhost:~# ./perf_debug_ record -e armv8_pmuv3_0/br_mis_pred/ sleep 1
      perf: Segmentation fault
      Obtained 9 stack frames.
      ./perf_debug_() [0x4c5ef8]
      [0xffff82ba267c]
      ./perf_debug_() [0x4bc5a8]
      ./perf_debug_() [0x419550]
      ./perf_debug_() [0x41a928]
      ./perf_debug_() [0x472f58]
      ./perf_debug_() [0x473210]
      ./perf_debug_() [0x4070f4]
      /lib/aarch64-linux-gnu/libc.so.6(__libc_start_main+0xe0) [0xffff8294c8a0]
      Segmentation fault (core dumped)
    
    We synthesize an update event that needs to touch the evsel id array, which is
    not defined at that time. Fixing this by forcing the id allocation for events
    with their own cpus.
    Reported-by: default avatarJohn Garry <john.garry@huawei.com>
    Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
    Tested-by: default avatarJohn Garry <john.garry@huawei.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Will Deacon <will.deacon@arm.com>
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linuxarm@huawei.com
    Fixes: bfd8f72c ("perf record: Synthesize unit/scale/... in event update")
    Link: http://lkml.kernel.org/r/20181003212052.GA32371@kravaSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    4ab8455f
evsel.c 71.9 KB