13 Apr, 2012

2 commits


11 Apr, 2012

1 commit

  • Running 'perf kvm --host --guest --guestmount /tmp/guestmount record -a -g -- sleep 2'

    Was resulting in a segfault. For event type PERF_RECORD_MMAP,
    event->ip.pid is being used in perf_session__find_machine_for_cpumode,
    which is not correct.

    The event->ip.pid field happens to be 0 in this case and results in
    returning a NULL machine object. Finally, access to self->pid in
    machine__mmap_name, results in a segfault later.

    For PERF_RECORD_MMAP type, pass event->mmap.pid.

    Signed-off-by: Nikunj A. Dadhania
    Reviewed-by: David Ahern
    Tested-by: David Ahern
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Cc: Nikunj A. Dadhania
    Link: http://lkml.kernel.org/r/20120409081835.10576.22018.stgit@abhimanyu.in.ibm.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Nikunj A. Dadhania
     

06 Apr, 2012

5 commits

  • This routine was checking only if the provided address was after
    sym->end, not if it was before sym->start.

    Fix that by checking for both and return in both cases -ERANGE, so that
    tools can communicate this to the user properly, or if they chose so, to
    abort.

    This problem was reported previously but the fixes involved either doing
    what was being done for the > end case, i.e. silently drop the sample,
    returning 0, or aborting at this function, which is in a lib (or better,
    is slated to be at some point) and shouldn't abort.

    The 'report' tool already checks this value and uses pr_debug to warn
    the user.

    This patch makes the 'top' tool check it too and warn once per map where
    such range problem takes place.

    Reported-by: David Miller
    Reported-by: Sorin Dumitru
    Reported-by: Stephane Eranian
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Mike Galbraith
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/n/tip-lw8gs7p9i9nhldilo82tzpne@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • If there's an event with no samples in data file, the perf report
    command can segfault after entering the event details menu.

    Following steps reproduce the issue:

    # ./perf record -e syscalls:sys_enter_kexec_load,syscalls:sys_enter_mmap ls
    # ./perf report
    # enter '0 syscalls:sys_enter_kexec_load' menu
    # pres ENTER twice

    Above steps are valid assuming ls wont run kexec.. ;)

    The check for sellection to be NULL is missing. The fix makes sure it's
    being check. Above steps now endup with menu being displayed allowing
    'Exit' as the only option.

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

    Jiri Olsa
     
  • When a process exec()'s, all the maps are retired, but we keep the hist
    entries around which hold references to those outdated maps.

    If the same library gets mapped in for which we have hist entries, a new
    map will be created. But when we take a perf entry hit within that map,
    we'll find the existing hist entry with the older map.

    This causes symbol translations to be done incorrectly. For example,
    the perf entry processing will lookup the correct uptodate map entry and
    use that to calculate the symbol and DSO relative address. But later
    when we update the histogram we'll translate the address using the
    outdated map file instead leading to conditions such as out-of-range
    offsets in symbol__inc_addr_samples().

    Therefore, update the map of the hist_entry dynamically at lookup/
    creation time.

    Signed-off-by: David S. Miller
    Cc: stable@kernel.org
    Link: http://lkml.kernel.org/r/20120327.031418.1220315351537060808.davem@davemloft.net
    Signed-off-by: Arnaldo Carvalho de Melo

    David Miller
     
  • We were only decaying the entries for the offsets that were associated
    with an objdump line.

    That way, when we accrued the whole instruction addr range, more than
    100% was appearing in some cases in the live annotation TUI.

    Fix it by not traversing the source code line at all, just iterate thru
    the complete addr range decaying each one.

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

    Arnaldo Carvalho de Melo
     
  • TODO: Accrue the cycles in the skip_list to an idle total, and show this
    on the 'top' UI, as suggested by Steven.

    Cc: Eric Dumazet
    Cc: Frederic Weisbecker
    Cc: Mike Galbraith
    Cc: Peter Zijlstra
    Cc: Steven Rostedt
    Link: http://lkml.kernel.org/n/tip-9nfecmgghgl5747rjxqpc28f@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

04 Apr, 2012

1 commit

  • On a system running glibc trunk perf doesn't build:

    CC builtin-sched.o
    builtin-sched.c: In function ‘get_cpu_usage_nsec_parent’: builtin-sched.c:399:16: error: storage size of ‘ru’ isn’t known builtin-sched.c:403:2: error: implicit declaration of function ‘getrusage’ [-Werror=implicit-function-declaration]
    [...]

    Fix it by including sys/resource.h.

    Signed-off-by: Markus Trippelsdorf
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/20120404084527.GA294@x4
    Signed-off-by: Ingo Molnar

    Markus Trippelsdorf
     

01 Apr, 2012

1 commit

  • Pull perf updates and fixes from Ingo Molnar:
    "It's mostly fixes, but there's also two late items:

    - preliminary GTK GUI support for perf report
    - PMU raw event format descriptors in sysfs, to be parsed by tooling

    The raw event format in sysfs is a new ABI. For example for the 'CPU'
    PMU we have:

    aldebaran:~> ll /sys/bus/event_source/devices/cpu/format/*
    -r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/any
    -r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/cmask
    -r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/edge
    -r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/event
    -r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/inv
    -r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/offcore_rsp
    -r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/pc
    -r--r--r--. 1 root root 4096 Mar 31 10:29 /sys/bus/event_source/devices/cpu/format/umask

    those lists of fields contain a specific format:

    aldebaran:~> cat /sys/bus/event_source/devices/cpu/format/offcore_rsp
    config1:0-63

    So, those who wish to specify raw events can now use the following
    event format:

    -e cpu/cmask=1,event=2,umask=3

    Most people will not want to specify any events (let alone raw
    events), they'll just use whatever default event the tools use.

    But for more obscure PMU events that have no cross-architecture
    generic events the above syntax is more usable and a bit more
    structured than specifying hex numbers."

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (41 commits)
    perf tools: Remove auto-generated bison/flex files
    perf annotate: Fix off by one symbol hist size allocation and hit accounting
    perf tools: Add missing ref-cycles event back to event parser
    perf annotate: addr2line wants addresses in same format as objdump
    perf probe: Finder fails to resolve function name to address
    tracing: Fix ent_size in trace output
    perf symbols: Handle NULL dso in dso__name_len
    perf symbols: Do not include libgen.h
    perf tools: Fix bug in raw sample parsing
    perf tools: Fix display of first level of callchains
    perf tools: Switch module.h into export.h
    perf: Move mmap page data_head offset assertion out of header
    perf: Fix mmap_page capabilities and docs
    perf diff: Fix to work with new hists design
    perf tools: Fix modifier to be applied on correct events
    perf tools: Fix various casting issues for 32 bits
    perf tools: Simplify event_read_id exit path
    tracing: Fix ftrace stack trace entries
    tracing: Move the tracing_on/off() declarations into CONFIG_TRACING
    perf report: Add a simple GTK2-based 'perf report' browser
    ...

    Linus Torvalds
     

31 Mar, 2012

2 commits

  • …/linux into perf/urgent

    Ingo Molnar
     
  • Pull ACPI & Power Management changes from Len Brown:
    - ACPI 5.0 after-ripples, ACPICA/Linux divergence cleanup
    - cpuidle evolving, more ARM use
    - thermal sub-system evolving, ditto
    - assorted other PM bits

    Fix up conflicts in various cpuidle implementations due to ARM cpuidle
    cleanups (ARM at91 self-refresh and cpu idle code rewritten into
    "standby" in asm conflicting with the consolidation of cpuidle time
    keeping), trivial SH include file context conflict and RCU tracing fixes
    in generic code.

    * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux: (77 commits)
    ACPI throttling: fix endian bug in acpi_read_throttling_status()
    Disable MCP limit exceeded messages from Intel IPS driver
    ACPI video: Don't start video device until its associated input device has been allocated
    ACPI video: Harden video bus adding.
    ACPI: Add support for exposing BGRT data
    ACPI: export acpi_kobj
    ACPI: Fix logic for removing mappings in 'acpi_unmap'
    CPER failed to handle generic error records with multiple sections
    ACPI: Clean redundant codes in scan.c
    ACPI: Fix unprotected smp_processor_id() in acpi_processor_cst_has_changed()
    ACPI: consistently use should_use_kmap()
    PNPACPI: Fix device ref leaking in acpi_pnp_match
    ACPI: Fix use-after-free in acpi_map_lsapic
    ACPI: processor_driver: add missing kfree
    ACPI, APEI: Fix incorrect APEI register bit width check and usage
    Update documentation for parameter *notrigger* in einj.txt
    ACPI, APEI, EINJ, new parameter to control trigger action
    ACPI, APEI, EINJ, limit the range of einj_param
    ACPI, APEI, Fix ERST header length check
    cpuidle: power_usage should be declared signed integer
    ...

    Linus Torvalds
     

30 Mar, 2012

6 commits

  • These should not be in the Git history - they are auto-generated.

    Extend the Makefile rules of the parser files to include the generation
    run.

    Signed-off-by: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/20120327183335.GA27621@gmail.com
    [ committer note: Fixed up O= handling ]
    Signed-off-by: Arnaldo Carvalho de Melo

    Ingo Molnar
     
  • Sometimes users have turbostat running in interval mode
    when they take processors offline/online.

    Previously, turbostat would survive, but not gracefully.

    Tighten up the error checking so turbostat notices
    changesn sooner, and print just 1 line on change:

    turbostat: re-initialized with num_cpus %d

    Signed-off-by: Len Brown

    Len Brown
     
  • turbostat uses /dev/cpu/*/msr interface to read MSRs.
    For modern systems, it reads 10 MSR/CPU. This can
    be observed as 10 "Function Call Interrupts"
    per CPU per sample added to /proc/interrupts.

    This overhead is measurable on large idle systems,
    and as Yoquan Song pointed out, it can even trick
    cpuidle into thinking the system is busy.

    Here turbostat re-schedules itself in-turn to each
    CPU so that its MSR reads will always be local.
    This replaces the 10 "Function Call Interrupts"
    with a single "Rescheduling interrupt" per sample
    per CPU.

    On an idle 32-CPU system, this shifts some residency from
    the shallow c1 state to the deeper c7 state:

    # ./turbostat.old -s
    %c0 GHz TSC %c1 %c3 %c6 %c7 %pc2 %pc3 %pc6 %pc7
    0.27 1.29 2.29 0.95 0.02 0.00 98.77 20.23 0.00 77.41 0.00
    0.25 1.24 2.29 0.98 0.02 0.00 98.75 20.34 0.03 77.74 0.00
    0.27 1.22 2.29 0.54 0.00 0.00 99.18 20.64 0.00 77.70 0.00
    0.26 1.22 2.29 1.22 0.00 0.00 98.52 20.22 0.00 77.74 0.00
    0.26 1.38 2.29 0.78 0.02 0.00 98.95 20.51 0.05 77.56 0.00
    ^C
    i# ./turbostat.new -s
    %c0 GHz TSC %c1 %c3 %c6 %c7 %pc2 %pc3 %pc6 %pc7
    0.27 1.20 2.29 0.24 0.01 0.00 99.49 20.58 0.00 78.20 0.00
    0.27 1.22 2.29 0.25 0.00 0.00 99.48 20.79 0.00 77.85 0.00
    0.27 1.20 2.29 0.25 0.02 0.00 99.46 20.71 0.03 77.89 0.00
    0.28 1.26 2.29 0.25 0.01 0.00 99.46 20.89 0.02 77.67 0.00
    0.27 1.20 2.29 0.24 0.01 0.00 99.48 20.65 0.00 78.04 0.00

    cc: Youquan Song
    Signed-off-by: Len Brown

    Len Brown
     
  • Pull cpupower updates from Dominik Brodowski.

    * git://git.kernel.org/pub/scm/linux/kernel/git/brodo/cpupowerutils:
    cpupower tools: add install target to the debug tools' makefiles
    cpupower tools: allow to build debug tools in a separate directory too
    cpupower: Fix broken mask values
    cpupower tool: allow to build in a separate directory
    cpupower tool: makefile: simplify the recipe used to generate cpupower.pot target
    cpupower tool: remove use of undefined variables from the clean target of the top makefile
    cpupower: Fix linking with --as-needed
    cpupower: Remove unneeded code and by that fix a memleak
    cpupower: Fix number of idle states
    cpupower: Unify cpupower-frequency-* manpages
    cpupower: Add cpupower-idle-info manpage
    cpupower: AMD fam14h/Ontario monitor can also be used by fam12h cpus
    cpupower: Better interface for accessing AMD pci registers

    Linus Torvalds
     
  • We were not noticing it because symbol__inc_addr_samples was erroneously
    dropping samples that hit the last byte in a function.

    Working on a fix for a problem reported by David Miller, Stephane
    Eranian and Sorin Dumitru, where addresses < sym->start were causing
    problems, I noticed this other problem.

    Cc: David Ahern
    Cc: David Miller
    Cc: Frederic Weisbecker
    Cc: Mike Galbraith
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Sorin Dumitru
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/n/tip-pqjaq4cr1xs2xen73pjhbav4@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • turbostat -s
    cuts down on the amount of output, per user request.

    also treak some output whitespace and the man page.

    Signed-off-by: Len Brown

    Len Brown
     

29 Mar, 2012

6 commits

  • The commit 89812fc81f8d ("perf tools: Add parser generator for events
    parsing") changed event parsing engine but missed the ref-cycles event.
    Add it.

    Signed-off-by: Namhyung Kim
    Acked-by: Jiri Olsa
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1333016517-10591-1-git-send-email-namhyung.kim@lge.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     
  • hugepage-mmap.c, hugepage-shm.c and map_hugetlb.c in Documentation/vm are
    simple pass/fail tests, It's better to promote them to
    tools/testing/selftests.

    Thanks suggestion of Andrew Morton about this. They all need firstly
    setting up proper nr_hugepages and hugepage-mmap need to mount hugetlbfs.
    So I add a shell script run_vmtests to do such work which will call the
    three test programs and check the return value of them.

    Changes to original code including below:
    a. add run_vmtests script
    b. return error when read_bytes mismatch with writed bytes.
    c. coding style fixes: do not use assignment in if condition

    [akpm@linux-foundation.org: build the targets before trying to execute them]
    [akpm@linux-foundation.org: Documentation/vm/ no longer has a Makefile. Fixes "make clean"]
    Signed-off-by: Dave Young
    Cc: Wu Fengguang
    Cc: Christoph Lameter
    Cc: Pekka Enberg
    Cc: Frederic Weisbecker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Young
     
  • We have tools/vm/ folder for vm tools, so move slabinfo.c from tools/slub/
    to tools/vm/

    Signed-off-by: Dave Young
    Cc: Wu Fengguang
    Acked-by: Christoph Lameter
    Cc: Pekka Enberg
    Cc: Frederic Weisbecker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Young
     
  • tools/ is the better place for vm tools which are used by many people.
    Moving them to tools also make them open to more users instead of hide in
    Documentation folder.

    This patch moves page-types.c to tools/vm/page-types.c. Also add a
    Makefile in tools/vm and fix two coding style problems: a) change const
    arrary to 'const char * const', b) change a space to tab for indent.

    Signed-off-by: Dave Young
    Acked-by: Wu Fengguang
    Cc: Christoph Lameter
    Cc: Pekka Enberg
    Cc: Frederic Weisbecker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Young
     
  • So a "make run_tests" will build the tests before trying to run them.

    Acked-by: Frederic Weisbecker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Remove the run_tests script and launch the selftests by calling "make
    run_tests" from the selftests top directory instead. This delegates to
    the Makefile in each selftest directory, where it is decided how to launch
    the local test.

    This removes the need to add each selftest directory to the now removed
    "run_tests" top script.

    Signed-off-by: Frederic Weisbecker
    Cc: Dave Young
    Cc: Christoph Lameter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Frederic Weisbecker
     

28 Mar, 2012

3 commits

  • Therefore, in symbol__get_source_line(), use map__rip_2objdump
    instead of calling map->unmap_ip() unconditionally.

    Link: http://lkml.kernel.org/r/20120325.162812.59519424882536855.davem@davemloft.net
    Signed-off-by: David S. Miller
    Signed-off-by: Arnaldo Carvalho de Melo

    David Miller
     
  • If DIE entries corresponding to declarations appear before definition
    entry, probe finder returns error instead of continuing to look further
    for a definition entry.

    This patch ensures we reach to the DIE entry corresponding to the
    definition and get the function address.

    V2: A simpler solution based on Masami's suggestion.

    Signed-off-by: Prashanth Nageshappa
    Acked-by: Masami Hiramatsu
    Cc: Ananth N Mavinakayanahalli
    Cc: Ingo Molnar
    Cc: Masami Hiramatsu
    Cc: Srikar Dronamraju
    Cc: Steven Rostedt
    Link: http://lkml.kernel.org/r/4F703FB9.9020407@linux.vnet.ibm.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Prashanth Nageshappa
     
  • Pull networking fixes from David Miller:
    1) Name string overrun fix in gianfar driver from Joe Perches.

    2) VHOST bug fixes from Michael S. Tsirkin and Nadav Har'El

    3) Fix dependencies on xt_LOG netfilter module, from Pablo Neira Ayuso.

    4) Fix RCU locking in xt_CT, also from Pablo Neira Ayuso.

    5) Add a parameter to skb_add_rx_frag() so we can fix the truesize
    adjustments in the drivers that use it. The individual drivers
    aren't fixed by this commit, but will be dealt with using follow-on
    commits. From Eric Dumazet.

    6) Add some device IDs to qmi_wwan driver, from Andrew Bird.

    7) Fix a potential rcu_read_lock() imbalancein rt6_fill_node(). From
    Eric Dumazet.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
    net: fix a potential rcu_read_lock() imbalance in rt6_fill_node()
    net: add a truesize parameter to skb_add_rx_frag()
    gianfar: Fix possible overrun and simplify interrupt name field creation
    USB: qmi_wwan: Add ZTE (Vodafone) K3570-Z and K3571-Z net interfaces
    USB: option: Ignore ZTE (Vodafone) K3570/71 net interfaces
    USB: qmi_wwan: Add ZTE (Vodafone) K3565-Z and K4505-Z net interfaces
    qlcnic: Bug fix for LRO
    netfilter: nf_conntrack: permanently attach timeout policy to conntrack
    netfilter: xt_CT: fix assignation of the generic protocol tracker
    netfilter: xt_CT: missing rcu_read_lock section in timeout assignment
    netfilter: cttimeout: fix dependency with l4protocol conntrack module
    netfilter: xt_LOG: use CONFIG_IP6_NF_IPTABLES instead of CONFIG_IPV6
    vhost: fix release path lockdep checks
    vhost: don't forget to schedule()
    tools/virtio: stub out strong barriers
    tools/virtio: add linux/hrtimer.h stub
    tools/virtio: add linux/module.h stub

    Linus Torvalds
     

27 Mar, 2012

4 commits

  • We should use "[unknown]" in this case, in concert with the code in
    _hist_entry__dso_snprintf().

    Otherwise we'll crash when recomputing the histogram column lengths in
    hists__calc_col_len().

    Signed-off-by: David S. Miller
    Link: http://lkml.kernel.org/r/20120325.162822.2267799792062571623.davem@davemloft.net
    Signed-off-by: Arnaldo Carvalho de Melo

    David Miller
     
  • That causes us to end up using the XPG version of basename which can
    modify it's argument.

    Signed-off-by: David S. Miller
    Link: http://lkml.kernel.org/r/20120327.000301.1122788061724345175.davem@davemloft.net
    Signed-off-by: Arnaldo Carvalho de Melo

    David Miller
     
  • In perf_event__parse_sample(), the array variable was not incremented
    by the amount of data used by the raw_data.

    That was okay until we added PERF_SAMPLE_BRANCH_STACK which depends on
    the array variable pointing to the beginning of the branch stack data.

    But that was not the case if branch stack was combined with raw mode
    sampling. That led to bogus branch stack addresses and count.

    The bug would show up with:
    $ perf record -R -b foo

    This patch fixes the problem by correctly moving the array pointer
    forward for RAW samples.

    Signed-off-by: Stephane Eranian
    Cc: David Ahern
    Cc: Ingo Molnar
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/20120317222317.GA8803@quad
    [ committer note: Fix also later submitted by Jiri Olsa ]
    Signed-off-by: Arnaldo Carvalho de Melo

    Stephane Eranian
     
  • The callchain stdio mode display was written using a sorted by symbol
    report. In this mode we have only one callchain root per hist so we
    forgot to handle cases where we have multiple callchain root, as in per
    dso sorting for example.

    Fix this by handling these roots like any other branch, with the hist as
    the parent.

    Before:

    1.97% libpthread-2.12.1.so
    |
    --- __libc_write
    create_worker
    bench_sched_messaging
    cmd_bench
    run_builtin
    main
    __libc_start_main

    |
    --- __libc_read
    create_worker
    bench_sched_messaging
    cmd_bench
    run_builtin
    main
    __libc_start_main

    After:

    1.97% libpthread-2.12.1.so
    |
    |--36.97%-- __libc_write
    | create_worker
    | bench_sched_messaging
    | cmd_bench
    | run_builtin
    | main
    | __libc_start_main
    |
    |--31.47%-- __libc_read
    | create_worker
    | bench_sched_messaging
    | cmd_bench
    | run_builtin
    | main
    | __libc_start_main
    ...

    Single roots keep their entry without percentage because they have
    the same overhead than the hist they refer to. ie: 100% in fractal
    mode and the percentage of the hist in graph mode:

    0.00% [k] reschedule_interrupt
    |
    --- default_idle
    amd_e400_idle
    cpu_idle
    start_secondary

    Reported-by: Benjamin Herrenschmidt
    Signed-off-by: Frederic Weisbecker
    Cc: Benjamin Herrenschmidt
    Cc: David Ahern
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Link: http://lkml.kernel.org/r/1332526010-15400-1-git-send-email-fweisbec@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Frederic Weisbecker
     

26 Mar, 2012

2 commits

  • When merged to Linus's latest tree the perf build is broken
    due to following change in lib/rbtree.c object:

    lib: reduce the use of module.h wherever possible
    commit 8bc3bcc93a2b4e47d5d410146f6546bca6171663
    Author: Paul Gortmaker
    Date: Wed Nov 16 21:29:17 2011 -0500

    We need to move module.h header into export.h.

    Signed-off-by: Jiri Olsa
    Cc: acme@redhat.com
    Cc: a.p.zijlstra@chello.nl
    Cc: paulus@samba.org
    Cc: cjashfor@linux.vnet.ibm.com
    Cc: fweisbec@gmail.com
    Link: http://lkml.kernel.org/r/1332753425-3299-1-git-send-email-jolsa@redhat.com
    Signed-off-by: Ingo Molnar

    Jiri Olsa
     
  • Merge reason: we need to fix a non-trivial merge conflict.

    Signed-off-by: Ingo Molnar

    Ingo Molnar
     

24 Mar, 2012

3 commits


23 Mar, 2012

4 commits

  • The perf diff command is broken since:
    perf hists: Threaded addition and sorting of entries
    commit 1980c2ebd7020d82c024b8c4046849b38e78e7da

    Several places were broken:
    - hists data need to be collected into opened sessions instead
    of into events
    - session's hists data need to be initialized properly when the
    session is created
    - hist_entry__pcnt_snprintf: the percentage and displacement
    buffer preparation must not use 'ret' because it's used
    as a pointer to the final buffer

    Signed-off-by: Jiri Olsa
    Cc: Corey Ashford
    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/20120322133726.GB1601@m.brq.redhat.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     
  • The event modifier needs to be applied only on the event definition it
    is attached to.

    The current state is that in case of multiple events definition (in
    single '-e' option, separated by ',') all will get modifier of the last
    one.

    Fixing this by adding separated list for each event definition, so the
    modifier is applied only to proper event(s). Added automated test to
    catch this, plus some other modifier tests.

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

    Jiri Olsa
     
  • - util/parse-events.c(parse_events_add_breakpoint)
    need to use unsigned long instead of u64, otherwise
    we get following gcc error on 32 bits:
    error: cast from pointer to integer of different size

    - util/header.c(print_event_desc)
    cannot retype to signed type, otherwise we get following
    gcc error on 32 bits:
    error: comparison between signed and unsigned integer expressions

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

    Jiri Olsa
     
  • We're freeing the token in any case so simplify the exit path by
    unifying it.

    No functional change.

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

    Borislav Petkov