diff options
Diffstat (limited to 'init')
-rw-r--r-- | init/Kconfig | 55 | ||||
-rw-r--r-- | init/main.c | 6 |
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 | ||
336 | endchoice | 337 | endchoice |
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 | ||
918 | config HAVE_PERF_COUNTERS | 919 | config 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 | ||
923 | menu "Performance Counters" | 924 | menu "Kernel Performance Events And Counters" |
924 | 925 | ||
925 | config PERF_COUNTERS | 926 | config 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 | ||
948 | config EVENT_PROFILE | 954 | config 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 | ||
967 | config 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 | |||
961 | endmenu | 979 | endmenu |
962 | 980 | ||
963 | config VM_EVENT_COUNTERS | 981 | config VM_EVENT_COUNTERS |
@@ -1046,13 +1064,6 @@ config PROFILING | |||
1046 | config TRACEPOINTS | 1064 | config TRACEPOINTS |
1047 | bool | 1065 | bool |
1048 | 1066 | ||
1049 | config 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 | |||
1056 | source "arch/Kconfig" | 1067 | source "arch/Kconfig" |
1057 | 1068 | ||
1058 | config SLOW_WORK | 1069 | config 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 | ||