--- 3429634c3a04a44539909088c54fafb68ee1d788 +++ 5a684ead765db5f3e4dccc7daca889271c8e968d @@ -23,19 +23,6 @@ config CONSTRUCTORS menu "General setup" -config SCHED_BFS - bool "BFS cpu scheduler" - ---help--- - The Brain Fuck CPU Scheduler for excellent interactivity and - responsiveness on the desktop and solid scalability on normal - hardware. Not recommended for 4096 CPUs. - - Currently incompatible with the Group CPU scheduler, and RCU TORTURE - TEST so these options are disabled. - - Say Y here. - default y - config EXPERIMENTAL bool "Prompt for development and/or incomplete code/drivers" ---help--- @@ -439,6 +426,57 @@ config LOG_BUF_SHIFT config HAVE_UNSTABLE_SCHED_CLOCK bool +config GROUP_SCHED + bool "Group CPU scheduler" + depends on EXPERIMENTAL + default n + help + This feature lets CPU scheduler recognize task groups and control CPU + bandwidth allocation to such task groups. + In order to create a group from arbitrary set of processes, use + CONFIG_CGROUPS. (See Control Group support.) + +config FAIR_GROUP_SCHED + bool "Group scheduling for SCHED_OTHER" + depends on GROUP_SCHED + default GROUP_SCHED + +config RT_GROUP_SCHED + bool "Group scheduling for SCHED_RR/FIFO" + depends on EXPERIMENTAL + depends on GROUP_SCHED + default n + help + This feature lets you explicitly allocate real CPU bandwidth + to users or control groups (depending on the "Basis for grouping tasks" + setting below. If enabled, it will also make it impossible to + schedule realtime tasks for non-root users until you allocate + realtime bandwidth for them. + See Documentation/scheduler/sched-rt-group.txt for more information. + +choice + depends on GROUP_SCHED + prompt "Basis for grouping tasks" + default USER_SCHED + +config USER_SCHED + bool "user id" + help + This option will choose userid as the basis for grouping + tasks, thus providing equal CPU bandwidth to each user. + +config CGROUP_SCHED + bool "Control groups" + depends on CGROUPS + help + This option allows you to create arbitrary task groups + using the "cgroup" pseudo filesystem and control + the cpu bandwidth allocated to each such task group. + Refer to Documentation/cgroups/cgroups.txt for more + information on "cgroup" pseudo filesystem. + +endchoice + menuconfig CGROUPS boolean "Control Group support" help @@ -506,7 +544,7 @@ config PROC_PID_CPUSET config CGROUP_CPUACCT bool "Simple CPU accounting cgroup subsystem" - depends on CGROUPS && !SCHED_BFS + depends on CGROUPS help Provides a simple Resource Controller for monitoring the total CPU consumed by the tasks in a cgroup. @@ -559,35 +597,6 @@ config CGROUP_MEM_RES_CTLR_SWAP Now, memory usage of swap_cgroup is 2 bytes per entry. If swap page size is 4096bytes, 512k per 1Gbytes of swap. -menuconfig CGROUP_SCHED - bool "Group CPU scheduler" - depends on EXPERIMENTAL && CGROUPS - default n - help - This feature lets CPU scheduler recognize task groups and control CPU - bandwidth allocation to such task groups. It uses cgroups to group - tasks. - -if CGROUP_SCHED -config FAIR_GROUP_SCHED - bool "Group scheduling for SCHED_OTHER" - depends on CGROUP_SCHED - default CGROUP_SCHED - -config RT_GROUP_SCHED - bool "Group scheduling for SCHED_RR/FIFO" - depends on EXPERIMENTAL - depends on CGROUP_SCHED - default n - help - This feature lets you explicitly allocate real CPU bandwidth - to task groups. If enabled, it will also make it impossible to - schedule realtime tasks for non-root users until you allocate - realtime bandwidth for them. - See Documentation/scheduler/sched-rt-group.txt for more information. - -endif #CGROUP_SCHED - endif # CGROUPS config SCHED_AUTOGROUP @@ -1068,7 +1077,6 @@ config SLAB per cpu and per node queues. config SLUB - depends on BROKEN || NUMA || !DISCONTIGMEM bool "SLUB (Unqueued Allocator)" help SLUB is a slab allocator that minimizes cache line usage