aboutsummaryrefslogtreecommitdiffstats
path: root/init
diff options
context:
space:
mode:
Diffstat (limited to 'init')
-rw-r--r--init/Kconfig116
-rw-r--r--init/main.c18
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
399config 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
399config TREE_RCU_TRACE 415config 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
445config HAVE_UNSTABLE_SCHED_CLOCK 461config HAVE_UNSTABLE_SCHED_CLOCK
446 bool 462 bool
447 463
448config 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
458config FAIR_GROUP_SCHED
459 bool "Group scheduling for SCHED_OTHER"
460 depends on GROUP_SCHED
461 default GROUP_SCHED
462
463config 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
476choice
477 depends on GROUP_SCHED
478 prompt "Basis for grouping tasks"
479 default USER_SCHED
480
481config 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
487config 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
497endchoice
498
499menuconfig CGROUPS 464menuconfig 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
584menuconfig 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
593if CGROUP_SCHED
594config FAIR_GROUP_SCHED
595 bool "Group scheduling for SCHED_OTHER"
596 depends on CGROUP_SCHED
597 default CGROUP_SCHED
598
599config 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
612endif #CGROUP_SCHED
613
619endif # CGROUPS 614endif # CGROUPS
620 615
621config MM_OWNER 616config MM_OWNER
@@ -976,19 +971,6 @@ config PERF_EVENTS
976 971
977 Say Y if unsure. 972 Say Y if unsure.
978 973
979config 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
992config PERF_COUNTERS 974config 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
1114config PROFILING 1096config 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"
1262config PREEMPT_NOTIFIERS 1244config PREEMPT_NOTIFIERS
1263 bool 1245 bool
1264 1246
1247config PADATA
1248 depends on SMP
1249 bool
1250
1265source "kernel/Kconfig.locks" 1251source "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
150early_param("nosmp", nosmp); 150early_param("nosmp", nosmp);
151 151
152/* this is hard limit */
153static 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
164early_param("nr_cpus", nrcpus);
165
152static int __init maxcpus(char *str) 166static 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();