Blame view

Documentation/cgroup-v1/hugetlb.txt 1.67 KB
585e27ea6   Aneesh Kumar K.V   hugetlb/cgroup: a...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
  HugeTLB Controller
  -------------------
  
  The HugeTLB controller 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.
  
  HugeTLB controller can be created by first mounting the cgroup filesystem.
  
  # mount -t cgroup -o hugetlb none /sys/fs/cgroup
  
  With the above step, the initial or the parent HugeTLB group becomes
  visible at /sys/fs/cgroup. At bootup, this group includes all the tasks in
  the system. /sys/fs/cgroup/tasks lists the tasks in this cgroup.
  
  New groups can be created under the parent group /sys/fs/cgroup.
  
  # cd /sys/fs/cgroup
  # mkdir g1
  # echo $$ > g1/tasks
  
  The above steps create a new group g1 and move the current shell
  process (bash) into it.
  
  Brief summary of control files
  
   hugetlb.<hugepagesize>.limit_in_bytes     # set/show limit of "hugepagesize" hugetlb usage
   hugetlb.<hugepagesize>.max_usage_in_bytes # show max "hugepagesize" hugetlb  usage recorded
71f87bee3   Johannes Weiner   mm: hugetlb_cgrou...
32
   hugetlb.<hugepagesize>.usage_in_bytes     # show current usage for "hugepagesize" hugetlb
585e27ea6   Aneesh Kumar K.V   hugetlb/cgroup: a...
33
34
35
36
37
38
39
40
41
42
43
44
45
   hugetlb.<hugepagesize>.failcnt		   # show the number of allocation failure due to HugeTLB limit
  
  For a system supporting two hugepage size (16M and 16G) the control
  files include:
  
  hugetlb.16GB.limit_in_bytes
  hugetlb.16GB.max_usage_in_bytes
  hugetlb.16GB.usage_in_bytes
  hugetlb.16GB.failcnt
  hugetlb.16MB.limit_in_bytes
  hugetlb.16MB.max_usage_in_bytes
  hugetlb.16MB.usage_in_bytes
  hugetlb.16MB.failcnt