KAMEZAWA Hiroyuki wrote: > I'm not sure wheter this kind of moving function from user to kernel > is welcomed or not.. The aim is to improve dbus performance by avoiding context switching as often. > It seems what you asked was an example of cgroup. > Maybe the simplest cgroup in the kernel is CONFIG_CGROUP_CPUACCT. > (kernel/sched.c) The next one is CGROUP_DEVICE (security/device_cgroup.c) > > Documentation under Documentation/cgroups/ is always taken care to be updated. > If you notice some description is unclear or obsolete, please report it. I found my problem with the example there, my machine has no RAM on node 0. Can I suggest that the example might be better if it uses node 0 ? or had a note saying that if you have no memory on node 1 that it will fail with: "/bin/echo: write error: No space left on device" ? Also it would be a good idea if the example pointed out that the parent to 'sh' is in the cgroup Charlie also. Heres a patch: >From e6e430d3c3e865f21dffc75ff090bb283a4f32a0 Mon Sep 17 00:00:00 2001 From: Ian Molton <ian.molton@xxxxxxxxxxxxxxx> Date: Tue, 22 Dec 2009 10:31:20 +0000 Subject: [PATCH] cgroup: Clarify documentation This patch clarifies the cgroup documentation, giving some info on why the example given may fail, and a little more detail on its expected behaviour. Signed-off-by: Ian Molton <ian.molton@xxxxxxxxxxxxxxx> --- Documentation/cgroups/cgroups.txt | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-) diff --git a/Documentation/cgroups/cgroups.txt b/Documentation/cgroups/cgroups.txt index 0b33bfe..8ac8615 100644 --- a/Documentation/cgroups/cgroups.txt +++ b/Documentation/cgroups/cgroups.txt @@ -309,7 +309,9 @@ the "cpuset" cgroup subsystem, the steps are something like: For example, the following sequence of commands will setup a cgroup named "Charlie", containing just CPUs 2 and 3, and Memory Node 1, -and then start a subshell 'sh' in that cgroup: +and then start a subshell 'sh' in that cgroup. Note that if you have no RAM +on node 1 or dont have 4 CPUs you will want to modify the example +accordingly: mount -t cgroup cpuset -ocpuset /dev/cgroup cd /dev/cgroup @@ -317,7 +319,12 @@ and then start a subshell 'sh' in that cgroup: cd Charlie /bin/echo 2-3 > cpuset.cpus /bin/echo 1 > cpuset.mems + # If you have no RAM on Node 0 the next command will return an error, eg. + # write error: No space left on device /bin/echo $$ > tasks + # The current shell is now in cgroup Charlie. You can check this with: + cat /proc/self/cgroup + # Now launch a subshell which should inherit the cgroup: sh # The subshell 'sh' is now running in cgroup Charlie # The next line should display '/Charlie' -- 1.6.5.7 _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/containers