Merge pull request #271 from crosbymichael/always-set-cpuset

libcontainer: setup cpuset cgroup by default
This commit is contained in:
Mrunal Patel 2014-11-18 18:13:03 -08:00
commit 101dff031b
2 changed files with 14 additions and 18 deletions

View File

@ -14,17 +14,11 @@ type CpusetGroup struct {
}
func (s *CpusetGroup) Set(d *data) error {
// we don't want to join this cgroup unless it is specified
if d.c.CpusetCpus != "" {
dir, err := d.path("cpuset")
if err != nil {
return err
}
return s.SetDir(dir, d.c.CpusetCpus, d.pid)
dir, err := d.path("cpuset")
if err != nil {
return err
}
return nil
return s.SetDir(dir, d.c.CpusetCpus, d.pid)
}
func (s *CpusetGroup) Remove(d *data) error {
@ -46,8 +40,12 @@ func (s *CpusetGroup) SetDir(dir, value string, pid int) error {
return err
}
if err := writeFile(dir, "cpuset.cpus", value); err != nil {
return err
// If we don't use --cpuset, the default cpuset.cpus is set in
// s.ensureParent, otherwise, use the value we set
if value != "" {
if err := writeFile(dir, "cpuset.cpus", value); err != nil {
return err
}
}
return nil

View File

@ -137,16 +137,14 @@ func Apply(c *cgroups.Cgroup, pid int) (map[string]string, error) {
}
// we need to manually join the freezer cgroup in systemd because it does not currently support it
// via the dbus api
// we need to manually join the freezer and cpuset cgroup in systemd
// because it does not currently support it via the dbus api.
if err := joinFreezer(c, pid); err != nil {
return nil, err
}
if c.CpusetCpus != "" {
if err := joinCpuset(c, pid); err != nil {
return nil, err
}
if err := joinCpuset(c, pid); err != nil {
return nil, err
}
paths := make(map[string]string)