21 Feb, 2013

2 commits

  • Pull ACPI and power management updates from Rafael Wysocki:

    - Rework of the ACPI namespace scanning code from Rafael J. Wysocki
    with contributions from Bjorn Helgaas, Jiang Liu, Mika Westerberg,
    Toshi Kani, and Yinghai Lu.

    - ACPI power resources handling and ACPI device PM update from Rafael
    J Wysocki.

    - ACPICA update to version 20130117 from Bob Moore and Lv Zheng with
    contributions from Aaron Lu, Chao Guan, Jesper Juhl, and Tim Gardner.

    - Support for Intel Lynxpoint LPSS from Mika Westerberg.

    - cpuidle update from Len Brown including Intel Haswell support, C1
    state for intel_idle, removal of global pm_idle.

    - cpuidle fixes and cleanups from Daniel Lezcano.

    - cpufreq fixes and cleanups from Viresh Kumar and Fabio Baltieri with
    contributions from Stratos Karafotis and Rickard Andersson.

    - Intel P-states driver for Sandy Bridge processors from Dirk
    Brandewie.

    - cpufreq driver for Marvell Kirkwood SoCs from Andrew Lunn.

    - cpufreq fixes related to ordering issues between acpi-cpufreq and
    powernow-k8 from Borislav Petkov and Matthew Garrett.

    - cpufreq support for Calxeda Highbank processors from Mark Langsdorf
    and Rob Herring.

    - cpufreq driver for the Freescale i.MX6Q SoC and cpufreq-cpu0 update
    from Shawn Guo.

    - cpufreq Exynos fixes and cleanups from Jonghwan Choi, Sachin Kamat,
    and Inderpal Singh.

    - Support for "lightweight suspend" from Zhang Rui.

    - Removal of the deprecated power trace API from Paul Gortmaker.

    - Assorted updates from Andreas Fleig, Colin Ian King, Davidlohr Bueso,
    Joseph Salisbury, Kees Cook, Li Fei, Nishanth Menon, ShuoX Liu,
    Srinivas Pandruvada, Tejun Heo, Thomas Renninger, and Yasuaki
    Ishimatsu.

    * tag 'pm+acpi-3.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (267 commits)
    PM idle: remove global declaration of pm_idle
    unicore32 idle: delete stray pm_idle comment
    openrisc idle: delete pm_idle
    mn10300 idle: delete pm_idle
    microblaze idle: delete pm_idle
    m32r idle: delete pm_idle, and other dead idle code
    ia64 idle: delete pm_idle
    cris idle: delete idle and pm_idle
    ARM64 idle: delete pm_idle
    ARM idle: delete pm_idle
    blackfin idle: delete pm_idle
    sparc idle: rename pm_idle to sparc_idle
    sh idle: rename global pm_idle to static sh_idle
    x86 idle: rename global pm_idle to static x86_idle
    APM idle: register apm_cpu_idle via cpuidle
    cpufreq / intel_pstate: Add kernel command line option disable intel_pstate.
    cpufreq / intel_pstate: Change to disallow module build
    tools/power turbostat: display SMI count by default
    intel_idle: export both C1 and C1E
    ACPI / hotplug: Fix concurrency issues and memory leaks
    ...

    Linus Torvalds
     
  • Pull cgroup changes from Tejun Heo:
    "Nothing too drastic.

    - Removal of synchronize_rcu() from userland visible paths.

    - Various fixes and cleanups from Li.

    - cgroup_rightmost_descendant() added which will be used by cpuset
    changes (it will be a separate pull request)."

    * 'for-3.9' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
    cgroup: fail if monitored file and event_control are in different cgroup
    cgroup: fix cgroup_rmdir() vs close(eventfd) race
    cpuset: fix cpuset_print_task_mems_allowed() vs rename() race
    cgroup: fix exit() vs rmdir() race
    cgroup: remove bogus comments in cgroup_diput()
    cgroup: remove synchronize_rcu() from cgroup_diput()
    cgroup: remove duplicate RCU free on struct cgroup
    sched: remove redundant NULL cgroup check in task_group_path()
    sched: split out css_online/css_offline from tg creation/destruction
    cgroup: initialize cgrp->dentry before css_alloc()
    cgroup: remove a NULL check in cgroup_exit()
    cgroup: fix bogus kernel warnings when cgroup_create() failed
    cgroup: remove synchronize_rcu() from rebind_subsystems()
    cgroup: remove synchronize_rcu() from cgroup_attach_{task|proc}()
    cgroup: use new hashtable implementation
    cgroups: fix cgroup_event_listener error handling
    cgroups: move cgroup_event_listener.c to tools/cgroup
    cgroup: implement cgroup_rightmost_descendant()
    cgroup: remove unused dummy cgroup_fork_callbacks()

    Linus Torvalds
     

20 Feb, 2013

1 commit

  • Pull perf changes from Ingo Molnar:
    "There are lots of improvements, the biggest changes are:

    Main kernel side changes:

    - Improve uprobes performance by adding 'pre-filtering' support, by
    Oleg Nesterov.

    - Make some POWER7 events available in sysfs, equivalent to what was
    done on x86, from Sukadev Bhattiprolu.

    - tracing updates by Steve Rostedt - mostly misc fixes and smaller
    improvements.

    - Use perf/event tracing to report PCI Express advanced errors, by
    Tony Luck.

    - Enable northbridge performance counters on AMD family 15h, by Jacob
    Shin.

    - This tracing commit:

    tracing: Remove the extra 4 bytes of padding in events

    changes the ABI. All involved parties (PowerTop in particular)
    seem to agree that it's safe to do now with the introduction of
    libtraceevent, but the devil is in the details ...

    Main tooling side changes:

    - Add 'event group view', from Namyung Kim:

    To use it, 'perf record' should group events when recording. And
    then perf report parses the saved group relation from file header
    and prints them together if --group option is provided. You can
    use the 'perf evlist' command to see event group information:

    $ perf record -e '{ref-cycles,cycles}' noploop 1
    [ perf record: Woken up 2 times to write data ]
    [ perf record: Captured and wrote 0.385 MB perf.data (~16807 samples) ]

    $ perf evlist --group
    {ref-cycles,cycles}

    With this example, default perf report will show you each event
    separately.

    You can use --group option to enable event group view:

    $ perf report --group
    ...
    # group: {ref-cycles,cycles}
    # ========
    # Samples: 7K of event 'anon group { ref-cycles, cycles }'
    # Event count (approx.): 6876107743
    #
    # Overhead Command Shared Object Symbol
    # ................ ....... ................. ..........................
    99.84% 99.76% noploop noploop [.] main
    0.07% 0.00% noploop ld-2.15.so [.] strcmp
    0.03% 0.00% noploop [kernel.kallsyms] [k] timerqueue_del
    0.03% 0.03% noploop [kernel.kallsyms] [k] sched_clock_cpu
    0.02% 0.00% noploop [kernel.kallsyms] [k] account_user_time
    0.01% 0.00% noploop [kernel.kallsyms] [k] __alloc_pages_nodemask
    0.00% 0.00% noploop [kernel.kallsyms] [k] native_write_msr_safe
    0.00% 0.11% noploop [kernel.kallsyms] [k] _raw_spin_lock
    0.00% 0.06% noploop [kernel.kallsyms] [k] find_get_page
    0.00% 0.02% noploop [kernel.kallsyms] [k] rcu_check_callbacks
    0.00% 0.02% noploop [kernel.kallsyms] [k] __current_kernel_time

    As you can see the Overhead column now contains both of ref-cycles
    and cycles and header line shows group information also - 'anon
    group { ref-cycles, cycles }'. The output is sorted by period of
    group leader first.

    - Initial GTK+ annotate browser, from Namhyung Kim.

    - Add option for runtime switching perf data file in perf report,
    just press 's' and a menu with the valid files found in the current
    directory will be presented, from Feng Tang.

    - Add support to display whole group data for raw columns, from Jiri
    Olsa.

    - Add per processor socket count aggregation in perf stat, from
    Stephane Eranian.

    - Add interval printing in 'perf stat', from Stephane Eranian.

    - 'perf test' improvements

    - Add support for wildcards in tracepoint system name, from Jiri
    Olsa.

    - Add anonymous huge page recognition, from Joshua Zhu.

    - perf build-id cache now can show DSOs present in a perf.data file
    that are not in the cache, to integrate with build-id servers being
    put in place by organizations such as Fedora.

    - perf top now shares more of the evsel config/creation routines with
    'record', paving the way for further integration like 'top'
    snapshots, etc.

    - perf top now supports DWARF callchains.

    - Fix mmap limitations on 32-bit, fix from David Miller.

    - 'perf bench numa mem' NUMA performance measurement suite

    - ... and lots of fixes, performance improvements, cleanups and other
    improvements I failed to list - see the shortlog and git log for
    details."

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (270 commits)
    perf/x86/amd: Enable northbridge performance counters on AMD family 15h
    perf/hwbp: Fix cleanup in case of kzalloc failure
    perf tools: Fix build with bison 2.3 and older.
    perf tools: Limit unwind support to x86 archs
    perf annotate: Make it to be able to skip unannotatable symbols
    perf gtk/annotate: Fail early if it can't annotate
    perf gtk/annotate: Show source lines with gray color
    perf gtk/annotate: Support multiple event annotation
    perf ui/gtk: Implement basic GTK2 annotation browser
    perf annotate: Fix warning message on a missing vmlinux
    perf buildid-cache: Add --update option
    uprobes/perf: Avoid uprobe_apply() whenever possible
    uprobes/perf: Teach trace_uprobe/perf code to use UPROBE_HANDLER_REMOVE
    uprobes/perf: Teach trace_uprobe/perf code to pre-filter
    uprobes/perf: Teach trace_uprobe/perf code to track the active perf_event's
    uprobes: Introduce uprobe_apply()
    perf: Introduce hw_perf_event->tp_target and ->tp_list
    uprobes/perf: Always increment trace_uprobe->nhit
    uprobes/tracing: Kill uprobe_trace_consumer, embed uprobe_consumer into trace_uprobe
    uprobes/tracing: Introduce is_trace_uprobe_enabled()
    ...

    Linus Torvalds
     

19 Feb, 2013

1 commit

  • * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux: (35 commits)
    PM idle: remove global declaration of pm_idle
    unicore32 idle: delete stray pm_idle comment
    openrisc idle: delete pm_idle
    mn10300 idle: delete pm_idle
    microblaze idle: delete pm_idle
    m32r idle: delete pm_idle, and other dead idle code
    ia64 idle: delete pm_idle
    cris idle: delete idle and pm_idle
    ARM64 idle: delete pm_idle
    ARM idle: delete pm_idle
    blackfin idle: delete pm_idle
    sparc idle: rename pm_idle to sparc_idle
    sh idle: rename global pm_idle to static sh_idle
    x86 idle: rename global pm_idle to static x86_idle
    APM idle: register apm_cpu_idle via cpuidle
    tools/power turbostat: display SMI count by default
    intel_idle: export both C1 and C1E
    cpuidle: remove vestage definition of cpuidle_state_usage.driver_data
    x86 idle: remove 32-bit-only "no-hlt" parameter, hlt_works_ok flag
    x86 idle: remove mwait_idle() and "idle=mwait" cmdline param
    ...

    Conflicts:
    arch/x86/kernel/process.c (with PM / tracing commit 43720bd)
    drivers/acpi/processor_idle.c (with ACPICA commit 4f84291)

    Rafael J. Wysocki
     

15 Feb, 2013

10 commits

  • * pm-tools:
    ACPI tools / acpidump: must be run as root - install it into /usr/sbin

    Rafael J. Wysocki
     
  • The %name-prefix "prefix" syntax is not available on bison 2.3 and
    older. Substitute with the -p "prefix" command-line option for
    compatibility with older versions of bison.

    This patch fixes this build error with older versions of bison.

    CC util/sysfs.o
    BISON util/pmu-bison.c
    util/pmu.y:2.14-24: syntax error, unexpected string, expecting =
    make: *** [util/pmu-bison.c] Error 1

    Signed-off-by: Vinson Lee
    Tested-by: Li Zefan
    Cc: stable@vger.kernel.org # 3.4+
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Li Zefan
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Pekka Enberg
    Link: http://lkml.kernel.org/r/1360792138-29186-1-git-send-email-vlee@twitter.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Vinson Lee
     
  • There's DWARF unwind support only for x86 archs, so limit the unwind.o
    object to them only.

    Without this building for other archs (e.g. cross compiling for ARM) is
    broken.

    Signed-off-by: Jiri Olsa
    Signed-off-by: Dirk Behme
    Link: http://lkml.kernel.org/n/tip-viqtvd6hppqgt68zz4wlqm20@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     
  • Add --skip-missing option for skipping symbols that cannot be used for
    annotation. It's the case of kernel symbols that user doesn't have a
    vmlinux image file.

    Signed-off-by: Namhyung Kim
    Cc: Andi Kleen
    Cc: Borislav Petkov
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Paul Mackerras
    Cc: Pekka Enberg
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1360227734-375-8-git-send-email-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     
  • Don't need to setup a browser window if annotate cannot work.

    Signed-off-by: Namhyung Kim
    Cc: Andi Kleen
    Cc: Borislav Petkov
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Paul Mackerras
    Cc: Pekka Enberg
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1360227734-375-7-git-send-email-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     
  • In order to differentiate source lines from asm line, print them with
    gray color. To do this, it needs to be escaped since sometimes it
    contains "" characters so that it should not be considered
    as a markup tags. Use glib's g_markup_escape_text() for this.

    Signed-off-by: Namhyung Kim
    Cc: Andi Kleen
    Cc: Borislav Petkov
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Paul Mackerras
    Cc: Pekka Enberg
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1360227734-375-4-git-send-email-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     
  • Show multiple annotation result for each evsel. Each result represents
    the most frquently sampled symbol/function for the evsel and it will be
    shown in a tab window.

    For this add a reference to main container (notebook) to the pgctx. At
    the first call to annotate browser, hist_entry__find_annotations() will
    setup a new browser, and next calls will add new tabs to the browser.
    But it requires final perf_gtk__show_annotations() to start processing
    GUI events.

    Signed-off-by: Namhyung Kim
    Cc: Andi Kleen
    Cc: Borislav Petkov
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Paul Mackerras
    Cc: Pekka Enberg
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1360227734-375-3-git-send-email-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     
  • Basic implementation of perf annotate on GTK2. Currently only
    shows first symbol. Add a new --gtk option to use it.

    Signed-off-by: Namhyung Kim
    Cc: Andi Kleen
    Cc: Borislav Petkov
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Pekka Enberg
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1360227734-375-2-git-send-email-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     
  • When perf annotate runs with no vmlinux file it cannot annotate kernel
    symbols because the kallsyms only provides symbol addresses. So it
    recommends to run perf buildid-cache to install proper vmlinux image.

    But running perf buildid-cache -av vmlinux as the message gives me a
    following error:

    $ perf buildid-cache -av /home/namhyung/build/kernel/vmlinux
    Couldn't add v: No such file or directory

    Since the -a option receives a parameter, 'v' should not be after the
    option.

    In addition -a option is not work for this case since the build-id cache
    already has a kallsyms with same build-id so it'll fail with EEXIST.
    Use recently added -u (--update) option for it.

    Signed-off-by: Namhyung Kim
    Cc: Andi Kleen
    Cc: Borislav Petkov
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Paul Mackerras
    Cc: Pekka Enberg
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1360227734-375-6-git-send-email-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     
  • When adding vmlinux file to build-id cache, it'd be fail since kallsyms
    dso with a same build-id was already added by perf record.

    So one needs to remove the kallsyms first to add vmlinux into the cache.
    Add --update option for doing it at once.

    Signed-off-by: Namhyung Kim
    Cc: Andi Kleen
    Cc: Borislav Petkov
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Paul Mackerras
    Cc: Pekka Enberg
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1360227734-375-5-git-send-email-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     

14 Feb, 2013

1 commit

  • The SMI counter is popular -- so display it by default
    rather than requiring an option. What the heck,
    we've blown the 80 column budget on many systems already...

    Note that the value displayed is the delta
    during the measurement interval.
    The absolute value of the counter can still be seen with
    the generic 32-bit MSR option, ie. -m 0x34

    Signed-off-by: Len Brown

    Len Brown
     

09 Feb, 2013

2 commits


07 Feb, 2013

17 commits

  • So that we fix this regression:

    [root@sandy linux]# perf test -v 15
    15: Try 'use perf' in python, checking link problems :
    --- start ---
    Traceback (most recent call last):
    File "", line 1, in
    ImportError: /home/acme/git/build/perf/python/perf.so: undefined symbol: sysfs_find_mountpoint
    ---- end ----
    Try 'use perf' in python, checking link problems: FAILED!
    [root@sandy linux]#

    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Mike Galbraith
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-8pf64bsdywg1gl9m55ul77hg@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • So that we avoid dragging symbol.o into the python binding.

    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Jiri Olsa
    Cc: Mike Galbraith
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-izjubje7ltd1srji5wb0ygwi@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • A sweep of the kernel for regex "kcalloc(sizeof" turned up 2 reversed
    args, fixed in commit d3d09e18203dba16a9dbdb2b4cc673d90748cdd1 ("EDAC:
    Fix kcalloc argument order") and also fixed in the networking commit
    a1b1add07fa794974573d93483d68e373edfe7bd ("gro: Fix kcalloc argument
    order").

    I know that was the regex used, because on seeing the 1st of these
    changes, I wondered "how many other instances of this are there" and I
    happened to just use "calloc(sizeof" as a regex and it in turn found
    these additional reversed args instances in the perf code.

    In the kcalloc cases, the changes are cosmetic, since the numbers are
    simply multiplied. I had no desire to go data mining in userspace to
    see if the same thing held true there, however.

    Signed-off-by: Paul Gortmaker
    Cc: Ingo Molnar
    Cc: Joe Perches
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1359594349-25912-1-git-send-email-paul.gortmaker@windriver.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Paul Gortmaker
     
  • The ':GH' group modifier handling was just recently fixed, adding some
    autommated tests to keep it that way. Adding tests for following events:

    "{cycles,cache-misses:G}:H"
    "{cycles,cache-misses:H}:G"
    "{cycles:G,cache-misses:H}:u"
    "{cycles:G,cache-misses:H}:uG"

    Plus fixing test__group2 test.

    Signed-off-by: Jiri Olsa
    Cc: Corey Ashford
    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1359971803-2343-3-git-send-email-jolsa@redhat.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     
  • Let the perf_evsel::exclude_GH only prevent the reset of exclude_host
    and exclude_guest attributes in case they were already set.

    We cannot reset their values to 0, because they might have other
    defaults set by event_attr_init.

    Signed-off-by: Jiri Olsa
    Cc: Corey Ashford
    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1359971803-2343-2-git-send-email-jolsa@redhat.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     
  • Fixing rwtop script race. The issue is caused by rwtop script triggering
    SIGALRM and underneath pipe reading layer reporting error when
    interrupted.

    Fixing this by setting SA_RESTART for rwtop SIGALRM handler, which
    avoids interruption of the pipe reading layer.

    The discussion for this issue & fix is here:
    https://lkml.org/lkml/2012/9/18/123

    Signed-off-by: Jiri Olsa
    Original-patch-by: Andrew Jones
    Cc: Andrew Jones
    Cc: Corey Ashford
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1360080351-3246-2-git-send-email-jolsa@redhat.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     
  • Currently we don't display group members' values for raw columns like
    'Samples' and 'Period' when in group report mode.

    Uniting '__hpp__percent_fmt' and '__hpp__raw_fmt' function under new
    function __hpp__fmt. It's basically '__hpp__percent_fmt' code with new
    'fmt_percent' bool parameter added saying whether raw number or
    percentage should be printed.

    This way raw columns print out all the group members when
    in group report mode, like:

    $ perf record -e '{cycles,cache-misses}' ls
    ...
    $ perf report --group --show-total-period --stdio
    ...
    # Overhead Period Command Shared Object Symbol
    # ................ ........................ ....... ................. .................................
    #
    23.63% 11.24% 3331335 317 ls [kernel.kallsyms] [k] __lock_acquire
    12.72% 0.00% 1793100 0 ls [kernel.kallsyms] [k] native_sched_clock
    9.72% 0.00% 1369920 0 ls libc-2.14.90.so [.] _nl_find_locale
    0.03% 0.07% 4476 2 ls [kernel.kallsyms] [k] intel_pmu_enable_all
    0.00% 11.73% 0 331 ls ld-2.14.90.so [.] _dl_cache_libcmp
    0.00% 11.06% 0 312 ls [kernel.kallsyms] [k] vma_interval_tree_insert

    Signed-off-by: Jiri Olsa
    Acked-by: Namhyung Kim
    Cc: Corey Ashford
    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1359981185-16819-2-git-send-email-jolsa@redhat.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     
  • This patch adds per-processor socket count aggregation for system-wide
    mode measurements. This is a useful mode to detect imbalance between
    sockets.

    To enable this mode, use --aggr-socket in addition
    to -a. (system-wide).

    The output includes the socket number and the number of online
    processors on that socket. This is useful to gauge the amount of
    aggregation.

    # ./perf stat -I 1000 -a --aggr-socket -e cycles sleep 2
    # time socket cpus counts events
    1.000097680 S0 4 5,788,785 cycles
    2.000379943 S0 4 27,361,546 cycles
    2.001167808 S0 4 818,275 cycles

    Signed-off-by: Stephane Eranian
    Cc: Andi Kleen
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1360161962-9675-3-git-send-email-eranian@google.com
    [ committer note: Added missing man page entry based on above comments ]
    Signed-off-by: Arnaldo Carvalho de Melo

    Stephane Eranian
     
  • This patch adds:
    - cpu_map__get_socket: get socked id from cpu
    - cpu_map__build_socket_map: build socket map
    - cpu_map__socket: gets acutal socket from logical socket

    Those functions are used by uncore and processor socket-level
    aggregation modes.

    Signed-off-by: Stephane Eranian
    Cc: Andi Kleen
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1360161962-9675-2-git-send-email-eranian@google.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Stephane Eranian
     
  • I am getting segfaults *after* the time sorting of perf samples where
    the event type is off the charts:

    (gdb) bt
    \#0 0x0807b1b2 in hists__inc_nr_events (hists=0x80a99c4, type=1163281902) at util/hist.c:1225
    \#1 0x08070795 in perf_session_deliver_event (session=0x80a9b90, event=0xf7a6aff8, sample=0xffffc318, tool=0xffffc520,
    file_offset=0) at util/session.c:884
    \#2 0x0806f9b9 in flush_sample_queue (s=0x80a9b90, tool=0xffffc520) at util/session.c:555
    \#3 0x0806fc53 in process_finished_round (tool=0xffffc520, event=0x0, session=0x80a9b90) at util/session.c:645

    This is bizarre because the event has already been processed once --
    before it was added to the samples queue -- and the event was found to
    be sane at that time.

    There seem to be 2 causes:

    1. perf_evlist__mmap_read updates the read location even though there
    are outstanding references to events sitting in the mmap buffers via the
    ordered samples queue.

    2. There is a single evlist->event_copy for all evlist entries.
    event_copy is used to handle an event wrapping at the mmap buffer
    boundary.

    This patch addresses the second problem - making event_copy local to
    each perf_mmap. With this change my highly repeatable use case no longer
    fails.

    The first problem is much more complicated and will be the subject of a
    future patch.

    Signed-off-by: David Ahern
    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1360098762-61827-1-git-send-email-dsahern@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo

    David Ahern
     
  • When setup_sorting() is called, 'str' is passed to strtok_r() but it's
    not checked to have a valid pointer. As strtok_r() accepts NULL pointer
    on a first argument and use the third argument in that case, it can
    cause a trouble since our third argument, tmp, is not initialized.

    Signed-off-by: Namhyung Kim
    Acked-by: Jiri Olsa
    Cc: Ingo Molnar
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1360130237-9963-3-git-send-email-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     
  • Currently the setup_sorting() is called for parsing sort keys and exits
    if it failed to add the sort key. As it's included in libperf it'd be
    better returning an error code rather than exiting application inside of
    the library.

    Signed-off-by: Namhyung Kim
    Suggested-by: Arnaldo Carvalho de Melo
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1360130237-9963-2-git-send-email-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     
  • Current _sort__sym_cmp() function is used for comparing symbols between
    two hist entries on symbol, symbol_from and symbol_to sort keys. Those
    functions pass addresses of symbols but it's meaningless since it gets
    over-written inside of the _sort__sym_cmp function to a start address of
    the symbol. So just get rid of them.

    This might cause a difference than prior output for branch stacks since
    it seems not using start address of the symbol but branch address.
    However AFAICS it'd be same as it gets overwritten anyway.

    Also remove redundant part of code in sort__sym_cmp().

    Signed-off-by: Namhyung Kim
    Acked-by: Jiri Olsa
    Cc: Ingo Molnar
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1360130237-9963-1-git-send-email-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     
  • Check whether both executables are present on the system before
    continuing with the build instead of failing halfway, if either are
    missing.

    Signed-off-by: Borislav Petkov
    Link: http://lkml.kernel.org/r/1359979554-9160-1-git-send-email-bp@alien8.de
    Signed-off-by: Arnaldo Carvalho de Melo

    Borislav Petkov
     
  • The __perf_evlist__set_leader() was setting the leader for all events in
    the list except the first. Which means it assumed the first event
    already had event->leader = event.

    Seems like this should be the role of the function to also do this. This
    is a requirement for an upcoming patch set.

    Signed-off-by: Stephane Eranian
    Acked-by: Jiri Olsa
    Tested-by: Jiri Olsa
    Acked-by: Namhyung Kim
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/20130131125437.GA3656@quad
    Signed-off-by: Arnaldo Carvalho de Melo

    Stephane Eranian
     
  • This is for tui browser only. This patch will check the returned key of
    tui hists browser, if it's K_SWITH_INPUT_DATA, then recreate a session
    for the new selected data file.

    V2: Move the setup_brower() before the "repeat" jump point.

    Signed-off-by: Feng Tang
    Cc: Andi Kleen
    Cc: Ingo Molnar
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1359873501-24541-2-git-send-email-feng.tang@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Feng Tang
     
  • Based on perf report/top/scripts browser integration idea from acme.

    This will enable user to runtime switch the data file, when this option
    is selected, it will popup all the legal data files in current working
    directory, and the filename selected by user is saved in the global
    variable "input_name", and a new key 'K_SWITCH_INPUT_DATA' will be
    passed back to the built-in command which will perform the switch.

    This initial version only enables it for 'perf report'.

    v2: rebase to latest 'perf/core' branch (6e1d4dd) of acme's perf tree

    Signed-off-by: Feng Tang
    Cc: Andi Kleen
    Cc: Ingo Molnar
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1359873501-24541-1-git-send-email-feng.tang@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Feng Tang
     

06 Feb, 2013

1 commit


05 Feb, 2013

1 commit


01 Feb, 2013

4 commits

  • Add '-g/--group' option for showing event groups. For simplicity it is
    currently not compatible with other options.

    $ perf evlist --group
    {ref-cycles,cycles}

    $ perf evlist
    ref-cycles
    cycles

    Suggested-by: Arnaldo Carvalho de Melo
    Signed-off-by: Namhyung Kim
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1358845787-1350-20-git-send-email-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     
  • Add report.group config option for setting default value of event
    group view. It affects the report output only if perf.data contains
    event group info.

    A user can write .perfconfig file like below to enable group view by
    default:

    $ cat ~/.perfconfig
    [report]
    group = true

    And it can be disabled through command line:

    $ perf report --no-group

    Signed-off-by: Namhyung Kim
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1358845787-1350-19-git-send-email-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     
  • Add --group option to enable event grouping. When enabled, all the
    group members information will be shown together with the leader.

    $ perf report --group
    ...
    # group: {ref-cycles,cycles}
    # ========
    #
    # Samples: 7K of event 'anon group { ref-cycles, cycles }'
    # Event count (approx.): 6876107743
    #
    # Overhead Command Shared Object Symbol
    # ................ ....... ................. ..........................
    #
    99.84% 99.76% noploop noploop [.] main
    0.07% 0.00% noploop ld-2.15.so [.] strcmp
    0.03% 0.00% noploop [kernel.kallsyms] [k] timerqueue_del
    0.03% 0.03% noploop [kernel.kallsyms] [k] sched_clock_cpu
    0.02% 0.00% noploop [kernel.kallsyms] [k] account_user_time
    0.01% 0.00% noploop [kernel.kallsyms] [k] __alloc_pages_nodemask
    0.00% 0.00% noploop [kernel.kallsyms] [k] native_write_msr_safe
    0.00% 0.11% noploop [kernel.kallsyms] [k] _raw_spin_lock
    0.00% 0.06% noploop [kernel.kallsyms] [k] find_get_page
    0.00% 0.02% noploop [kernel.kallsyms] [k] rcu_check_callbacks
    0.00% 0.02% noploop [kernel.kallsyms] [k] __current_kernel_time

    Signed-off-by: Namhyung Kim
    Acked-by: Jiri Olsa
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1358845787-1350-18-git-send-email-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     
  • When using event group viewer, it's better to show the group description
    rather than the leader information alone.

    If a leader did not contain any member, it's a non-group event.

    Signed-off-by: Namhyung Kim
    Acked-by: Jiri Olsa
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Paul Mackerras
    Cc: Pekka Enberg
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1358845787-1350-17-git-send-email-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim