Skip to content
Snippets Groups Projects
  1. Nov 05, 2013
  2. Nov 04, 2013
  3. Nov 01, 2013
    • Arnaldo Carvalho de Melo's avatar
      perf test: Update command line callchain attribute tests · 46d525ea
      Arnaldo Carvalho de Melo authored
      
      The "struct perf_event_attr setup" entry in 'perf test' is in fact a
      series of tests that will exec the tools, passing different sets of
      command line arguments to then intercept the sys_perf_event_open
      syscall, in user space, to check that the perf_event_attr->sample_type
      and other feature request bits are setup as expected.
      
      We recently restored the callchain requesting command line argument, -g,
      to not require a parameter ("dwarf" or "fp"), instead using a default
      ("fp" for now) and making the long option variant, --call-chain, be the
      one to be used when a different callchain collection method is
      preferred.
      
      The "struct perf_event_attr setup" test failed because we forgot to
      update the tests involving callchains, not switching from, '-g dwarf' to
      '--call-chain dwarf', making 'perf test' detect it:
      
        [root@sandy ~]# perf test -v 13
        13: struct perf_event_attr setup                           :
        --- start ---
        running '/home/acme/libexec/perf-core/tests/attr/test-record-basic'
        running '/home/acme/libexec/perf-core/tests/attr/test-record-branch-any'
        <SNIP>
        running '/home/acme/libexec/perf-core/tests/attr/test-record-graph-default'
        running '/home/acme/libexec/perf-core/tests/attr/test-record-graph-dwarf'
        expected sample_type=12583, got 295
        expected exclude_callchain_user=1, got 0
        expected sample_stack_user=8192, got 0
        FAILED '/home/acme/libexec/perf-core/tests/attr/test-record-graph-dwarf' - match failure
        ---- end ----
        struct perf_event_attr setup: FAILED!
        [root@sandy ~]#
      
      Fix all of them now to use --call-chain when explicitely specifying a
      method.
      
      There is still work to do, as '-g fp', for instance, passed without
      problems.
      
      In that case 'perf test' saw no problems as the intercepted syscall got
      the bits as expected, i.e. the default is 'fp', but the fact that 'fp'
      may be an existing program and the specified workload would then be
      passed as a parameter to it is an usability problem that needs fixing.
      
      Next merge window tho.
      
      Acked-by: default avatarJiri Olsa <jolsa@redhat.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Link: http://lkml.kernel.org/n/tip-jr3oq1k5iywnp7vvqlslzydm@git.kernel.org
      
      
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      46d525ea
    • Wei Yang's avatar
      perf bench: Fix two warnings · 32bf5bd1
      Wei Yang authored
      
      There are two warnings in bench/numa, when building this on 32-bit
      machine.
      
      The warning output is attached:
      
      bench/numa.c:1113:20: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
      bench/numa.c:1161:6: error: format ‘%lx’ expects argument of t'long unsigned int’, but argument 5 has type ‘u64’ [-Werror=format]
      
      This patch fixes these two warnings.
      
      Signed-off-by: default avatarWei Yang <weiyang@linux.vnet.ibm.com>
      Acked-by: default avatarIngo Molnar <mingo@kernel.org>
      Cc: Ingo Molnar <mingo@redhat.com>
      Link: http://lkml.kernel.org/r/1379839764-9245-1-git-send-email-weiyang@linux.vnet.ibm.com
      
      
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      32bf5bd1
    • Michael Hudson-Doyle's avatar
      perf tools: Remove cast of non-variadic function to variadic · 53805eca
      Michael Hudson-Doyle authored
      
      The 4fb71074 (perf ui/hist: Consolidate hpp helpers) cset introduced
      a cast of percent_color_snprintf to a function pointer type with
      varargs.  Change percent_color_snprintf to be variadic and remove the
      cast.
      
      The symptom of this was all percentages being reported as 0.00% in perf
      report --stdio output on the armhf arch.
      
      Signed-off-by: default avatarMichael Hudson-Doyle <michael.hudson@linaro.org>
      Acked-by: default avatarNamhyung Kim <namhyung@kernel.org>
      Acked-by: default avatarWill Deacon <will.deacon@arm.com>
      Cc: Jean Pihet <jean.pihet@linaro.org>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: stable@vger.kernel.org
      Link: http://lkml.kernel.org/r/87zjppvw7y.fsf@canonical.com
      
      
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      53805eca
  4. Oct 28, 2013
  5. Oct 24, 2013
    • Joseph Schuchart's avatar
      perf script python: Fix mem leak due to missing Py_DECREFs on dict entries · c0268e8d
      Joseph Schuchart authored
      We are using the Python scripting interface in perf to extract kernel
      events relevant for performance analysis of HPC codes. We noticed that
      the "perf script" call allocates a significant amount of memory (in the
      order of several 100 MiB) during it's run, e.g. 125 MiB for a 25 MiB
      input file:
      
        $> perf record -o perf.data -a -R -g fp \
             -e power:cpu_frequency -e sched:sched_switch \
             -e sched:sched_migrate_task -e sched:sched_process_exit \
             -e sched:sched_process_fork -e sched:sched_process_exec \
             -e cycles  -m 4096 --freq 4000
        $> /usr/bin/time perf script -i perf.data -s dummy_script.py
        0.84user 0.13system 0:01.92elapsed 51%CPU (0avgtext+0avgdata
        125532maxresident)k
        73072inputs+0outputs (57major+33086minor)pagefaults 0swaps
      
      Upon further investigation using the valgrind massif tool, we noticed
      that Python objects that are created in trace-event-python.c via
      PyString_FromString*() (and their Integer and Long counterparts) are
      never free'd.
      
      The reason for this seem to be missing Py_DECREF calls on the objects
      that are returned by these functions and stored in the Python
      dictionaries. The Python dictionaries do not steal references (as
      opposed to Python tuples and lists) but instead add their own reference.
      
      Hence, the reference that is returned by these object creation functions
      is never released and the memory is leaked. (see [1,2])
      
      The attached patch fixes this by wrapping all relevant calls to
      PyDict_SetItemString() and decrementing the reference counter
      immediately after the Python function call.
      
      This reduces the allocated memory to a reasonable amount:
      
        $> /usr/bin/time perf script -i perf.data -s dummy_script.py
        0.73user 0.05system 0:00.79elapsed 99%CPU (0avgtext+0avgdata
        49132maxresident)k
        0inputs+0outputs (0major+14045minor)pagefaults 0swaps
      
      For comparison, with a 120 MiB input file the memory consumption
      reported by time drops from almost 600 MiB to 146 MiB.
      
      The patch has been tested using Linux 3.8.2 with Python 2.7.4 and Linux
      3.11.6 with Python 2.7.5.
      
      Please let me know if you need any further information.
      
      [1] http://docs.python.org/2/c-api/tuple.html#PyTuple_SetItem
      [2] http://docs.python.org/2/c-api/dict.html#PyDict_SetItemString
      
      
      
      Signed-off-by: default avatarJoseph Schuchart <joseph.schuchart@tu-dresden.de>
      Reviewed-by: default avatarTom Zanussi <tom.zanussi@linux.intel.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Tom Zanussi <tom.zanussi@linux.intel.com>
      Link: http://lkml.kernel.org/r/1381468543-25334-4-git-send-email-namhyung@kernel.org
      
      
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      c0268e8d
  6. Oct 23, 2013
Loading