Description of problem:
I've tried the example in chapter 2.1.1 of Resource Management Guide, Edition 1.0 and both the cgconfig.conf sample and sequence of shell commands are wrong.
You create two groups: daemons and daemons/sql. The daemons/sql is created explicitly as written in the config file. But the cgconfig service must create also daemons group - on the pseudofilesystem, 'sql' is just subdirectory of 'daemons', so 'daemons' must be created. Since the daemons group does not have set any cpuset.cpus, it is *not* possible to set cpuset.cpus in daemons/sql (because cpuset.cpus in daemons/sql must be subset of parent's cpuset.cpus and it is not set). Maybe cpuset controller is bad example, you won't get into this troubles if you use cpu controller instead (and cpu.shares as parameter - it's always set by kernel when a new group is created, unlike cpuset.cpus).
shell sequence problem:
You mount cpuset to /cgroup/cpuset, but one paragraph below you use 'mkdir -p /cgroup/cpu/daemons/sql'. It should be/cgroup/*cpuset*/daemons/sql.
And the same problem as above arises, you mkdir -p /cgroup/cpu/daemons/sql, which creates 'daemons' group, but you don't set its cpuset.cpus, so you can't set it in any of its subgroups, 'echo 0 > /$TMP/cgroup/cpuset/daemons/sql/cpuset.cpus' fails with echo: write error: Permission denied,
*** Bug 682002 has been marked as a duplicate of this bug. ***