22 Sep, 2016

1 commit

  • Every so often, with a special config or a architecture change, running
    function or function_graph tracing can cause the machien to hard reboot,
    crash, or simply hard lockup. There's some functions in the function graph
    tracer that can not be traced otherwise it causes the function tracer to
    recurse before the recursion protection mechanisms are in place.

    When this occurs, using the dynamic ftrace featuer that allows limiting what
    actually gets traced can be used to bisect down to the problem function.
    This adds a script that helps with this process in the scripts/tracing
    directory, called ftrace-bisect.sh

    The set up is to read all the functions that can be traced from
    available_filter_functions into a file (full_file). Then run this script
    passing it the full_file and a "test_file" and "non_test_file", where the
    test_file will be add to set_ftrace_filter. What ftarce_bisect.sh does, is
    to copy half of the functions in full_file into the test_file and the other
    half into the non_test_file. This way, one can cat the test_file into the
    set_ftrace_filter functions and only test the functions that are in that
    file. If it works, then we run the process again after copying non_test_file
    to full_file and repeating the process. If the system crashed, then the bad
    function is in the test_file and after a reboot, the test_file becomes the
    new full_file in the next iteration.

    When we get down to a single function in the full_file, then
    ftrace_bisect.sh will report that as the bad function.

    Full documentation of how to use this simple script is within the script
    file itself.

    Link: http://lkml.kernel.org/r/20160920100716.131d3647@gandalf.local.home

    Signed-off-by: Steven Rostedt

    Steven Rostedt (Red Hat)
     

20 Aug, 2014

1 commit


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
     

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
     

01 Apr, 2009

1 commit


27 Oct, 2008

1 commit

  • This script parses a function trace and then produces a hierarchical
    view of the function call stack after processing it into a tree.

    Changes on V2 thanks to the trace sent by Steven:

    - Support both the files "trace" and "trace_pipe" (comments and space
    differences)

    - Correct the mini HOW-TO at the beginning.

    Signed-off-by: Frederic Weisbecker
    Acked-by: Steven Rostedt
    Signed-off-by: Ingo Molnar

    Frederic Weisbecker