summaryrefslogtreecommitdiffstats
path: root/init
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2013-11-22 18:20:42 -0500
committerTejun Heo <tj@kernel.org>2013-11-22 18:20:42 -0500
commit79bd9814e5ec9a288d6599f53aeac0b548fdfe52 (patch)
tree3eea32952c52e0d32de841156c4b68e7b8278053 /init
parent5e01dc7b26d9f24f39abace5da98ccbd6a5ceb52 (diff)
cgroup, memcg: move cgroup_event implementation to memcg
cgroup_event is way over-designed and tries to build a generic flexible event mechanism into cgroup - fully customizable event specification for each user of the interface. This is utterly unnecessary and overboard especially in the light of the planned unified hierarchy as there's gonna be single agent. Simply generating events at fixed points, or if that's too restrictive, configureable cadence or single set of configureable points should be enough. Thankfully, memcg is the only user and gets to keep it. Replacing it with something simpler on sane_behavior is strongly recommended. This patch moves cgroup_event and "cgroup.event_control" implementation to mm/memcontrol.c. Clearing of events on cgroup destruction is moved from cgroup_destroy_locked() to mem_cgroup_css_offline(), which shouldn't make any noticeable difference. cgroup_css() and __file_cft() are exported to enable the move; however, this will soon be reverted once the event code is updated to be memcg specific. Note that "cgroup.event_control" will now exist only on the hierarchy with memcg attached to it. While this change is visible to userland, it is unlikely to be noticeable as the file has never been meaningful outside memcg. Aside from the above change, this is pure code relocation. v2: Per Li Zefan's comments, init/Kconfig updated accordingly and poll.h inclusion moved from cgroup.c to memcontrol.c. Signed-off-by: Tejun Heo <tj@kernel.org> Acked-by: Li Zefan <lizefan@huawei.com> Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Acked-by: Michal Hocko <mhocko@suse.cz> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Balbir Singh <bsingharora@gmail.com>
Diffstat (limited to 'init')
-rw-r--r--init/Kconfig3
1 files changed, 1 insertions, 2 deletions
diff --git a/init/Kconfig b/init/Kconfig
index 3ecd8a1178f1..3ca5b8110b0c 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -861,7 +861,6 @@ config NUMA_BALANCING
861 861
862menuconfig CGROUPS 862menuconfig CGROUPS
863 boolean "Control Group support" 863 boolean "Control Group support"
864 depends on EVENTFD
865 help 864 help
866 This option adds support for grouping sets of processes together, for 865 This option adds support for grouping sets of processes together, for
867 use with process control subsystems such as Cpusets, CFS, memory 866 use with process control subsystems such as Cpusets, CFS, memory
@@ -928,6 +927,7 @@ config MEMCG
928 bool "Memory Resource Controller for Control Groups" 927 bool "Memory Resource Controller for Control Groups"
929 depends on RESOURCE_COUNTERS 928 depends on RESOURCE_COUNTERS
930 select MM_OWNER 929 select MM_OWNER
930 select EVENTFD
931 help 931 help
932 Provides a memory resource controller that manages both anonymous 932 Provides a memory resource controller that manages both anonymous
933 memory and page cache. (See Documentation/cgroups/memory.txt) 933 memory and page cache. (See Documentation/cgroups/memory.txt)
@@ -1167,7 +1167,6 @@ config UIDGID_STRICT_TYPE_CHECKS
1167 1167
1168config SCHED_AUTOGROUP 1168config SCHED_AUTOGROUP
1169 bool "Automatic process group scheduling" 1169 bool "Automatic process group scheduling"
1170 select EVENTFD
1171 select CGROUPS 1170 select CGROUPS
1172 select CGROUP_SCHED 1171 select CGROUP_SCHED
1173 select FAIR_GROUP_SCHED 1172 select FAIR_GROUP_SCHED