• Mengting Zhang's avatar
    perf report: Fix debug messages with --call-graph option · 9789e7e9
    Mengting Zhang authored
    With --call-graph option, perf report can display call chains using
    type, min percent threshold, optional print limit and order. And the
    default call-graph parameter is 'graph,0.5,caller,function,percent'.
    
    Before this patch, 'perf report --call-graph' shows incorrect debug
    messages as below:
    
      # perf report --call-graph
      Invalid callchain mode: 0.5
      Invalid callchain order: 0.5
      Invalid callchain sort key: 0.5
      Invalid callchain config key: 0.5
      Invalid callchain mode: caller
      Invalid callchain mode: function
      Invalid callchain order: function
      Invalid callchain mode: percent
      Invalid callchain order: percent
      Invalid callchain sort key: percent
    
    That is because in function __parse_callchain_report_opt(),each field of
    the call-graph parameter is passed to parse_callchain_{mode,order,
    sort_key,value} in turn until it meets the matching value.
    
    For example, the order field "caller" is passed to
    parse_callchain_mode() firstly and obviously it doesn't match any mode
    field. Therefore parse_callchain_mode() will shows the debug message
    "Invalid callchain mode: caller", which could confuse users.
    
    The patch fixes this issue by moving the warning out of the function
    parse_callchain_{mode,order,sort_key,value}.
    Signed-off-by: default avatarMengting Zhang <zhangmengting@huawei.com>
    Acked-by: default avatarJiri Olsa <jolsa@kernel.org>
    Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Krister Johansen <kjlx@templeofstupid.com>
    Cc: Li Bin <huawei.libin@huawei.com>
    Cc: Milian Wolff <milian.wolff@kdab.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Cc: Yao Jin <yao.jin@linux.intel.com>
    Link: http://lkml.kernel.org/r/1506154694-39691-1-git-send-email-zhangmengting@huawei.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    9789e7e9
callchain.c 34.9 KB