diff options
Diffstat (limited to 'init')
-rw-r--r-- | init/Kconfig | 116 | ||||
-rw-r--r-- | init/main.c | 18 |
2 files changed, 68 insertions, 66 deletions
diff --git a/init/Kconfig b/init/Kconfig index d95ca7cd5d45..089a230e5652 100644 --- a/init/Kconfig +++ b/init/Kconfig | |||
@@ -396,6 +396,22 @@ config RCU_FANOUT_EXACT | |||
396 | 396 | ||
397 | Say N if unsure. | 397 | Say N if unsure. |
398 | 398 | ||
399 | config RCU_FAST_NO_HZ | ||
400 | bool "Accelerate last non-dyntick-idle CPU's grace periods" | ||
401 | depends on TREE_RCU && NO_HZ && SMP | ||
402 | default n | ||
403 | help | ||
404 | This option causes RCU to attempt to accelerate grace periods | ||
405 | in order to allow the final CPU to enter dynticks-idle state | ||
406 | more quickly. On the other hand, this option increases the | ||
407 | overhead of the dynticks-idle checking, particularly on systems | ||
408 | with large numbers of CPUs. | ||
409 | |||
410 | Say Y if energy efficiency is critically important, particularly | ||
411 | if you have relatively few CPUs. | ||
412 | |||
413 | Say N if you are unsure. | ||
414 | |||
399 | config TREE_RCU_TRACE | 415 | config TREE_RCU_TRACE |
400 | def_bool RCU_TRACE && ( TREE_RCU || TREE_PREEMPT_RCU ) | 416 | def_bool RCU_TRACE && ( TREE_RCU || TREE_PREEMPT_RCU ) |
401 | select DEBUG_FS | 417 | select DEBUG_FS |
@@ -445,57 +461,6 @@ config LOG_BUF_SHIFT | |||
445 | config HAVE_UNSTABLE_SCHED_CLOCK | 461 | config HAVE_UNSTABLE_SCHED_CLOCK |
446 | bool | 462 | bool |
447 | 463 | ||
448 | config GROUP_SCHED | ||
449 | bool "Group CPU scheduler" | ||
450 | depends on EXPERIMENTAL | ||
451 | default n | ||
452 | help | ||
453 | This feature lets CPU scheduler recognize task groups and control CPU | ||
454 | bandwidth allocation to such task groups. | ||
455 | In order to create a group from arbitrary set of processes, use | ||
456 | CONFIG_CGROUPS. (See Control Group support.) | ||
457 | |||
458 | config FAIR_GROUP_SCHED | ||
459 | bool "Group scheduling for SCHED_OTHER" | ||
460 | depends on GROUP_SCHED | ||
461 | default GROUP_SCHED | ||
462 | |||
463 | config RT_GROUP_SCHED | ||
464 | bool "Group scheduling for SCHED_RR/FIFO" | ||
465 | depends on EXPERIMENTAL | ||
466 | depends on GROUP_SCHED | ||
467 | default n | ||
468 | help | ||
469 | This feature lets you explicitly allocate real CPU bandwidth | ||
470 | to users or control groups (depending on the "Basis for grouping tasks" | ||
471 | setting below. If enabled, it will also make it impossible to | ||
472 | schedule realtime tasks for non-root users until you allocate | ||
473 | realtime bandwidth for them. | ||
474 | See Documentation/scheduler/sched-rt-group.txt for more information. | ||
475 | |||
476 | choice | ||
477 | depends on GROUP_SCHED | ||
478 | prompt "Basis for grouping tasks" | ||
479 | default USER_SCHED | ||
480 | |||
481 | config USER_SCHED | ||
482 | bool "user id" | ||
483 | help | ||
484 | This option will choose userid as the basis for grouping | ||
485 | tasks, thus providing equal CPU bandwidth to each user. | ||
486 | |||
487 | config CGROUP_SCHED | ||
488 | bool "Control groups" | ||
489 | depends on CGROUPS | ||
490 | help | ||
491 | This option allows you to create arbitrary task groups | ||
492 | using the "cgroup" pseudo filesystem and control | ||
493 | the cpu bandwidth allocated to each such task group. | ||
494 | Refer to Documentation/cgroups/cgroups.txt for more | ||
495 | information on "cgroup" pseudo filesystem. | ||
496 | |||
497 | endchoice | ||
498 | |||
499 | menuconfig CGROUPS | 464 | menuconfig CGROUPS |
500 | boolean "Control Group support" | 465 | boolean "Control Group support" |
501 | help | 466 | help |
@@ -616,6 +581,36 @@ config CGROUP_MEM_RES_CTLR_SWAP | |||
616 | Now, memory usage of swap_cgroup is 2 bytes per entry. If swap page | 581 | Now, memory usage of swap_cgroup is 2 bytes per entry. If swap page |
617 | size is 4096bytes, 512k per 1Gbytes of swap. | 582 | size is 4096bytes, 512k per 1Gbytes of swap. |
618 | 583 | ||
584 | menuconfig CGROUP_SCHED | ||
585 | bool "Group CPU scheduler" | ||
586 | depends on EXPERIMENTAL && CGROUPS | ||
587 | default n | ||
588 | help | ||
589 | This feature lets CPU scheduler recognize task groups and control CPU | ||
590 | bandwidth allocation to such task groups. It uses cgroups to group | ||
591 | tasks. | ||
592 | |||
593 | if CGROUP_SCHED | ||
594 | config FAIR_GROUP_SCHED | ||
595 | bool "Group scheduling for SCHED_OTHER" | ||
596 | depends on CGROUP_SCHED | ||
597 | default CGROUP_SCHED | ||
598 | |||
599 | config RT_GROUP_SCHED | ||
600 | bool "Group scheduling for SCHED_RR/FIFO" | ||
601 | depends on EXPERIMENTAL | ||
602 | depends on CGROUP_SCHED | ||
603 | default n | ||
604 | help | ||
605 | This feature lets you explicitly allocate real CPU bandwidth | ||
606 | to users or control groups (depending on the "Basis for grouping tasks" | ||
607 | setting below. If enabled, it will also make it impossible to | ||
608 | schedule realtime tasks for non-root users until you allocate | ||
609 | realtime bandwidth for them. | ||
610 | See Documentation/scheduler/sched-rt-group.txt for more information. | ||
611 | |||
612 | endif #CGROUP_SCHED | ||
613 | |||
619 | endif # CGROUPS | 614 | endif # CGROUPS |
620 | 615 | ||
621 | config MM_OWNER | 616 | config MM_OWNER |
@@ -976,19 +971,6 @@ config PERF_EVENTS | |||
976 | 971 | ||
977 | Say Y if unsure. | 972 | Say Y if unsure. |
978 | 973 | ||
979 | config EVENT_PROFILE | ||
980 | bool "Tracepoint profiling sources" | ||
981 | depends on PERF_EVENTS && EVENT_TRACING | ||
982 | default y | ||
983 | help | ||
984 | Allow the use of tracepoints as software performance events. | ||
985 | |||
986 | When this is enabled, you can create perf events based on | ||
987 | tracepoints using PERF_TYPE_TRACEPOINT and the tracepoint ID | ||
988 | found in debugfs://tracing/events/*/*/id. (The -e/--events | ||
989 | option to the perf tool can parse and interpret symbolic | ||
990 | tracepoints, in the subsystem:tracepoint_name format.) | ||
991 | |||
992 | config PERF_COUNTERS | 974 | config PERF_COUNTERS |
993 | bool "Kernel performance counters (old config option)" | 975 | bool "Kernel performance counters (old config option)" |
994 | depends on HAVE_PERF_EVENTS | 976 | depends on HAVE_PERF_EVENTS |
@@ -1112,7 +1094,7 @@ config MMAP_ALLOW_UNINITIALIZED | |||
1112 | See Documentation/nommu-mmap.txt for more information. | 1094 | See Documentation/nommu-mmap.txt for more information. |
1113 | 1095 | ||
1114 | config PROFILING | 1096 | config PROFILING |
1115 | bool "Profiling support (EXPERIMENTAL)" | 1097 | bool "Profiling support" |
1116 | help | 1098 | help |
1117 | Say Y here to enable the extended profiling support mechanisms used | 1099 | Say Y here to enable the extended profiling support mechanisms used |
1118 | by profilers such as OProfile. | 1100 | by profilers such as OProfile. |
@@ -1262,4 +1244,8 @@ source "block/Kconfig" | |||
1262 | config PREEMPT_NOTIFIERS | 1244 | config PREEMPT_NOTIFIERS |
1263 | bool | 1245 | bool |
1264 | 1246 | ||
1247 | config PADATA | ||
1248 | depends on SMP | ||
1249 | bool | ||
1250 | |||
1265 | source "kernel/Kconfig.locks" | 1251 | source "kernel/Kconfig.locks" |
diff --git a/init/main.c b/init/main.c index 106e02d7ffa5..40aaa020cd68 100644 --- a/init/main.c +++ b/init/main.c | |||
@@ -149,6 +149,20 @@ static int __init nosmp(char *str) | |||
149 | 149 | ||
150 | early_param("nosmp", nosmp); | 150 | early_param("nosmp", nosmp); |
151 | 151 | ||
152 | /* this is hard limit */ | ||
153 | static int __init nrcpus(char *str) | ||
154 | { | ||
155 | int nr_cpus; | ||
156 | |||
157 | get_option(&str, &nr_cpus); | ||
158 | if (nr_cpus > 0 && nr_cpus < nr_cpu_ids) | ||
159 | nr_cpu_ids = nr_cpus; | ||
160 | |||
161 | return 0; | ||
162 | } | ||
163 | |||
164 | early_param("nr_cpus", nrcpus); | ||
165 | |||
152 | static int __init maxcpus(char *str) | 166 | static int __init maxcpus(char *str) |
153 | { | 167 | { |
154 | get_option(&str, &setup_max_cpus); | 168 | get_option(&str, &setup_max_cpus); |
@@ -416,7 +430,9 @@ static noinline void __init_refok rest_init(void) | |||
416 | kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND); | 430 | kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND); |
417 | numa_default_policy(); | 431 | numa_default_policy(); |
418 | pid = kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES); | 432 | pid = kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES); |
433 | rcu_read_lock(); | ||
419 | kthreadd_task = find_task_by_pid_ns(pid, &init_pid_ns); | 434 | kthreadd_task = find_task_by_pid_ns(pid, &init_pid_ns); |
435 | rcu_read_unlock(); | ||
420 | unlock_kernel(); | 436 | unlock_kernel(); |
421 | 437 | ||
422 | /* | 438 | /* |
@@ -584,6 +600,7 @@ asmlinkage void __init start_kernel(void) | |||
584 | local_irq_disable(); | 600 | local_irq_disable(); |
585 | } | 601 | } |
586 | rcu_init(); | 602 | rcu_init(); |
603 | radix_tree_init(); | ||
587 | /* init some links before init_ISA_irqs() */ | 604 | /* init some links before init_ISA_irqs() */ |
588 | early_irq_init(); | 605 | early_irq_init(); |
589 | init_IRQ(); | 606 | init_IRQ(); |
@@ -657,7 +674,6 @@ asmlinkage void __init start_kernel(void) | |||
657 | proc_caches_init(); | 674 | proc_caches_init(); |
658 | buffer_init(); | 675 | buffer_init(); |
659 | key_init(); | 676 | key_init(); |
660 | radix_tree_init(); | ||
661 | security_init(); | 677 | security_init(); |
662 | vfs_caches_init(totalram_pages); | 678 | vfs_caches_init(totalram_pages); |
663 | signals_init(); | 679 | signals_init(); |