diff options
Diffstat (limited to 'init')
-rw-r--r-- | init/Kconfig | 30 | ||||
-rw-r--r-- | init/main.c | 7 |
2 files changed, 37 insertions, 0 deletions
diff --git a/init/Kconfig b/init/Kconfig index f068071fcc5d..5a3ad5c20e2b 100644 --- a/init/Kconfig +++ b/init/Kconfig | |||
@@ -869,6 +869,36 @@ config AIO | |||
869 | by some high performance threaded applications. Disabling | 869 | by some high performance threaded applications. Disabling |
870 | this option saves about 7k. | 870 | this option saves about 7k. |
871 | 871 | ||
872 | config HAVE_PERF_COUNTERS | ||
873 | bool | ||
874 | |||
875 | menu "Performance Counters" | ||
876 | |||
877 | config PERF_COUNTERS | ||
878 | bool "Kernel Performance Counters" | ||
879 | depends on HAVE_PERF_COUNTERS | ||
880 | default y | ||
881 | select ANON_INODES | ||
882 | help | ||
883 | Enable kernel support for performance counter hardware. | ||
884 | |||
885 | Performance counters are special hardware registers available | ||
886 | on most modern CPUs. These registers count the number of certain | ||
887 | types of hw events: such as instructions executed, cachemisses | ||
888 | suffered, or branches mis-predicted - without slowing down the | ||
889 | kernel or applications. These registers can also trigger interrupts | ||
890 | when a threshold number of events have passed - and can thus be | ||
891 | used to profile the code that runs on that CPU. | ||
892 | |||
893 | The Linux Performance Counter subsystem provides an abstraction of | ||
894 | these hardware capabilities, available via a system call. It | ||
895 | provides per task and per CPU counters, and it provides event | ||
896 | capabilities on top of those. | ||
897 | |||
898 | Say Y if unsure. | ||
899 | |||
900 | endmenu | ||
901 | |||
872 | config VM_EVENT_COUNTERS | 902 | config VM_EVENT_COUNTERS |
873 | default y | 903 | default y |
874 | bool "Enable VM event counters for /proc/vmstat" if EMBEDDED | 904 | bool "Enable VM event counters for /proc/vmstat" if EMBEDDED |
diff --git a/init/main.c b/init/main.c index 844209453c02..bfe4fb0c9842 100644 --- a/init/main.c +++ b/init/main.c | |||
@@ -14,6 +14,7 @@ | |||
14 | #include <linux/proc_fs.h> | 14 | #include <linux/proc_fs.h> |
15 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
16 | #include <linux/syscalls.h> | 16 | #include <linux/syscalls.h> |
17 | #include <linux/stackprotector.h> | ||
17 | #include <linux/string.h> | 18 | #include <linux/string.h> |
18 | #include <linux/ctype.h> | 19 | #include <linux/ctype.h> |
19 | #include <linux/delay.h> | 20 | #include <linux/delay.h> |
@@ -539,6 +540,12 @@ asmlinkage void __init start_kernel(void) | |||
539 | */ | 540 | */ |
540 | lockdep_init(); | 541 | lockdep_init(); |
541 | debug_objects_early_init(); | 542 | debug_objects_early_init(); |
543 | |||
544 | /* | ||
545 | * Set up the the initial canary ASAP: | ||
546 | */ | ||
547 | boot_init_stack_canary(); | ||
548 | |||
542 | cgroup_init_early(); | 549 | cgroup_init_early(); |
543 | 550 | ||
544 | local_irq_disable(); | 551 | local_irq_disable(); |