[Devel] Re: Fw: cgroups and dbus

Ian Molton ian.molton at collabora.co.uk
Tue Dec 22 02:39:02 PST 2009


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 at collabora.co.uk>
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 at collabora.co.uk>
---
 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 at lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers




More information about the Devel mailing list