Messages in this thread | | | Date | Thu, 13 May 2010 13:12:42 -0700 | Subject | Re: [PATCH/RFC] Have sane default values for cpusets | From | Paul Menage <> |
| |
On Wed, May 12, 2010 at 12:59 PM, Dhaval Giani <dhaval.giani@gmail.com> wrote: > On Wed, May 12, 2010 at 9:36 PM, Paul Menage <menage@google.com> wrote: >> On Wed, May 12, 2010 at 12:29 PM, Dhaval Giani <dhaval.giani@gmail.com> wrote: >>>> I think the idea is reasonable - the only way that I could see it >>>> breaking someone would be code that currently does something like: >>>> >>>> mkdir A >>>> mkdir B >>>> echo 1 > A/mem_exclusive >>>> echo 1 > B/mem_exclusive >>>> echo $mems_for_a > A/mems >>>> echo $mems_for_b > B/mems >>>> >>>> The attempts to set the mem_exclusive flags would fail, since A and B >>>> would both have all of the parent's mems. >>>> >>> >>> But would this not fail otherwise? >>> >> >> Assuming that mems_for_a and mems_for_b were disjoint, it would be >> fine currently. >> > > Ah my bad. I misread mems_for_a as taking the value from the parent. > You are right, that was a case I missed. > > Hmm, so how do we fix this? Any solutions? Not fixing the kernel > pushes the problem to the userspace, making it hard for tons of more > applications to use cgroups without jumping through a lot of hoops. >
Well, it's not clear to me whether the case I outlined is actually one that would bite people - it's likely a rare case.
Balbir's point that some apps might get upset by finding non-empty mems/cpus in a newly-created cgroup is more reasonable.
How about a per-cgroup cpuset.inherit_defaults file that defaults to false and is inherited from the parent. If the parent's file is set to true, then the mems/cpus are also inherited?
Then the sysadmin who's giving out user-controllable cpuset-based cgroups can just set it to true and the users don't need to worry about setting up the defaults.
Paul
| |