22 Sep, 2009

4 commits

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (34 commits)
    trivial: fix typo in aic7xxx comment
    trivial: fix comment typo in drivers/ata/pata_hpt37x.c
    trivial: typo in kernel-parameters.txt
    trivial: fix typo in tracing documentation
    trivial: add __init/__exit macros in drivers/gpio/bt8xxgpio.c
    trivial: add __init macro/ fix of __exit macro location in ipmi_poweroff.c
    trivial: remove unnecessary semicolons
    trivial: Fix duplicated word "options" in comment
    trivial: kbuild: remove extraneous blank line after declaration of usage()
    trivial: improve help text for mm debug config options
    trivial: doc: hpfall: accept disk device to unload as argument
    trivial: doc: hpfall: reduce risk that hpfall can do harm
    trivial: SubmittingPatches: Fix reference to renumbered step
    trivial: fix typos "man[ae]g?ment" -> "management"
    trivial: media/video/cx88: add __init/__exit macros to cx88 drivers
    trivial: fix typo in CONFIG_DEBUG_FS in gcov doc
    trivial: fix missing printk space in amd_k7_smp_check
    trivial: fix typo s/ketymap/keymap/ in comment
    trivial: fix typo "to to" in multiple files
    trivial: fix typos in comments s/DGBU/DBGU/
    ...

    Linus Torvalds
     
  • Knowing tracepoints exist is not quite the same as knowing what they
    should be used for. This patch adds a document giving a basic description
    of the kmem tracepoints and why they might be useful to a performance
    analyst.

    Signed-off-by: Mel Gorman
    Cc: Rik van Riel
    Reviewed-by: Ingo Molnar
    Cc: Larry Woodman
    Cc: Peter Zijlstra
    Cc: Li Ming Chun
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • …lysis with tracepoints

    The documentation for ftrace, events and tracepoints is pretty extensive.
    Similarly, the perf PCL tools help files --help are there and the code
    simple enough to figure out what much of the switches mean. However,
    pulling the discrete bits and pieces together and translating that into
    "how do I solve a problem" requires a fair amount of imagination.

    This patch adds a simple document intended to get someone started on the

    Signed-off-by: Mel Gorman <mel@csn.ul.ie>
    Cc: Rik van Riel <riel@redhat.com>
    Reviewed-by: Ingo Molnar <mingo@elte.hu>
    Cc: Larry Woodman <lwoodman@redhat.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Li Ming Chun <macli@brc.ubc.ca>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

    Mel Gorman
     
  • This patch adds a simple post-processing script for the
    page-allocator-related trace events. It can be used to give an indication
    of who the most allocator-intensive processes are and how often the zone
    lock was taken during the tracing period. Example output looks like

    Process Pages Pages Pages Pages PCPU PCPU PCPU Fragment Fragment MigType Fragment Fragment Unknown
    details allocd allocd freed freed pages drains refills Fallback Causing Changed Severe Moderate
    under lock direct pagevec drain
    swapper-0 0 0 2 0 0 0 0 0 0 0 0 0 0
    Xorg-3770 10603 5952 3685 6978 5996 194 192 0 0 0 0 0 0
    modprobe-21397 51 0 0 86 31 1 0 0 0 0 0 0 0
    xchat-5370 228 93 0 0 0 0 3 0 0 0 0 0 0
    awesome-4317 32 32 0 0 0 0 32 0 0 0 0 0 0
    thinkfan-3863 2 0 1 1 0 0 0 0 0 0 0 0 0
    hald-addon-stor-3935 2 0 0 0 0 0 0 0 0 0 0 0 0
    akregator-4506 1 1 0 0 0 0 1 0 0 0 0 0 0
    xmms-14888 0 0 1 0 0 0 0 0 0 0 0 0 0
    khelper-12 1 0 0 0 0 0 0 0 0 0 0 0 0

    Optionally, the output can include information on the parent or aggregate
    based on process name instead of aggregating based on each pid. Example output
    including parent information and stripped out the PID looks something like;

    Process Pages Pages Pages Pages PCPU PCPU PCPU Fragment Fragment MigType Fragment Fragment Unknown
    details allocd allocd freed freed pages drains refills Fallback Causing Changed Severe Moderate
    under lock direct pagevec drain
    gdm-3756 :: Xorg-3770 3796 2976 99 3813 3224 104 98 0 0 0 0 0 0
    init-1 :: hald-3892 1 0 0 0 0 0 0 0 0 0 0 0 0
    git-21447 :: editor-21448 4 0 4 0 0 0 0 0 0 0 0 0 0

    This says that Xorg allocated 3796 pages and it's parent process is gdm
    with a PID of 3756;

    The postprocessor parses the text output of tracing. While there is a
    binary format, the expectation is that the binary output can be readily
    translated into text and post-processed offline. Obviously if the text
    format changes, the parser will break but the regular expression parser is
    fairly rudimentary so should be readily adjustable.

    Signed-off-by: Mel Gorman
    Cc: Rik van Riel
    Reviewed-by: Ingo Molnar
    Cc: Larry Woodman
    Cc: Peter Zijlstra
    Cc: Li Ming Chun
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     

21 Sep, 2009

2 commits


19 Sep, 2009

1 commit

  • This patch converts the existing power tracer into an event tracer,
    so that power events (C states and frequency changes) can be
    tracked via "perf".

    This also removes the perl script that was used to demo the tracer;
    its functionality is being replaced entirely with timechart.

    Signed-off-by: Arjan van de Ven
    Acked-by: Peter Zijlstra
    Cc: Paul Mackerras
    Cc: Frederic Weisbecker
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Arjan van de Ven
     

18 Sep, 2009

1 commit


16 Sep, 2009

1 commit


15 Sep, 2009

1 commit

  • While implementing function tracer and function tracer graph support,
    I found the exact arch implementation details to be a bit lacking
    (and my x86 foo ain't great). So after pounding out support for
    the Blackfin arch, start documenting the requirements/details.

    Signed-off-by: Mike Frysinger
    LKML-Reference:
    Acked-by: Frederic Weisbecker
    Signed-off-by: Steven Rostedt

    Mike Frysinger
     

13 Sep, 2009

1 commit


05 Sep, 2009

1 commit

  • The latency_trace file got removed a while back by commit
    886b5b73d71e4027d7dc6c14f5f7ab102201ea6b and has been replaced
    by the latency-format option.

    This patch fixes the documentation by reflecting this change.

    Changes since v1:
    - mention that the trace format is configurable through the
    latency-format option
    - Fix a couple mistakes related to the timestamps

    Signed-off-by: Albin Tonnerre
    Cc: Steven Rostedt
    LKML-Reference:
    Signed-off-by: Frederic Weisbecker

    Albin Tonnerre
     

26 Aug, 2009

1 commit

  • function_graph traces look like nested function calls, complete with
    braces denoting the start and end of functions. function-graph-fold.vim
    teaches vim how to fold these functions, to make it more convenient to
    browse them.

    To use, :source function-graph-fold.vim while viewing a function_graph
    trace, or use "view -S function-graph-fold.vim some-trace" to load it
    from the command-line together with a trace. You can then use the usual
    vim fold commands, such as "za", to open and close nested functions.
    While closed, a fold will show the total time taken for a call, as would
    normally appear on the line with the closing brace. Folded functions
    will not include finish_task_switch(), so folding should remain
    relatively sane even through a context switch.

    Note that this will almost certainly only work well with a single-CPU
    trace (e.g. trace-cmd report --cpu 1). It also takes some time to run
    (a few seconds for a large trace on my laptop). Nevertheless, I found
    it very handy to get an overview of a trace and then drill down on
    problematic calls.

    Signed-off-by: Josh Triplett
    LKML-Reference:
    Signed-off-by: Steven Rostedt

    Josh Triplett
     

08 Jul, 2009

1 commit


01 Jul, 2009

1 commit

  • We already have ftrace= boot option, and this adds a similar
    boot option for trace events, so allow trace events to be
    enabled at boot, for boot debugging purpose.

    Signed-off-by: Li Zefan
    Cc: Steven Rostedt
    Cc: Frederic Weisbecker
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Li Zefan
     

16 Jun, 2009

1 commit

  • Many developers use "/debug/" or "/debugfs/" or "/sys/kernel/debug/"
    directory name to mount debugfs filesystem for ftrace according to
    ./Documentation/tracers/ftrace.txt file.

    And, three directory names(ex:/debug/, /debugfs/, /sys/kernel/debug/) is
    existed in kernel source like ftrace, DRM, Wireless, Documentation,
    Network[sky2]files to mount debugfs filesystem.

    debugfs means debug filesystem for debugging easy to use by greg kroah
    hartman. "/sys/kernel/debug/" name is suitable as directory name
    of debugfs filesystem.
    - debugfs related reference: http://lwn.net/Articles/334546/

    Fix inconsistency of directory name to mount debugfs filesystem.

    * From Steven Rostedt
    - find_debugfs() and tracing_files() in this patch.

    Signed-off-by: GeunSik Lim
    Acked-by : Inaky Perez-Gonzalez
    Reviewed-by : Steven Rostedt
    Reviewed-by : James Smart
    CC: Jiri Kosina
    CC: David Airlie
    CC: Peter Osterlund
    CC: Ananth N Mavinakayanahalli
    CC: Anil S Keshavamurthy
    CC: Masami Hiramatsu
    Signed-off-by: Greg Kroah-Hartman

    GeunSik Lim
     

13 Jun, 2009

2 commits


11 Jun, 2009

2 commits

  • * 'tracing-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (244 commits)
    Revert "x86, bts: reenable ptrace branch trace support"
    tracing: do not translate event helper macros in print format
    ftrace/documentation: fix typo in function grapher name
    tracing/events: convert block trace points to TRACE_EVENT(), fix !CONFIG_BLOCK
    tracing: add protection around module events unload
    tracing: add trace_seq_vprint interface
    tracing: fix the block trace points print size
    tracing/events: convert block trace points to TRACE_EVENT()
    ring-buffer: fix ret in rb_add_time_stamp
    ring-buffer: pass in lockdep class key for reader_lock
    tracing: add annotation to what type of stack trace is recorded
    tracing: fix multiple use of __print_flags and __print_symbolic
    tracing/events: fix output format of user stack
    tracing/events: fix output format of kernel stack
    tracing/trace_stack: fix the number of entries in the header
    ring-buffer: discard timestamps that are at the start of the buffer
    ring-buffer: try to discard unneeded timestamps
    ring-buffer: fix bug in ring_buffer_discard_commit
    ftrace: do not profile functions when disabled
    tracing: make trace pipe recognize latency format flag
    ...

    Linus Torvalds
     
  • The function graph tracer is called just "function_graph" (no trailing
    "_tracer" needed).

    Signed-off-by: Mike Frysinger
    LKML-Reference:
    Signed-off-by: Steven Rostedt

    Mike Frysinger
     

29 May, 2009

1 commit

  • Fix typo about chart to map the kernel priority to user land priorities.

    * About sched_setscheduler(2)
    Processes scheduled under SCHED_FIFO or SCHED_RR
    can have a (user-space) static priority in the range 1 to 99.
    (reference: http://www.kernel.org/doc/man-pages/online/pages/
    man2/sched_setscheduler.2.html)

    * From: Steven Rostedt
    0 to 98 - maps to RT tasks 99 to 1 (SCHED_RR or SCHED_FIFO)

    99 - maps to internal kernel threads that want to be lower than RT tasks
    but higher than SCHED_OTHER tasks. Although I'm not sure if any
    kernel thread actually uses this. I'm not even sure how this can be
    set, because the internal sched_setscheduler function does not allow
    for it.

    100 to 139 - maps nice levels -20 to 19. These are not set via
    sched_setscheduler, but are set via the nice system call.

    140 - reserved for idle tasks.

    Signed-off-by: GeunSik Lim
    Acked-by: Steven Rostedt
    Signed-off-by: Peter Zijlstra
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    GeunSik Lim
     

19 May, 2009

1 commit

  • - fix some typos
    - document the difference between '>' and '>>'
    - document the 'enable' toggle
    - remove section "Defining an event-enabled tracepoint", since it's
    out-dated and sample/trace_events/ already serves this purpose.

    v2: add "Updated by Li Zefan"

    [ Impact: make documentation up-to-date ]

    Signed-off-by: Li Zefan
    Cc: Steven Rostedt
    Cc: Frederic Weisbecker
    Cc: "Theodore Ts'o"
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Li Zefan
     

12 Apr, 2009

2 commits


09 Apr, 2009

1 commit

  • Move kmemtrace.txt, tracepoints.txt, ftrace.txt and mmiotrace.txt to
    the new trace/ directory.

    I didnt find any references to those documents in both source
    files and documents, so no extra work needs to be done.

    Signed-off-by: Li Zefan
    Acked-by: Pekka Paalanen
    Cc: Steven Rostedt
    Cc: Frederic Weisbecker
    Cc: Mathieu Desnoyers
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Li Zefan