# $Id: Kconfig,v 1.7.2.2 2004/11/13 16:32:05 mikpe Exp $
# Performance-monitoring counters driver configuration
#

menu "Performance-monitoring counters support"

config PERFCTR
	tristate "Performance monitoring counters support"
	help
	  This driver provides access to the performance-monitoring counter
	  registers available in some (but not all) modern processors.
	  These special-purpose registers can be programmed to count low-level
	  performance-related events which occur during program execution,
	  such as cache misses, pipeline stalls, etc.

	  You can safely say Y here, even if you intend to run the kernel
	  on a processor without performance-monitoring counters.

	  You can also say M here to compile the driver as a module; the
	  module will be called `perfctr'.

config KPERFCTR
	bool
	depends on PERFCTR
	default y

config PERFCTR_DEBUG
	bool "Additional internal consistency checks"
	depends on PERFCTR
	help
	  This option enables additional internal consistency checking in
	  the perfctr driver. The scope of these checks is unspecified and
	  may vary between different versions of the driver.

	  Enabling this option will reduce performance, so say N unless you
	  are debugging the driver.

config PERFCTR_INIT_TESTS
	bool "Init-time hardware tests"
	depends on PERFCTR
	help
	  This option makes the driver perform additional hardware tests
	  during initialisation, and log their results in the kernel's
	  message buffer. For most supported processors, these tests simply
	  measure the runtime overheads of performance counter operations.

	  If you have a less well-known processor (one not listed in the
	  etc/costs/ directory in the user-space package), you should enable
	  this option and email the results to the perfctr developers.

	  If unsure, say N.

config PERFCTR_VIRTUAL
	bool "Virtual performance counters support"
	depends on PERFCTR
	help
	  The processor's performance-monitoring counters are special-purpose
	  global registers. This option adds support for virtual per-process
	  performance-monitoring counters which only run when the process
	  to which they belong is executing. This improves the accuracy of
	  performance measurements by reducing "noise" from other processes.

	  Say Y.

config PERFCTR_GLOBAL
	bool "Global performance counters support"
	depends on PERFCTR
	help
	  This option adds driver support for global-mode (system-wide)
	  performance-monitoring counters. In this mode, the driver allows
	  each performance-monitoring counter on each processor to be
	  controlled and read. The driver provides a sampling timer to
	  maintain 64-bit accumulated event counts.

	  Global-mode performance counters cannot be used if some process
	  is currently using virtual-mode performance counters, and vice versa.

	  Say Y.

config PERFCTR_INTERRUPT_SUPPORT
	prompt "Performance counter overflow interrupt support" if PPC
	bool
	depends on PERFCTR
	default y if X86_LOCAL_APIC

config PERFCTR_CPUS_FORBIDDEN_MASK
	bool
	depends on PERFCTR
	default y if X86 && SMP

endmenu
