diff options
author | David S. Miller <davem@davemloft.net> | 2009-09-24 18:13:11 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-09-24 18:13:11 -0400 |
commit | 8b3f6af86378d0a10ca2f1ded1da124aef13b62c (patch) | |
tree | de6ca90295730343c495be8d98be8efa322140ef /init | |
parent | 139d6065c83071d5f66cd013a274a43699f8e2c1 (diff) | |
parent | 94e0fb086fc5663c38bbc0fe86d698be8314f82f (diff) |
Merge branch 'master' of /home/davem/src/GIT/linux-2.6/
Conflicts:
drivers/staging/Kconfig
drivers/staging/Makefile
drivers/staging/cpc-usb/TODO
drivers/staging/cpc-usb/cpc-usb_drv.c
drivers/staging/cpc-usb/cpc.h
drivers/staging/cpc-usb/cpc_int.h
drivers/staging/cpc-usb/cpcusb.h
Diffstat (limited to 'init')
-rw-r--r-- | init/Kconfig | 63 | ||||
-rw-r--r-- | init/do_mounts.c | 2 | ||||
-rw-r--r-- | init/main.c | 38 |
3 files changed, 40 insertions, 63 deletions
diff --git a/init/Kconfig b/init/Kconfig index 8e8b76d8a272..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. | ||
932 | 934 | ||
933 | Performance counters are special hardware registers available | 935 | Software events are supported either build-in or via the |
934 | on most modern CPUs. These registers count the number of certain | 936 | use of generic tracepoints. |
937 | |||
938 | Most modern CPUs support performance events via performance | ||
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 |
@@ -988,14 +1006,6 @@ config SLUB_DEBUG | |||
988 | SLUB sysfs support. /sys/slab will not exist and there will be | 1006 | SLUB sysfs support. /sys/slab will not exist and there will be |
989 | no support for cache validation etc. | 1007 | no support for cache validation etc. |
990 | 1008 | ||
991 | config STRIP_ASM_SYMS | ||
992 | bool "Strip assembler-generated symbols during link" | ||
993 | default n | ||
994 | help | ||
995 | Strip internal assembler-generated symbols during a link (symbols | ||
996 | that look like '.Lxxx') so they don't pollute the output of | ||
997 | get_wchan() and suchlike. | ||
998 | |||
999 | config COMPAT_BRK | 1009 | config COMPAT_BRK |
1000 | bool "Disable heap randomization" | 1010 | bool "Disable heap randomization" |
1001 | default y | 1011 | default y |
@@ -1054,13 +1064,6 @@ config PROFILING | |||
1054 | config TRACEPOINTS | 1064 | config TRACEPOINTS |
1055 | bool | 1065 | bool |
1056 | 1066 | ||
1057 | config MARKERS | ||
1058 | bool "Activate markers" | ||
1059 | select TRACEPOINTS | ||
1060 | help | ||
1061 | Place an empty function call at each marker site. Can be | ||
1062 | dynamically changed for a probe function. | ||
1063 | |||
1064 | source "arch/Kconfig" | 1067 | source "arch/Kconfig" |
1065 | 1068 | ||
1066 | config SLOW_WORK | 1069 | config SLOW_WORK |
diff --git a/init/do_mounts.c b/init/do_mounts.c index 093f65915501..bb008d064c1a 100644 --- a/init/do_mounts.c +++ b/init/do_mounts.c | |||
@@ -415,7 +415,7 @@ void __init prepare_namespace(void) | |||
415 | 415 | ||
416 | mount_root(); | 416 | mount_root(); |
417 | out: | 417 | out: |
418 | devtmpfs_mount("dev"); | ||
418 | sys_mount(".", "/", NULL, MS_MOVE, NULL); | 419 | sys_mount(".", "/", NULL, MS_MOVE, NULL); |
419 | sys_chroot("."); | 420 | sys_chroot("."); |
420 | } | 421 | } |
421 | |||
diff --git a/init/main.c b/init/main.c index b34fd8e5edef..7449819a4805 100644 --- a/init/main.c +++ b/init/main.c | |||
@@ -18,7 +18,6 @@ | |||
18 | #include <linux/string.h> | 18 | #include <linux/string.h> |
19 | #include <linux/ctype.h> | 19 | #include <linux/ctype.h> |
20 | #include <linux/delay.h> | 20 | #include <linux/delay.h> |
21 | #include <linux/utsname.h> | ||
22 | #include <linux/ioport.h> | 21 | #include <linux/ioport.h> |
23 | #include <linux/init.h> | 22 | #include <linux/init.h> |
24 | #include <linux/smp_lock.h> | 23 | #include <linux/smp_lock.h> |
@@ -68,6 +67,8 @@ | |||
68 | #include <linux/async.h> | 67 | #include <linux/async.h> |
69 | #include <linux/kmemcheck.h> | 68 | #include <linux/kmemcheck.h> |
70 | #include <linux/kmemtrace.h> | 69 | #include <linux/kmemtrace.h> |
70 | #include <linux/sfi.h> | ||
71 | #include <linux/shmem_fs.h> | ||
71 | #include <trace/boot.h> | 72 | #include <trace/boot.h> |
72 | 73 | ||
73 | #include <asm/io.h> | 74 | #include <asm/io.h> |
@@ -353,17 +354,11 @@ static void __init smp_init(void) | |||
353 | #define smp_init() do { } while (0) | 354 | #define smp_init() do { } while (0) |
354 | #endif | 355 | #endif |
355 | 356 | ||
356 | static inline void setup_per_cpu_areas(void) { } | ||
357 | static inline void setup_nr_cpu_ids(void) { } | 357 | static inline void setup_nr_cpu_ids(void) { } |
358 | static inline void smp_prepare_cpus(unsigned int maxcpus) { } | 358 | static inline void smp_prepare_cpus(unsigned int maxcpus) { } |
359 | 359 | ||
360 | #else | 360 | #else |
361 | 361 | ||
362 | #if NR_CPUS > BITS_PER_LONG | ||
363 | cpumask_t cpu_mask_all __read_mostly = CPU_MASK_ALL; | ||
364 | EXPORT_SYMBOL(cpu_mask_all); | ||
365 | #endif | ||
366 | |||
367 | /* Setup number of possible processor ids */ | 362 | /* Setup number of possible processor ids */ |
368 | int nr_cpu_ids __read_mostly = NR_CPUS; | 363 | int nr_cpu_ids __read_mostly = NR_CPUS; |
369 | EXPORT_SYMBOL(nr_cpu_ids); | 364 | EXPORT_SYMBOL(nr_cpu_ids); |
@@ -374,29 +369,6 @@ static void __init setup_nr_cpu_ids(void) | |||
374 | nr_cpu_ids = find_last_bit(cpumask_bits(cpu_possible_mask),NR_CPUS) + 1; | 369 | nr_cpu_ids = find_last_bit(cpumask_bits(cpu_possible_mask),NR_CPUS) + 1; |
375 | } | 370 | } |
376 | 371 | ||
377 | #ifndef CONFIG_HAVE_SETUP_PER_CPU_AREA | ||
378 | unsigned long __per_cpu_offset[NR_CPUS] __read_mostly; | ||
379 | |||
380 | EXPORT_SYMBOL(__per_cpu_offset); | ||
381 | |||
382 | static void __init setup_per_cpu_areas(void) | ||
383 | { | ||
384 | unsigned long size, i; | ||
385 | char *ptr; | ||
386 | unsigned long nr_possible_cpus = num_possible_cpus(); | ||
387 | |||
388 | /* Copy section for each CPU (we discard the original) */ | ||
389 | size = ALIGN(PERCPU_ENOUGH_ROOM, PAGE_SIZE); | ||
390 | ptr = alloc_bootmem_pages(size * nr_possible_cpus); | ||
391 | |||
392 | for_each_possible_cpu(i) { | ||
393 | __per_cpu_offset[i] = ptr - __per_cpu_start; | ||
394 | memcpy(ptr, __per_cpu_start, __per_cpu_end - __per_cpu_start); | ||
395 | ptr += size; | ||
396 | } | ||
397 | } | ||
398 | #endif /* CONFIG_HAVE_SETUP_PER_CPU_AREA */ | ||
399 | |||
400 | /* Called by boot processor to activate the rest. */ | 372 | /* Called by boot processor to activate the rest. */ |
401 | static void __init smp_init(void) | 373 | static void __init smp_init(void) |
402 | { | 374 | { |
@@ -691,12 +663,12 @@ asmlinkage void __init start_kernel(void) | |||
691 | #endif | 663 | #endif |
692 | thread_info_cache_init(); | 664 | thread_info_cache_init(); |
693 | cred_init(); | 665 | cred_init(); |
694 | fork_init(num_physpages); | 666 | fork_init(totalram_pages); |
695 | proc_caches_init(); | 667 | proc_caches_init(); |
696 | buffer_init(); | 668 | buffer_init(); |
697 | key_init(); | 669 | key_init(); |
698 | security_init(); | 670 | security_init(); |
699 | vfs_caches_init(num_physpages); | 671 | vfs_caches_init(totalram_pages); |
700 | radix_tree_init(); | 672 | radix_tree_init(); |
701 | signals_init(); | 673 | signals_init(); |
702 | /* rootfs populating might need page-writeback */ | 674 | /* rootfs populating might need page-writeback */ |
@@ -712,6 +684,7 @@ asmlinkage void __init start_kernel(void) | |||
712 | check_bugs(); | 684 | check_bugs(); |
713 | 685 | ||
714 | acpi_early_init(); /* before LAPIC and SMP init */ | 686 | acpi_early_init(); /* before LAPIC and SMP init */ |
687 | sfi_init_late(); | ||
715 | 688 | ||
716 | ftrace_init(); | 689 | ftrace_init(); |
717 | 690 | ||
@@ -809,6 +782,7 @@ static void __init do_basic_setup(void) | |||
809 | init_workqueues(); | 782 | init_workqueues(); |
810 | cpuset_init_smp(); | 783 | cpuset_init_smp(); |
811 | usermodehelper_init(); | 784 | usermodehelper_init(); |
785 | init_tmpfs(); | ||
812 | driver_init(); | 786 | driver_init(); |
813 | init_irq_proc(); | 787 | init_irq_proc(); |
814 | do_ctors(); | 788 | do_ctors(); |