diff options
| author | Jörg Sommer <joerg@alea.gnuu.de> | 2011-06-15 15:59:45 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-06-16 00:52:50 -0400 |
| commit | f6e07d38078e82a6aeaae00bb134591ef5ac1167 (patch) | |
| tree | 9ebadc1c483a5d96b3d33141a229397c4f594df5 | |
| parent | 06a2c45d6b4a7586eba7cd20dd656b08d8b63c2f (diff) | |
Documentation: update cgroupfs mount point
According to commit 676db4af0430 ("cgroupfs: create /sys/fs/cgroup to
mount cgroupfs on") the canonical mountpoint for the cgroup filesystem
is /sys/fs/cgroup. Hence, this should be used in the documentation.
Signed-off-by: Jörg Sommer <joerg@alea.gnuu.de>
Acked-by: Paul Menage <menage@google.com>
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
| -rw-r--r-- | Documentation/accounting/cgroupstats.txt | 4 | ||||
| -rw-r--r-- | Documentation/cgroups/blkio-controller.txt | 29 | ||||
| -rw-r--r-- | Documentation/cgroups/cgroups.txt | 58 | ||||
| -rw-r--r-- | Documentation/cgroups/cpuacct.txt | 21 | ||||
| -rw-r--r-- | Documentation/cgroups/cpusets.txt | 28 | ||||
| -rw-r--r-- | Documentation/cgroups/devices.txt | 6 | ||||
| -rw-r--r-- | Documentation/cgroups/freezer-subsystem.txt | 20 | ||||
| -rw-r--r-- | Documentation/cgroups/memory.txt | 17 | ||||
| -rw-r--r-- | Documentation/scheduler/sched-design-CFS.txt | 7 | ||||
| -rw-r--r-- | Documentation/scheduler/sched-rt-group.txt | 7 | ||||
| -rw-r--r-- | Documentation/vm/hwpoison.txt | 6 |
11 files changed, 109 insertions, 94 deletions
diff --git a/Documentation/accounting/cgroupstats.txt b/Documentation/accounting/cgroupstats.txt index eda40fd39ca..d16a9849e60 100644 --- a/Documentation/accounting/cgroupstats.txt +++ b/Documentation/accounting/cgroupstats.txt | |||
| @@ -21,7 +21,7 @@ information will not be available. | |||
| 21 | To extract cgroup statistics a utility very similar to getdelays.c | 21 | To extract cgroup statistics a utility very similar to getdelays.c |
| 22 | has been developed, the sample output of the utility is shown below | 22 | has been developed, the sample output of the utility is shown below |
| 23 | 23 | ||
| 24 | ~/balbir/cgroupstats # ./getdelays -C "/cgroup/a" | 24 | ~/balbir/cgroupstats # ./getdelays -C "/sys/fs/cgroup/a" |
| 25 | sleeping 1, blocked 0, running 1, stopped 0, uninterruptible 0 | 25 | sleeping 1, blocked 0, running 1, stopped 0, uninterruptible 0 |
| 26 | ~/balbir/cgroupstats # ./getdelays -C "/cgroup" | 26 | ~/balbir/cgroupstats # ./getdelays -C "/sys/fs/cgroup" |
| 27 | sleeping 155, blocked 0, running 1, stopped 0, uninterruptible 2 | 27 | sleeping 155, blocked 0, running 1, stopped 0, uninterruptible 2 |
diff --git a/Documentation/cgroups/blkio-controller.txt b/Documentation/cgroups/blkio-controller.txt index 465351d4cf8..b1b1bfadc9c 100644 --- a/Documentation/cgroups/blkio-controller.txt +++ b/Documentation/cgroups/blkio-controller.txt | |||
| @@ -28,16 +28,19 @@ cgroups. Here is what you can do. | |||
| 28 | - Enable group scheduling in CFQ | 28 | - Enable group scheduling in CFQ |
| 29 | CONFIG_CFQ_GROUP_IOSCHED=y | 29 | CONFIG_CFQ_GROUP_IOSCHED=y |
| 30 | 30 | ||
| 31 | - Compile and boot into kernel and mount IO controller (blkio). | 31 | - Compile and boot into kernel and mount IO controller (blkio); see |
| 32 | cgroups.txt, Why are cgroups needed?. | ||
| 32 | 33 | ||
| 33 | mount -t cgroup -o blkio none /cgroup | 34 | mount -t tmpfs cgroup_root /sys/fs/cgroup |
| 35 | mkdir /sys/fs/cgroup/blkio | ||
| 36 | mount -t cgroup -o blkio none /sys/fs/cgroup/blkio | ||
| 34 | 37 | ||
| 35 | - Create two cgroups | 38 | - Create two cgroups |
| 36 | mkdir -p /cgroup/test1/ /cgroup/test2 | 39 | mkdir -p /sys/fs/cgroup/blkio/test1/ /sys/fs/cgroup/blkio/test2 |
| 37 | 40 | ||
| 38 | - Set weights of group test1 and test2 | 41 | - Set weights of group test1 and test2 |
| 39 | echo 1000 > /cgroup/test1/blkio.weight | 42 | echo 1000 > /sys/fs/cgroup/blkio/test1/blkio.weight |
| 40 | echo 500 > /cgroup/test2/blkio.weight | 43 | echo 500 > /sys/fs/cgroup/blkio/test2/blkio.weight |
| 41 | 44 | ||
| 42 | - Create two same size files (say 512MB each) on same disk (file1, file2) and | 45 | - Create two same size files (say 512MB each) on same disk (file1, file2) and |
| 43 | launch two dd threads in different cgroup to read those files. | 46 | launch two dd threads in different cgroup to read those files. |
| @@ -46,12 +49,12 @@ cgroups. Here is what you can do. | |||
| 46 | echo 3 > /proc/sys/vm/drop_caches | 49 | echo 3 > /proc/sys/vm/drop_caches |
| 47 | 50 | ||
| 48 | dd if=/mnt/sdb/zerofile1 of=/dev/null & | 51 | dd if=/mnt/sdb/zerofile1 of=/dev/null & |
| 49 | echo $! > /cgroup/test1/tasks | 52 | echo $! > /sys/fs/cgroup/blkio/test1/tasks |
| 50 | cat /cgroup/test1/tasks | 53 | cat /sys/fs/cgroup/blkio/test1/tasks |
| 51 | 54 | ||
| 52 | dd if=/mnt/sdb/zerofile2 of=/dev/null & | 55 | dd if=/mnt/sdb/zerofile2 of=/dev/null & |
| 53 | echo $! > /cgroup/test2/tasks | 56 | echo $! > /sys/fs/cgroup/blkio/test2/tasks |
| 54 | cat /cgroup/test2/tasks | 57 | cat /sys/fs/cgroup/blkio/test2/tasks |
| 55 | 58 | ||
| 56 | - At macro level, first dd should finish first. To get more precise data, keep | 59 | - At macro level, first dd should finish first. To get more precise data, keep |
| 57 | on looking at (with the help of script), at blkio.disk_time and | 60 | on looking at (with the help of script), at blkio.disk_time and |
| @@ -68,13 +71,13 @@ Throttling/Upper Limit policy | |||
| 68 | - Enable throttling in block layer | 71 | - Enable throttling in block layer |
| 69 | CONFIG_BLK_DEV_THROTTLING=y | 72 | CONFIG_BLK_DEV_THROTTLING=y |
| 70 | 73 | ||
| 71 | - Mount blkio controller | 74 | - Mount blkio controller (see cgroups.txt, Why are cgroups needed?) |
| 72 | mount -t cgroup -o blkio none /cgroup/blkio | 75 | mount -t cgroup -o blkio none /sys/fs/cgroup/blkio |
| 73 | 76 | ||
| 74 | - Specify a bandwidth rate on particular device for root group. The format | 77 | - Specify a bandwidth rate on particular device for root group. The format |
| 75 | for policy is "<major>:<minor> <byes_per_second>". | 78 | for policy is "<major>:<minor> <byes_per_second>". |
| 76 | 79 | ||
| 77 | echo "8:16 1048576" > /cgroup/blkio/blkio.read_bps_device | 80 | echo "8:16 1048576" > /sys/fs/cgroup/blkio/blkio.read_bps_device |
| 78 | 81 | ||
| 79 | Above will put a limit of 1MB/second on reads happening for root group | 82 | Above will put a limit of 1MB/second on reads happening for root group |
| 80 | on device having major/minor number 8:16. | 83 | on device having major/minor number 8:16. |
| @@ -149,7 +152,7 @@ Proportional weight policy files | |||
| 149 | 152 | ||
| 150 | Following is the format. | 153 | Following is the format. |
| 151 | 154 | ||
| 152 | #echo dev_maj:dev_minor weight > /path/to/cgroup/blkio.weight_device | 155 | # echo dev_maj:dev_minor weight > blkio.weight_device |
| 153 | Configure weight=300 on /dev/sdb (8:16) in this cgroup | 156 | Configure weight=300 on /dev/sdb (8:16) in this cgroup |
| 154 | # echo 8:16 300 > blkio.weight_device | 157 | # echo 8:16 300 > blkio.weight_device |
| 155 | # cat blkio.weight_device | 158 | # cat blkio.weight_device |
diff --git a/Documentation/cgroups/cgroups.txt b/Documentation/cgroups/cgroups.txt index 0ed99f08f1f..15bca101ff6 100644 --- a/Documentation/cgroups/cgroups.txt +++ b/Documentation/cgroups/cgroups.txt | |||
| @@ -138,7 +138,7 @@ With the ability to classify tasks differently for different resources | |||
| 138 | the admin can easily set up a script which receives exec notifications | 138 | the admin can easily set up a script which receives exec notifications |
| 139 | and depending on who is launching the browser he can | 139 | and depending on who is launching the browser he can |
| 140 | 140 | ||
| 141 | # echo browser_pid > /mnt/<restype>/<userclass>/tasks | 141 | # echo browser_pid > /sys/fs/cgroup/<restype>/<userclass>/tasks |
| 142 | 142 | ||
| 143 | With only a single hierarchy, he now would potentially have to create | 143 | With only a single hierarchy, he now would potentially have to create |
| 144 | a separate cgroup for every browser launched and associate it with | 144 | a separate cgroup for every browser launched and associate it with |
| @@ -153,9 +153,9 @@ apps enhanced CPU power, | |||
| 153 | With ability to write pids directly to resource classes, it's just a | 153 | With ability to write pids directly to resource classes, it's just a |
| 154 | matter of : | 154 | matter of : |
| 155 | 155 | ||
| 156 | # echo pid > /mnt/network/<new_class>/tasks | 156 | # echo pid > /sys/fs/cgroup/network/<new_class>/tasks |
| 157 | (after some time) | 157 | (after some time) |
| 158 | # echo pid > /mnt/network/<orig_class>/tasks | 158 | # echo pid > /sys/fs/cgroup/network/<orig_class>/tasks |
| 159 | 159 | ||
| 160 | Without this ability, he would have to split the cgroup into | 160 | Without this ability, he would have to split the cgroup into |
| 161 | multiple separate ones and then associate the new cgroups with the | 161 | multiple separate ones and then associate the new cgroups with the |
| @@ -310,21 +310,24 @@ subsystem, this is the case for the cpuset. | |||
| 310 | To start a new job that is to be contained within a cgroup, using | 310 | To start a new job that is to be contained within a cgroup, using |
| 311 | the "cpuset" cgroup subsystem, the steps are something like: | 311 | the "cpuset" cgroup subsystem, the steps are something like: |
| 312 | 312 | ||
| 313 | 1) mkdir /dev/cgroup | 313 | 1) mount -t tmpfs cgroup_root /sys/fs/cgroup |
| 314 | 2) mount -t cgroup -ocpuset cpuset /dev/cgroup | 314 | 2) mkdir /sys/fs/cgroup/cpuset |
| 315 | 3) Create the new cgroup by doing mkdir's and write's (or echo's) in | 315 | 3) mount -t cgroup -ocpuset cpuset /sys/fs/cgroup/cpuset |
| 316 | the /dev/cgroup virtual file system. | 316 | 4) Create the new cgroup by doing mkdir's and write's (or echo's) in |
| 317 | 4) Start a task that will be the "founding father" of the new job. | 317 | the /sys/fs/cgroup virtual file system. |
| 318 | 5) Attach that task to the new cgroup by writing its pid to the | 318 | 5) Start a task that will be the "founding father" of the new job. |
| 319 | /dev/cgroup tasks file for that cgroup. | 319 | 6) Attach that task to the new cgroup by writing its pid to the |
| 320 | 6) fork, exec or clone the job tasks from this founding father task. | 320 | /sys/fs/cgroup/cpuset/tasks file for that cgroup. |
| 321 | 7) fork, exec or clone the job tasks from this founding father task. | ||
| 321 | 322 | ||
| 322 | For example, the following sequence of commands will setup a cgroup | 323 | For example, the following sequence of commands will setup a cgroup |
| 323 | named "Charlie", containing just CPUs 2 and 3, and Memory Node 1, | 324 | named "Charlie", containing just CPUs 2 and 3, and Memory Node 1, |
| 324 | and then start a subshell 'sh' in that cgroup: | 325 | and then start a subshell 'sh' in that cgroup: |
| 325 | 326 | ||
| 326 | mount -t cgroup cpuset -ocpuset /dev/cgroup | 327 | mount -t tmpfs cgroup_root /sys/fs/cgroup |
| 327 | cd /dev/cgroup | 328 | mkdir /sys/fs/cgroup/cpuset |
| 329 | mount -t cgroup cpuset -ocpuset /sys/fs/cgroup/cpuset | ||
| 330 | cd /sys/fs/cgroup/cpuset | ||
| 328 | mkdir Charlie | 331 | mkdir Charlie |
| 329 | cd Charlie | 332 | cd Charlie |
| 330 | /bin/echo 2-3 > cpuset.cpus | 333 | /bin/echo 2-3 > cpuset.cpus |
| @@ -345,7 +348,7 @@ Creating, modifying, using the cgroups can be done through the cgroup | |||
| 345 | virtual filesystem. | 348 | virtual filesystem. |
| 346 | 349 | ||
| 347 | To mount a cgroup hierarchy with all available subsystems, type: | 350 | To mount a cgroup hierarchy with all available subsystems, type: |
| 348 | # mount -t cgroup xxx /dev/cgroup | 351 | # mount -t cgroup xxx /sys/fs/cgroup |
| 349 | 352 | ||
| 350 | The "xxx" is not interpreted by the cgroup code, but will appear in | 353 | The "xxx" is not interpreted by the cgroup code, but will appear in |
| 351 | /proc/mounts so may be any useful identifying string that you like. | 354 | /proc/mounts so may be any useful identifying string that you like. |
| @@ -354,23 +357,32 @@ Note: Some subsystems do not work without some user input first. For instance, | |||
| 354 | if cpusets are enabled the user will have to populate the cpus and mems files | 357 | i |
