config LTT
	bool "Linux Trace Toolkit Instrumentation Support"
	select RELAYFS_FS
	select LTT_FACILITY_CORE
	depends on !X86_64 && EXPERIMENTAL
	select LTT_HEARTBEAT if MIPS
	select LTT_SYNTHETIC_TSC if MIPS
	default n
	help
	  It is possible for the kernel to log important events to a trace
	  facility. Doing so, enables the use of the generated traces in order
	  to reconstruct the dynamic behavior of the kernel, and hence the
	  whole system.

	  The tracing process contains 4 parts :
	      1) The logging of events by key parts of the kernel.
	      2) The tracer that keeps the events in a data buffer (uses
	         relayfs).
	      3) A trace daemon that interacts with the tracer and is
	         notified every time there is a certain quantity of data to
	         read from the tracer.
	      4) A trace event data decoder that reads the accumulated data
	         and formats it in a human-readable format.

	  If you say Y, the first component will be built into the kernel.

	  For more information on kernel tracing, the trace daemon or the event
	  decoder, please check the following address :
	       http://www.opersys.com/ltt
	  See also the experimental page of the project :
	       http://ltt.polymtl.ca

config LTT_TRACER
	tristate "Linux Trace Toolkit Tracer"
	select RELAYFS_FS
	depends on LTT
	default y
	help
	  If you enable this option, the Linux Trace Toolkit Tracer will be
	  either built in the kernel of as module.

	  Critical parts of the kernel will call upon the kernel tracing
	  function. The data is then recorded by the tracer if a trace daemon
	  is running in user-space and has issued a "start" command.

	  For more information on kernel tracing, the trace daemon or the event
	  decoder, please check the following address :
	       http://www.opersys.com/ltt
	  See also the experimental page of the project :
	       http://ltt.polymtl.ca

config LTT_ALIGNMENT
	bool "Align Linux Trace Toolkit Traces"
	depends on LTT
	default y
	help
	  This option enables dynamic alignment of data in buffers. The
	  alignment is made on the smallest size between architecture size
	  and the size of the value to be written.

	  Dynamically calculating the offset of the data has a performance cost,
	  but it is more efficient on some architectures (especially 64 bits) to
	  align data than to write it unaligned.

config LTT_HEARTBEAT
	bool "Activate Linux Trace Toolkit Heartbeat Timer"
	depends on LTT
	default n
	help
	  The Linux Trace Toolkit Heartbeat Timer fires at an interval small
	  enough to guarantee that the 32 bits truncated TSC won't overflow
	  between two timer execution.

config LTT_HEARTBEAT_EVENT
	bool "Write heartbeat event to shrink traces"
	depends on LTT_HEARTBEAT
	default y
	help
	  This option makes the heartbeat timer write an event in each tracefile
	  at an interval that is one tenth of the time it takes to overflow 32
	  bits at your CPU frequency.

	  If this option is not enabled, 64 bits fields must be used in each
	  event header to save the full TSC : it can make traces about 1/10
	  bigger. It is suggested that you enable this option to make more
	  compact traces.

config LTT_SYNTHETIC_TSC
	bool "Keep a synthetic cpu timestamp counter"
	depends on LTT_HEARTBEAT
	default n
	help
	  This option is only useful on archtecture lacking a 64 bits timestamp
	  counter : it generates a "synthetic" 64 bits timestamp by updating
	  the 32 MSB at each heartbeat atomically. See kernel/ltt-heartbeat.c
	  for details.

config LTT_USERSPACE_GENERIC
	bool "Allow tracing from userspace"
	depends on LTT
	default y
	help
	  This options allows processes to trace through the ltt_trace_generic
	  system call after they have registered their facilities with
	  ltt_register_generic.

config LTT_NETLINK_CONTROL
	tristate "Linux Trace Toolkit Netlink Controller"
	depends on LTT_TRACER
	default m
	help
	  If you enable this option, the Linux Trace Toolkit Netlink Controller
	  will be either built in the kernel of as module.

config LTT_STATEDUMP
	tristate "Linux Trace Toolkit State Dump"
	depends on LTT_TRACER
	default m
	help
	  If you enable this option, the Linux Trace Toolkit State Dump will
	  be either built in the kernel of as module.

	  This module saves the state of the running kernel at trace start
	  into the trace buffers along with the ongoing tracing information.

config LTT_FACILITY_CORE
	bool "Linux Trace Toolkit Core Facility"
	depends on LTT
	default y
	help
	  LTT core facility. Contains event definition for facility load/unload
	  and heartbeat.

config LTT_FACILITY_FS
	bool "Linux Trace Toolkit File System Facility"
	depends on LTT
	default y
	help
	  LTT file system facility. Contains event definition for filesystem
	  related events.

config LTT_FACILITY_FS_DATA
	bool "Linux Trace Toolkit File System Facility Data Log"
	depends on LTT
	default y
	help
	  LTT file system data log facility. Logs the beginning of data sent
	  through read and write system calls.

config LTT_FACILITY_IPC
	bool "Linux Trace Toolkit Inter-Process Communication Facility"
	depends on LTT
	default y
	help
	  LTT IPC facility. Contains event definition for inter-process
	  communication events.

config LTT_FACILITY_KERNEL
	bool "Linux Trace Toolkit Kernel Facility"
	depends on LTT
	default y
	help
	  LTT Kernel facility. Contains event definition for tasklet, irq,
	  system calls, traps, soft irq events.

config LTT_FACILITY_KERNEL_ARCH
	bool "Linux Trace Toolkit Kernel Arch Specific Facility"
	depends on LTT
	default y
	help
	  LTT Kernel facility. Contains event definition for system calls in an
	  enumeration that matches the architecture.

config LTT_FACILITY_LOCKING
	bool "Linux Trace Toolkit Locking Facility"
	depends on LTT
	default n
	help
	  LTT locking facility. Traces currently only interrupt save/restore and
	  disable/enable.

config LTT_FACILITY_MEMORY
	bool "Linux Trace Toolkit Memory Facility"
	depends on LTT
	default y
	help
	  LTT Memory facility. Contains event definition for memory management
	  related events.

config LTT_FACILITY_NETWORK
	bool "Linux Trace Toolkit Network Facility"
	depends on LTT
	default y
	help
	  LTT Network facility. Contains event definition for network subsystem.

config LTT_FACILITY_NETWORK_IP_INTERFACE
        bool "Linux Trace Toolkit Network IP Interface Facility"
        depends on LTT
        default y
        help
	  LTT Network IP Interface facility. Contains event definition for
	  network device state.

config LTT_FACILITY_PROCESS
	bool "Linux Trace Toolkit Process Facility"
	depends on LTT
	default y
	help
	  LTT Process facility. Contains event definition for process management
	  and scheduling.

config LTT_FACILITY_SOCKET
	bool "Linux Trace Toolkit Socket Facility"
	depends on LTT
	default y
	help
	  LTT Socket facility. Contains event definition for sockets.

config LTT_FACILITY_STATEDUMP
	bool "Linux Trace Toolkit Kernel State Dump Facility"
	depends on LTT
	default y
	help
	  LTT Kernel State Dump facility. Contains events for dumping kernel
	  state at the beginning of a trace.

config LTT_FACILITY_TIMER
	bool "Linux Trace Toolkit Timer Facility"
	depends on LTT
	default y
	help
	  LTT Timer facility. Contains events for timers.

config LTT_FACILITY_STACK_ARCH
	bool "Get complete process stack in system call (EXPERIMENTAL)"
	depends on LTT
	depends on X86
	default n
	help
	  Get complete process stack upon system call (architecture specific)
