• Arnaldo Carvalho de Melo's avatar
    perf evsel: Handle ENOMEM for perf_event_max_stack + PERF_SAMPLE_CALLCHAIN · de46d526
    Arnaldo Carvalho de Melo authored
    When the kernel allows tweaking perf_event_max_stack and the event being
    setup has PERF_SAMPLE_CALLCHAIN in its perf_event_attr.sample_type, tell
    the user that tweaking /proc/sys/kernel/perf_event_max_stack may solve
    the problem.
    
    Before:
    
      # echo 32000 > /proc/sys/kernel/perf_event_max_stack
      # perf record -g usleep 1
      Error:
      The sys_perf_event_open() syscall returned with 12 (Cannot allocate memory) for event (cycles:ppp).
      /bin/dmesg may provide additional information.
      No CONFIG_PERF_EVENTS=y kernel support configured?
    
      #
    
    After:
    
      # echo 64000 > /proc/sys/kernel/perf_event_max_stack
      # perf record -g usleep 1
      Error:
      Not enough memory to setup event with callchain.
      Hint: Try tweaking /proc/sys/kernel/perf_event_max_stack
      Hint: Current value: 64000
      #
    Suggested-by: default avatarDavid Ahern <dsahern@gmail.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Brendan Gregg <brendan.d.gregg@gmail.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Milian Wolff <milian.wolff@kdab.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/n/tip-ebv0orelj1s1ye857vhb82ov@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    de46d526
evsel.c 57.9 KB