aboutsummaryrefslogtreecommitdiffstats
path: root/init
diff options
context:
space:
mode:
Diffstat (limited to 'init')
-rw-r--r--init/Kconfig55
-rw-r--r--init/main.c6
2 files changed, 37 insertions, 24 deletions
diff --git a/init/Kconfig b/init/Kconfig
index 85c24ff9484d..c7bac39d6c61 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -331,7 +331,8 @@ config TREE_PREEMPT_RCU
331 This option selects the RCU implementation that is 331 This option selects the RCU implementation that is
332 designed for very large SMP systems with hundreds or 332 designed for very large SMP systems with hundreds or
333 thousands of CPUs, but for which real-time response 333 thousands of CPUs, but for which real-time response
334 is also required. 334 is also required. It also scales down nicely to
335 smaller systems.
335 336
336endchoice 337endchoice
337 338
@@ -915,31 +916,36 @@ config AIO
915 by some high performance threaded applications. Disabling 916 by some high performance threaded applications. Disabling
916 this option saves about 7k. 917 this option saves about 7k.
917 918
918config HAVE_PERF_COUNTERS 919config HAVE_PERF_EVENTS
919 bool 920 bool
920 help 921 help
921 See tools/perf/design.txt for details. 922 See tools/perf/design.txt for details.
922 923
923menu "Performance Counters" 924menu "Kernel Performance Events And Counters"
924 925
925config PERF_COUNTERS 926config PERF_EVENTS
926 bool "Kernel Performance Counters" 927 bool "Kernel performance events and counters"
927 default y if PROFILING 928 default y if (PROFILING || PERF_COUNTERS)
928 depends on HAVE_PERF_COUNTERS 929 depends on HAVE_PERF_EVENTS
929 select ANON_INODES 930 select ANON_INODES
930 help 931 help
931 Enable kernel support for performance counter hardware. 932 Enable kernel support for various performance events provided
933 by software and hardware.
934
935 Software events are supported either build-in or via the
936 use of generic tracepoints.
932 937
933 Performance counters are special hardware registers available 938 Most modern CPUs support performance events via performance
934 on most modern CPUs. These registers count the number of certain 939 counter registers. These registers count the number of certain
935 types of hw events: such as instructions executed, cachemisses 940 types of hw events: such as instructions executed, cachemisses
936 suffered, or branches mis-predicted - without slowing down the 941 suffered, or branches mis-predicted - without slowing down the
937 kernel or applications. These registers can also trigger interrupts 942 kernel or applications. These registers can also trigger interrupts
938 when a threshold number of events have passed - and can thus be 943 when a threshold number of events have passed - and can thus be
939 used to profile the code that runs on that CPU. 944 used to profile the code that runs on that CPU.
940 945
941 The Linux Performance Counter subsystem provides an abstraction of 946 The Linux Performance Event subsystem provides an abstraction of
942 these hardware capabilities, available via a system call. It 947 these software and hardware cevent apabilities, available via a
948 system call and used by the "perf" utility in tools/perf/. It
943 provides per task and per CPU counters, and it provides event 949 provides per task and per CPU counters, and it provides event
944 capabilities on top of those. 950 capabilities on top of those.
945 951
@@ -947,17 +953,29 @@ config PERF_COUNTERS
947 953
948config EVENT_PROFILE 954config EVENT_PROFILE
949 bool "Tracepoint profiling sources" 955 bool "Tracepoint profiling sources"
950 depends on PERF_COUNTERS && EVENT_TRACING 956 depends on PERF_EVENTS && EVENT_TRACING
951 default y 957 default y
952 help 958 help
953 Allow the use of tracepoints as software performance counters. 959 Allow the use of tracepoints as software performance events.
954 960
955 When this is enabled, you can create perf counters based on 961 When this is enabled, you can create perf events based on
956 tracepoints using PERF_TYPE_TRACEPOINT and the tracepoint ID 962 tracepoints using PERF_TYPE_TRACEPOINT and the tracepoint ID
957 found in debugfs://tracing/events/*/*/id. (The -e/--events 963 found in debugfs://tracing/events/*/*/id. (The -e/--events
958 option to the perf tool can parse and interpret symbolic 964 option to the perf tool can parse and interpret symbolic
959 tracepoints, in the subsystem:tracepoint_name format.) 965 tracepoints, in the subsystem:tracepoint_name format.)
960 966
967config PERF_COUNTERS
968 bool "Kernel performance counters (old config option)"
969 depends on HAVE_PERF_EVENTS
970 help
971 This config has been obsoleted by the PERF_EVENTS
972 config option - please see that one for details.
973
974 It has no effect on the kernel whether you enable
975 it or not, it is a compatibility placeholder.
976
977 Say N if unsure.
978
961endmenu 979endmenu
962 980
963config VM_EVENT_COUNTERS 981config VM_EVENT_COUNTERS
@@ -1046,13 +1064,6 @@ config PROFILING
1046config TRACEPOINTS 1064config TRACEPOINTS
1047 bool 1065 bool
1048 1066
1049config MARKERS
1050 bool "Activate markers"
1051 select TRACEPOINTS
1052 help
1053 Place an empty function call at each marker site. Can be
1054 dynamically changed for a probe function.
1055
1056source "arch/Kconfig" 1067source "arch/Kconfig"
1057 1068
1058config SLOW_WORK 1069config SLOW_WORK
diff --git a/init/main.c b/init/main.c
index 34971becbd3c..6107223124e4 100644
--- a/init/main.c
+++ b/init/main.c
@@ -68,6 +68,7 @@
68#include <linux/async.h> 68#include <linux/async.h>
69#include <linux/kmemcheck.h> 69#include <linux/kmemcheck.h>
70#include <linux/kmemtrace.h> 70#include <linux/kmemtrace.h>
71#include <linux/sfi.h>
71#include <linux/shmem_fs.h> 72#include <linux/shmem_fs.h>
72#include <trace/boot.h> 73#include <trace/boot.h>
73 74
@@ -668,12 +669,12 @@ asmlinkage void __init start_kernel(void)
668#endif 669#endif
669 thread_info_cache_init(); 670 thread_info_cache_init();
670 cred_init(); 671 cred_init();
671 fork_init(num_physpages); 672 fork_init(totalram_pages);
672 proc_caches_init(); 673 proc_caches_init();
673 buffer_init(); 674 buffer_init();
674 key_init(); 675 key_init();
675 security_init(); 676 security_init();
676 vfs_caches_init(num_physpages); 677 vfs_caches_init(totalram_pages);
677 radix_tree_init(); 678 radix_tree_init();
678 signals_init(); 679 signals_init();
679 /* rootfs populating might need page-writeback */ 680 /* rootfs populating might need page-writeback */
@@ -689,6 +690,7 @@ asmlinkage void __init start_kernel(void)
689 check_bugs(); 690 check_bugs();
690 691
691 acpi_early_init(); /* before LAPIC and SMP init */ 692 acpi_early_init(); /* before LAPIC and SMP init */
693 sfi_init_late();
692 694
693 ftrace_init(); 695 ftrace_init();
694 696