19 Aug, 2010

1 commit

  • Parts of the build process were generating files outside the specified
    O= directory, causing the build to fail on systems where the sources are
    in a read only file system.

    Fix it by using $(OUTPUT) on these locations.

    Also check that $(OUTPUT) actually exists, just like the top level
    kernel Makefile does. Otherwise the failure message emitted is
    completely misleading.

    Cc: Ingo Molnar
    Cc: Peter Zijlstra
    Cc: Paul Mackerras
    LKML-Reference:
    Signed-off-by: Kusanagi Kouichi
    Signed-off-by: Arnaldo Carvalho de Melo

    Kusanagi Kouichi
     

17 Aug, 2010

1 commit

  • POSIX sh does not specify the brace expansion, so fix it by replacing the
    global $(shell ...) lines quite at the top creating the output directories with
    real rules.

    Cc: Ingo Molnar
    Cc: Kusanagi Kouichi
    Cc: Peter Zijlstra
    Cc: Paul Mackerras
    LKML-Reference:
    Signed-off-by: Bernd Petrovitsch
    Signed-off-by: Arnaldo Carvalho de Melo

    Bernd Petrovitsch
     

16 Aug, 2010

1 commit

  • As part of ongoing effort to reduce the coupling with libnewt, browsers
    are being changed to return the exit key.

    The annotate browser is not returning it as expected by builtin-annotate
    when annotating multiple symbols (when 'perf annotate' is called without
    specifying a symbol name).

    Fix it by returning the exit key and also adding the RIGHT key as a exit
    key so that going to the next symbol in the TUI can work again.

    Cc: Frederic Weisbecker
    Cc: Peter Zijlstra
    LKML-Reference:
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

13 Aug, 2010

2 commits


11 Aug, 2010

13 commits


08 Aug, 2010

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6: (82 commits)
    firewire: core: add forgotten dummy driver methods, remove unused ones
    firewire: add isochronous multichannel reception
    firewire: core: small clarifications in core-cdev
    firewire: core: remove unused code
    firewire: ohci: release channel in error path
    firewire: ohci: use memory barriers to order descriptor updates
    tools/firewire: nosy-dump: increment program version
    tools/firewire: nosy-dump: remove unused code
    tools/firewire: nosy-dump: use linux/firewire-constants.h
    tools/firewire: nosy-dump: break up a deeply nested function
    tools/firewire: nosy-dump: make some symbols static or const
    tools/firewire: nosy-dump: change to kernel coding style
    tools/firewire: nosy-dump: work around segfault in decode_fcp
    tools/firewire: nosy-dump: fix it on x86-64
    tools/firewire: add userspace front-end of nosy
    firewire: nosy: note ioctls in ioctl-number.txt
    firewire: nosy: use generic printk macros
    firewire: nosy: endianess fixes and annotations
    firewire: nosy: annotate __user pointers and __iomem pointers
    firewire: nosy: fix device shutdown with active client
    ...

    Linus Torvalds
     

07 Aug, 2010

5 commits

  • As new TUI features get added the newt.c file is growing a lot and its
    name is growing misleading as an effort is being made to reduce the
    coupling with libnewt.

    Cc: Frederic Weisbecker
    Cc: Mike Galbraith
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    LKML-Reference:
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • So that building other browser based on structures linked via a linked
    list can be as easy as it is already for the ones linked via an rb_tree.

    Cc: Frederic Weisbecker
    Cc: Mike Galbraith
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    LKML-Reference:
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • Fix several memory leaks of pkgs and tevs in add_perf_probe_events().

    Reported-by: Arnaldo Carvalho de Melo
    Cc: Peter Zijlstra
    Cc: Paul Mackerras
    Cc: Ingo Molnar
    Cc: linux-kernel@vger.kernel.org
    LKML-Reference:

    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     
  • Copy type field if it is for raw parameters.
    Without this fix, perf probe drops the type if user passes it
    for raw parameters (e.g. %ax:u32 will be converted to %ax).

    Cc: Peter Zijlstra
    Cc: Paul Mackerras
    Cc: Ingo Molnar
    Cc: Frederic Weisbecker
    Signed-off-by: Masami Hiramatsu
    LKML-Reference:
    Signed-off-by: Arnaldo Carvalho de Melo

    Masami Hiramatsu
     
  • …git/tip/linux-2.6-tip

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (162 commits)
    tracing/kprobes: unregister_trace_probe needs to be called under mutex
    perf: expose event__process function
    perf events: Fix mmap offset determination
    perf, powerpc: fsl_emb: Restore setting perf_sample_data.period
    perf, powerpc: Convert the FSL driver to use local64_t
    perf tools: Don't keep unreferenced maps when unmaps are detected
    perf session: Invalidate last_match when removing threads from rb_tree
    perf session: Free the ref_reloc_sym memory at the right place
    x86,mmiotrace: Add support for tracing STOS instruction
    perf, sched migration: Librarize task states and event headers helpers
    perf, sched migration: Librarize the GUI class
    perf, sched migration: Make the GUI class client agnostic
    perf, sched migration: Make it vertically scrollable
    perf, sched migration: Parameterize cpu height and spacing
    perf, sched migration: Fix key bindings
    perf, sched migration: Ignore unhandled task states
    perf, sched migration: Handle ignored migrate out events
    perf: New migration tool overview
    tracing: Drop cpparg() macro
    perf: Use tracepoint_synchronize_unregister() to flush any pending tracepoint call
    ...

    Fix up trivial conflicts in Makefile and drivers/cpufreq/cpufreq.c

    Linus Torvalds
     

06 Aug, 2010

10 commits

  • When cmd_record exits the whole perf binary will exit right after,
    so no need to traverse lots of complex data structures freeing them.

    Sticked a comment for leak detectives and for a experiment with obstacks
    to be performed so that we can speed up freeing that memory.

    Cc: Frederic Weisbecker
    Cc: Mike Galbraith
    Cc: Nick Piggin
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    LKML-Reference:
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • Outdent the code following the if.

    The semantic match that finds this problem is as follows:
    (http://coccinelle.lip6.fr/)

    //
    @r disable braces4@
    position p1,p2;
    statement S1,S2;
    @@

    (
    if (...) { ... }
    |
    if (...) S1@p1 S2@p2
    )

    @script:python@
    p1 << r.p1;
    p2 << r.p2;
    @@

    if (p1[0].column == p2[0].column):
    cocci.print_main("branch",p1)
    cocci.print_secs("after",p2)
    //

    Cc: Peter Zijlstra
    Cc: Paul Mackerras
    Cc: Ingo Molnar
    LKML-Reference:
    Signed-off-by: Julia Lawall
    Signed-off-by: Arnaldo Carvalho de Melo

    Julia Lawall
     
  • Removed duplicated #includes util/trace-event.h and
    util/exec_cmd.h.
    Grouped and sorted all the #includes.

    Cc: Peter Zijlstra
    Cc: Paul Mackerras
    Cc: Ingo Molnar
    Cc: Tom Zanussi
    Cc: Frederic Weisbecker
    Cc: Thomas Gleixner
    LKML-Reference:
    Signed-off-by: Andrea Gelmini
    Signed-off-by: Arnaldo Carvalho de Melo

    Andrea Gelmini
     
  • Cc: Peter Zijlstra
    Cc: Paul Mackerras
    Cc: Ingo Molnar
    Cc: Masami Hiramatsu
    Cc: Frederic Weisbecker
    LKML-Reference:
    Signed-off-by: Andrea Gelmini
    Signed-off-by: Arnaldo Carvalho de Melo

    Andrea Gelmini
     
  • Only in verbose mode so as not to bloat struct symbol too much.

    The key used is '/', just like in vi, less, etc.

    More work is needed to allocate space on the symbol in a more clear way.

    This experiment shows how to do it for the hist_browser, in the main
    window.

    Cc: Frederic Weisbecker
    Cc: Mike Galbraith
    Cc: Peter Zijlstra
    Cc: Srikar Dronamraju
    Cc: Stephane Eranian
    LKML-Reference:
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • By using BITS_PER_LONG/4 as the width specifier.

    Cc: Frederic Weisbecker
    Cc: Mike Galbraith
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    LKML-Reference:
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • Otherwise entries will get chopped up on the window.

    Cc: Frederic Weisbecker
    Cc: Mike Galbraith
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    LKML-Reference:
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • LKML-Reference:
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • Press -> and then "Browse map details" to see the DSO long name as the title
    and the list of symbols in the DSO used by the map where the current symbol is.

    Cc: Frederic Weisbecker
    Cc: Mike Galbraith
    Cc: Peter Zijlstra
    Cc: Srikar Dronamraju
    Cc: Stephane Eranian
    LKML-Reference:
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • So that tools that wan't to act only on a subset of (weak, global,
    local) symbols can do so, such as the upcoming uprobes support in 'perf
    probe'.

    Cc: Frederic Weisbecker
    Cc: Mike Galbraith
    Cc: Peter Zijlstra
    Cc: Srikar Dronamraju
    Cc: Stephane Eranian
    LKML-Reference:
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     

05 Aug, 2010

1 commit

  • * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq:
    [CPUFREQ] Remove pointless printk from p4-clockmod.
    [CPUFREQ] Fix section mismatch for powernow_cpu_init in powernow-k7.c
    [CPUFREQ] Fix section mismatch for longhaul_cpu_init.
    [CPUFREQ] Fix section mismatch for longrun_cpu_init.
    [CPUFREQ] powernow-k8: Fix misleading variable naming
    [CPUFREQ] Convert pci_table entries to PCI_VDEVICE (if PCI_ANY_ID is used)
    [CPUFREQ] arch/x86/kernel/cpu/cpufreq: use for_each_pci_dev()
    [CPUFREQ] fix brace coding style issue.
    [CPUFREQ] x86 cpufreq: Make trace_power_frequency cpufreq driver independent
    [CPUFREQ] acpi-cpufreq: Fix CPU_ANY CPUFREQ_{PRE,POST}CHANGE notification
    [CPUFREQ] ondemand: don't synchronize sample rate unless multiple cpus present
    [CPUFREQ] unexport (un)lock_policy_rwsem* functions
    [CPUFREQ] ondemand: Refactor frequency increase code
    [CPUFREQ] powernow-k8: On load failure, remind the user to enable support in BIOS setup
    [CPUFREQ] powernow-k8: Limit Pstate transition latency check
    [CPUFREQ] Fix PCC driver error path
    [CPUFREQ] fix double freeing in error path of pcc-cpufreq
    [CPUFREQ] pcc driver should check for pcch method before calling _OSC
    [CPUFREQ] fix memory leak in cpufreq_add_dev
    [CPUFREQ] revert "[CPUFREQ] remove rwsem lock from CPUFREQ_GOV_STOP call (second call site)"

    Manually fix up non-data merge conflict introduced by new calling
    conventions for trace_power_start() in commit 6f4f2723d085 ("x86
    cpufreq: Make trace_power_frequency cpufreq driver independent"), which
    didn't update the intel_idle native hardware cpuidle driver.

    Linus Torvalds
     

04 Aug, 2010

3 commits

  • The event__process function is useful in processing /proc//maps. All of
    the functions that are called from event__process are defined in util/event.c.
    Though its defined in builtin-top.c, it could be reused for perf probe for
    uprobes. Hence moving it to util/event.c and exporting the function.

    LKML-Reference:
    Signed-off-by: Srikar Dronamraju
    Signed-off-by: Arnaldo Carvalho de Melo

    Srikar Dronamraju
     
  • Fix buggy-looking code which unnecessarily adjusts the file offset
    fields read from /proc/*/maps.

    This may have gone unnoticed since the offset is usually 0 (and the
    logic in util/symbol.c may work incorrectly for other offset values).

    Commiter note:

    This fixes a bug introduced in 4af8b35, there is no need to shift pgoff
    twice, the show_map_vma routine in fs/proc/task_mmu.c already converts
    it from the number of pages to the size in bytes, and that is what
    appears in /proc/PID/map.

    Cc: Nicolas Pitre
    Cc: Will Deacon
    LKML-Reference:
    Signed-off-by: Dave Martin
    Signed-off-by: Arnaldo Carvalho de Melo

    Dave Martin
     
  • and fix the broken case if a core's frequency depends on others.

    trace_power_frequency was only implemented in a rather ungeneric way
    in acpi-cpufreq driver's target() function only.
    -> Move the call to trace_power_frequency to
    cpufreq.c:cpufreq_notify_transition() where CPUFREQ_POSTCHANGE
    notifier is triggered.
    This will support power frequency tracing by all cpufreq drivers

    trace_power_frequency did not trace frequency changes correctly when
    the userspace governor was used or when CPU cores' frequency depend
    on each other.
    -> Moving this into the CPUFREQ_POSTCHANGE notifier and pass the cpu
    which gets switched automatically fixes this.

    Robert Schoene provided some important fixes on top of my initial
    quick shot version which are integrated in this patch:
    - Forgot some changes in power_end trace (TP_printk/variable names)
    - Variable dummy in power_end must now be cpu_id
    - Use static 64 bit variable instead of unsigned int for cpu_id

    Signed-off-by: Thomas Renninger
    CC: davej@redhat.com
    CC: arjan@infradead.org
    CC: linux-kernel@vger.kernel.org
    CC: robert.schoene@tu-dresden.de
    Tested-by: robert.schoene@tu-dresden.de
    Signed-off-by: Dave Jones

    Thomas Renninger
     

03 Aug, 2010

2 commits

  • For a file with:

    [root@emilia linux-2.6-tip]# perf report -D -fi allmodconfig-j32.perf.data | grep events:
    TOTAL events: 36933
    MMAP events: 9056
    LOST events: 0
    COMM events: 1702
    EXIT events: 1887
    THROTTLE events: 8
    UNTHROTTLE events: 8
    FORK events: 1894
    READ events: 0
    SAMPLE events: 22378
    ATTR events: 0
    EVENT_TYPE events: 0
    TRACING_DATA events: 0
    BUILD_ID events: 0
    [root@emilia linux-2.6-tip]#

    Testing with valgrind and making perf_session__delete() a nop, so that
    we can notice how many maps were actually deleted due to not having any
    samples on it:

    ==== HEAP SUMMARY:

    Before:

    ==10339== in use at exit: 8,909,997 bytes in 68,690 blocks
    ==10339== total heap usage: 78,696 allocs, 10,007 frees, 11,925,853 bytes allocated

    After:

    ==10506== in use at exit: 8,902,605 bytes in 68,606 blocks
    ==10506== total heap usage: 78,696 allocs, 10,091 frees, 11,925,853 bytes allocated

    I.e. just 84 detected unmaps with no hits out of 9056 for this workload,
    not much, but in some other long running workload this may save more
    bytes.

    Cc: Frederic Weisbecker
    Cc: Mike Galbraith
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    LKML-Reference:
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo
     
  • If we receive two PERF_RECORD_EXIT for the same thread, we can end up
    reusing session->last_match and trying to remove the thread twice from
    the rb_tree, causing a segfault, so invalidade last_match in
    perf_session__remove_thread.

    Receiving two PERF_RECORD_EXIT for the same thread is a bug, but its a
    harmless one if we make the tool more robust, like this patch does.

    Cc: Frederic Weisbecker
    Cc: Mike Galbraith
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    LKML-Reference:
    Signed-off-by: Arnaldo Carvalho de Melo

    Arnaldo Carvalho de Melo