aboutsummaryrefslogtreecommitdiffstats
path: root/init
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2008-12-04 14:12:29 -0500
committerIngo Molnar <mingo@elte.hu>2008-12-08 09:47:03 -0500
commit0793a61d4df8daeac6492dbf8d2f3e5713caae5e (patch)
treecc9603eb8daffeb7ace521c42a6a44db164ac551 /init
parentb5aa97e83bcc31a96374d18f5452d53909a16c90 (diff)
performance counters: core code
Implement the core kernel bits of Performance Counters subsystem. The Linux Performance Counter subsystem provides an abstraction of performance counter hardware capabilities. It provides per task and per CPU counters, and it provides event capabilities on top of those. Performance counters are accessed via special file descriptors. There's one file descriptor per virtual counter used. The special file descriptor is opened via the perf_counter_open() system call: int perf_counter_open(u32 hw_event_type, u32 hw_event_period, u32 record_type, pid_t pid, int cpu); The syscall returns the new fd. The fd can be used via the normal VFS system calls: read() can be used to read the counter, fcntl() can be used to set the blocking mode, etc. Multiple counters can be kept open at a time, and the counters can be poll()ed. See more details in Documentation/perf-counters.txt. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'init')
-rw-r--r--init/Kconfig29
1 files changed, 29 insertions, 0 deletions
diff --git a/init/Kconfig b/init/Kconfig
index f763762d544..78bede218f1 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -732,6 +732,35 @@ config AIO
732 by some high performance threaded applications. Disabling 732 by some high performance threaded applications. Disabling
733 this option saves about 7k. 733 this option saves about 7k.
734 734
735config HAVE_PERF_COUNTERS
736 bool
737
738menu "Performance Counters"
739
740config PERF_COUNTERS
741 bool "Kernel Performance Counters"
742 depends on HAVE_PERF_COUNTERS
743 default y
744 help
745 Enable kernel support for performance counter hardware.
746
747 Performance counters are special hardware registers available
748 on most modern CPUs. These registers count the number of certain
749 types of hw events: such as instructions executed, cachemisses
750 suffered, or branches mis-predicted - without slowing down the
751 kernel or applications. These registers can also trigger interrupts
752 when a threshold number of events have passed - and can thus be
753 used to profile the code that runs on that CPU.
754
755 The Linux Performance Counter subsystem provides an abstraction of
756 these hardware capabilities, available via a system call. It
757 provides per task and per CPU counters, and it provides event
758 capabilities on top of those.
759
760 Say Y if unsure.
761
762endmenu
763
735config VM_EVENT_COUNTERS 764config VM_EVENT_COUNTERS
736 default y 765 default y
737 bool "Enable VM event counters for /proc/vmstat" if EMBEDDED 766 bool "Enable VM event counters for /proc/vmstat" if EMBEDDED