Implement a new controller that allows us to control HugeTLB allocations. The extension allows to limit the HugeTLB usage per control group and enforces the controller limit during page fault. Since HugeTLB doesn't support page reclaim, enforcing the limit at page fault time implies that, the application will get SIGBUS signal if it tries to access HugeTLB pages beyond its limit. This requires the application to know beforehand how much HugeTLB pages it would require for its use. The charge/uncharge calls will be added to HugeTLB code in later patch. Support for cgroup removal will be added in later patches. [akpm@linux-foundation.org: s/CONFIG_CGROUP_HUGETLB_RES_CTLR/CONFIG_MEMCG_HUGETLB/g] [akpm@linux-foundation.org: s/CONFIG_MEMCG_HUGETLB/CONFIG_CGROUP_HUGETLB/g] Reviewed-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Cc: David Rientjes <rientjes@google.com> Cc: Hillf Danton <dhillf@gmail.com> Reviewed-by: Michal Hocko <mhocko@suse.cz> Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
80 lines
876 B
C
80 lines
876 B
C
/* Add subsystem definitions of the form SUBSYS(<name>) in this
|
|
* file. Surround each one by a line of comment markers so that
|
|
* patches don't collide
|
|
*/
|
|
|
|
/* */
|
|
|
|
/* */
|
|
|
|
#ifdef CONFIG_CPUSETS
|
|
SUBSYS(cpuset)
|
|
#endif
|
|
|
|
/* */
|
|
|
|
#ifdef CONFIG_CGROUP_DEBUG
|
|
SUBSYS(debug)
|
|
#endif
|
|
|
|
/* */
|
|
|
|
#ifdef CONFIG_CGROUP_SCHED
|
|
SUBSYS(cpu_cgroup)
|
|
#endif
|
|
|
|
/* */
|
|
|
|
#ifdef CONFIG_CGROUP_CPUACCT
|
|
SUBSYS(cpuacct)
|
|
#endif
|
|
|
|
/* */
|
|
|
|
#ifdef CONFIG_CGROUP_MEM_RES_CTLR
|
|
SUBSYS(mem_cgroup)
|
|
#endif
|
|
|
|
/* */
|
|
|
|
#ifdef CONFIG_CGROUP_DEVICE
|
|
SUBSYS(devices)
|
|
#endif
|
|
|
|
/* */
|
|
|
|
#ifdef CONFIG_CGROUP_FREEZER
|
|
SUBSYS(freezer)
|
|
#endif
|
|
|
|
/* */
|
|
|
|
#ifdef CONFIG_NET_CLS_CGROUP
|
|
SUBSYS(net_cls)
|
|
#endif
|
|
|
|
/* */
|
|
|
|
#ifdef CONFIG_BLK_CGROUP
|
|
SUBSYS(blkio)
|
|
#endif
|
|
|
|
/* */
|
|
|
|
#ifdef CONFIG_CGROUP_PERF
|
|
SUBSYS(perf)
|
|
#endif
|
|
|
|
/* */
|
|
|
|
#ifdef CONFIG_NETPRIO_CGROUP
|
|
SUBSYS(net_prio)
|
|
#endif
|
|
|
|
/* */
|
|
|
|
#ifdef CONFIG_CGROUP_HUGETLB
|
|
SUBSYS(hugetlb)
|
|
#endif
|
|
|
|
/* */
|