TRACE-CMD-STOP(1)
=================

NAME
----
trace-cmd-stop - stop the Ftrace Linux kernel tracer from writing to the ring
buffer.

SYNOPSIS
--------
*trace-cmd stop* ['OPTIONS']

DESCRIPTION
-----------
The trace-cmd(1) stop is a complement to 'trace-cmd-start(1)'. This will
disable Ftrace from writing to the ring buffer. This does not stop the
overhead that the tracing may incur. Only the updating of the ring buffer is
disabled, the Ftrace tracing may still be inducing overhead.

After stopping the trace, the 'trace-cmd-extract(1)' may strip out the data
from the ring buffer and create a trace.dat file. The Ftrace pseudo file
system may also be examined.

To disable the tracing completely to remove the overhead it causes, use
'trace-cmd-reset(1)'. But after a reset is performed, the data that has been
recorded is lost.

OPTIONS
-------
*-B* 'buffer-name'::
    If the kernel supports multiple buffers, this will stop the trace for
    only the given buffer. It does not affect any other buffer. This may be
    used multiple times to specify different buffers. When this option is
    used, the top level instance will not be stopped unless *-t* is given.

*-a*::
    Stop the trace for all existing buffer instances. When this option
    is used, the top level instance will not be stopped unless *-t* is given.

*-t*::
    Stops the top level instance buffer. Without the *-B* or *-a* option this
    is the same as the default. But if *-B* or *-a* is used, this is
    required if the top level instance buffer should also be stopped.

SEE ALSO
--------
trace-cmd(1), trace-cmd-record(1), trace-cmd-report(1), trace-cmd-start(1),
trace-cmd-extract(1), trace-cmd-reset(1), trace-cmd-split(1),
trace-cmd-list(1), trace-cmd-listen(1)

AUTHOR
------
Written by Steven Rostedt, <rostedt@goodmis.org>

RESOURCES
---------
git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git

COPYING
-------
Copyright \(C) 2010 Red Hat, Inc. Free use of this software is granted under
the terms of the GNU Public License (GPL).

