diff options
author | Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> | 2012-07-31 19:42:12 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-07-31 21:42:40 -0400 |
commit | 2bc64a2046975410505bb119bba32705892b9255 (patch) | |
tree | 5cc4967a4ddee90d8efa19e9ad233ee28b946eab /init | |
parent | c3f38a38715e9b4e7b1dda6840a1375f6894744d (diff) |
mm/hugetlb: add new HugeTLB cgroup
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>
Diffstat (limited to 'init')
-rw-r--r-- | init/Kconfig | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/init/Kconfig b/init/Kconfig index b3f55f15e107..72437760e90e 100644 --- a/init/Kconfig +++ b/init/Kconfig | |||
@@ -751,6 +751,21 @@ config CGROUP_MEM_RES_CTLR_KMEM | |||
751 | the kmem extension can use it to guarantee that no group of processes | 751 | the kmem extension can use it to guarantee that no group of processes |
752 | will ever exhaust kernel resources alone. | 752 | will ever exhaust kernel resources alone. |
753 | 753 | ||
754 | config CGROUP_HUGETLB | ||
755 | bool "HugeTLB Resource Controller for Control Groups" | ||
756 | depends on RESOURCE_COUNTERS && HUGETLB_PAGE && EXPERIMENTAL | ||
757 | default n | ||
758 | help | ||
759 | Provides a cgroup Resource Controller for HugeTLB pages. | ||
760 | When you enable this, you can put a per cgroup limit on HugeTLB usage. | ||
761 | The limit is enforced during page fault. Since HugeTLB doesn't | ||
762 | support page reclaim, enforcing the limit at page fault time implies | ||
763 | that, the application will get SIGBUS signal if it tries to access | ||
764 | HugeTLB pages beyond its limit. This requires the application to know | ||
765 | beforehand how much HugeTLB pages it would require for its use. The | ||
766 | control group is tracked in the third page lru pointer. This means | ||
767 | that we cannot use the controller with huge page less than 3 pages. | ||
768 | |||
754 | config CGROUP_PERF | 769 | config CGROUP_PERF |
755 | bool "Enable perf_event per-cpu per-container group (cgroup) monitoring" | 770 | bool "Enable perf_event per-cpu per-container group (cgroup) monitoring" |
756 | depends on PERF_EVENTS && CGROUPS | 771 | depends on PERF_EVENTS && CGROUPS |