linux-uconsole/tools
Namhyung Kim 4fd113b5ce perf report: Fix some option handling on --stdio
There's a bug that perf report sometimes ignore some options on --stdio
output.  This bug is triggered only if a related config variable is set.
For example, let's assume we have a following config file.

  $ cat ~/.perfconfig
  [call-graph]
    print-type = graph
  [hist]
    percentage = absolute

Then, following perf config will not honor some options.

  $ perf record -ag sleep 1
  [ perf record: Woken up 1 times to write data ]
  [ perf record: Captured and wrote 0.199 MB perf.data (77 samples) ]

  $ perf report -g none --stdio
  # To display the perf.data header info, please use --header/--header-only options.
  #
  # Samples: 77  of event 'cycles'
  # Event count (approx.): 25425383
  #
  # Overhead  Command          Shared Object            Symbol
  # ........  ...............  .......................  ..............
  #
      16.34%  swapper          [kernel.vmlinux]         [k] intel_idle
                      |
                      ---intel_idle
                         cpuidle_enter_state
                         cpuidle_enter
                         cpu_startup_entry
   ...

With '-g none' option, it should not show callchains, but it still shows
callchains.  However it works as expected on --tui output.

Similarly, '--percentage relative' option is not work and still shows a
absolute percentage values.

Looking at the source, I found that those setting were overwritten by
config variables when setup_pager() called.  The setup_pager() is to
start a pager process so that it can manage long lines of output on the
stdio mode.  But as it calls the perf_config() after parsing arguments,
the settings were overwritten regardless of command line options.

The reason it calls perf_config() is to find the 'pager_program' which
might be set by a config variable, I guess.  However current perf code
does not provide the config variable for it, so it's just meaningless
IMHO.  Eliminating the call makes the option working as expected.

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Taeung Song <treeze.taeung@gmail.com>
Link: http://lkml.kernel.org/r/1431529406-6762-1-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2015-05-14 10:05:22 -03:00
..
arch tools include: Add basic atomic.h implementation from the kernel sources 2015-05-08 16:11:05 -03:00
build tools build: Add feature check for lzma library 2015-03-21 14:53:39 -03:00
cgroup
firewire
hv hv: hypervvssd: call endmntent before call setmntent again 2015-03-25 11:53:54 +01:00
iio tools: iio: generic_buffer: Fix generic scale extraction 2015-03-28 11:01:49 +00:00
include tools include: Add basic atomic.h implementation from the kernel sources 2015-05-08 16:11:05 -03:00
lguest tools/lguest: don't use legacy definitions for net device in example launcher. 2015-02-13 17:15:55 +10:30
lib Merge branch 'perf/urgent' into perf/core, to resolve conflicts 2015-05-11 11:56:27 +02:00
net tools: bpf_asm: cleanup vlan extension related token 2015-03-24 21:21:41 -04:00
nfsd
perf perf report: Fix some option handling on --stdio 2015-05-14 10:05:22 -03:00
power More power management and ACPI updates for v4.1-rc1 2015-04-26 13:56:35 -07:00
scripts
testing selftests/powerpc: Fix the pmu install rule 2015-05-01 13:00:26 +10:00
thermal/tmon tools/thermal: tmon: silence 'set but not used' warnings 2015-02-28 13:52:48 +08:00
time tools: add script to test udelay 2014-07-23 10:16:38 -07:00
usb tools: ffs-aio-example: use endpoint addresses from descriptors 2015-01-15 09:41:49 -06:00
virtio tools/virtio: add virtio 1.0 in vringh_test 2014-12-15 23:49:22 +02:00
vm mm:add KPF_ZERO_PAGE flag for /proc/kpageflags 2015-02-11 17:06:00 -08:00
Makefile tools build: Fix Makefile(s) to properly invoke tools build 2015-04-29 10:37:46 -03:00