• Wei Li's avatar
    perf intel-pt: Fix endless record after being terminated · 2da4dd3d
    Wei Li authored
    In __cmd_record(), when receiving SIGINT(ctrl + c), a 'done' flag will
    be set and the event list will be disabled by evlist__disable() once.
    
    While in auxtrace_record.read_finish(), the related events will be
    enabled again, if they are continuous, the recording seems to be endless.
    
    If the intel_pt event is disabled, we don't enable it again here.
    
    Before the patch:
    
      huawei@huawei-2288H-V5:~/linux-5.5-rc4/tools/perf$ ./perf record -e \
      intel_pt//u -p 46803
      ^C^C^C^C^C^C
    
    After the patch:
    
      huawei@huawei-2288H-V5:~/linux-5.5-rc4/tools/perf$ ./perf record -e \
      intel_pt//u -p 48591
      ^C[ perf record: Woken up 0 times to write data ]
      Warning:
      AUX data lost 504 times out of 4816!
    
      [ perf record: Captured and wrote 2024.405 MB perf.data ]
    Signed-off-by: default avatarWei Li <liwei391@huawei.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Tan Xiaojun <tanxiaojun@huawei.com>
    Cc: stable@vger.kernel.org # 5.4+
    Link: http://lore.kernel.org/lkml/20200214132654.20395-2-adrian.hunter@intel.com
    [ ahunter: removed redundant 'else' after 'return' ]
    Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    2da4dd3d
intel-pt.c 30.7 KB