Skip to content

Commit d97d5e8

Browse files
author
Mrunal Patel
committed
Merge pull request opencontainers#445 from mrunalp/revert-58
Revert "cgroups: add pids controller support"
2 parents bc46574 + 4124ba9 commit d97d5e8

22 files changed

+200
-408
lines changed

libcontainer/cgroups/fs/apply_raw.go

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ var (
2323
&MemoryGroup{},
2424
&CpuGroup{},
2525
&CpuacctGroup{},
26-
&PidsGroup{},
2726
&BlkioGroup{},
2827
&HugetlbGroup{},
2928
&NetClsGroup{},
@@ -180,24 +179,11 @@ func (m *Manager) GetStats() (*cgroups.Stats, error) {
180179
}
181180

182181
func (m *Manager) Set(container *configs.Config) error {
183-
for _, sys := range subsystems {
184-
// We can't set this here, because after being applied, memcg doesn't
185-
// allow a non-empty cgroup from having its limits changed.
186-
if sys.Name() == "memory" {
182+
for name, path := range m.Paths {
183+
sys, err := subsystems.Get(name)
184+
if err == errSubsystemDoesNotExist || !cgroups.PathExists(path) {
187185
continue
188186
}
189-
190-
// Generate fake cgroup data.
191-
d, err := getCgroupData(container.Cgroups, -1)
192-
if err != nil {
193-
return err
194-
}
195-
// Get the path, but don't error out if the cgroup wasn't found.
196-
path, err := d.path(sys.Name())
197-
if err != nil && !cgroups.IsNotFound(err) {
198-
return err
199-
}
200-
201187
if err := sys.Set(path, container.Cgroups); err != nil {
202188
return err
203189
}

libcontainer/cgroups/fs/blkio.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,15 @@ func (s *BlkioGroup) Name() string {
2222
}
2323

2424
func (s *BlkioGroup) Apply(d *cgroupData) error {
25-
_, err := d.join("blkio")
25+
dir, err := d.join("blkio")
2626
if err != nil && !cgroups.IsNotFound(err) {
2727
return err
2828
}
29+
30+
if err := s.Set(dir, d.config); err != nil {
31+
return err
32+
}
33+
2934
return nil
3035
}
3136

libcontainer/cgroups/fs/cpu.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,15 @@ func (s *CpuGroup) Name() string {
2222
func (s *CpuGroup) Apply(d *cgroupData) error {
2323
// We always want to join the cpu group, to allow fair cpu scheduling
2424
// on a container basis
25-
_, err := d.join("cpu")
25+
dir, err := d.join("cpu")
2626
if err != nil && !cgroups.IsNotFound(err) {
2727
return err
2828
}
29+
30+
if err := s.Set(dir, d.config); err != nil {
31+
return err
32+
}
33+
2934
return nil
3035
}
3136

libcontainer/cgroups/fs/cpuset.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,11 @@ func (s *CpusetGroup) ApplyDir(dir string, cgroup *configs.Cgroup, pid int) erro
6363
if err := s.ensureParent(dir, root); err != nil {
6464
return err
6565
}
66+
// the default values inherit from parent cgroup are already set in
67+
// s.ensureParent, cover these if we have our own
68+
if err := s.Set(dir, cgroup); err != nil {
69+
return err
70+
}
6671
// because we are not using d.join we need to place the pid into the procs file
6772
// unlike the other subsystems
6873
if err := writeFile(dir, "cgroup.procs", strconv.Itoa(pid)); err != nil {

libcontainer/cgroups/fs/devices.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,17 @@ func (s *DevicesGroup) Name() string {
1515
}
1616

1717
func (s *DevicesGroup) Apply(d *cgroupData) error {
18-
_, err := d.join("devices")
18+
dir, err := d.join("devices")
1919
if err != nil {
2020
// We will return error even it's `not found` error, devices
2121
// cgroup is hard requirement for container's security.
2222
return err
2323
}
24+
25+
if err := s.Set(dir, d.config); err != nil {
26+
return err
27+
}
28+
2429
return nil
2530
}
2631

libcontainer/cgroups/fs/freezer.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,15 @@ func (s *FreezerGroup) Name() string {
1919
}
2020

2121
func (s *FreezerGroup) Apply(d *cgroupData) error {
22-
_, err := d.join("freezer")
22+
dir, err := d.join("freezer")
2323
if err != nil && !cgroups.IsNotFound(err) {
2424
return err
2525
}
26+
27+
if err := s.Set(dir, d.config); err != nil {
28+
return err
29+
}
30+
2631
return nil
2732
}
2833

libcontainer/cgroups/fs/hugetlb.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,15 @@ func (s *HugetlbGroup) Name() string {
1919
}
2020

2121
func (s *HugetlbGroup) Apply(d *cgroupData) error {
22-
_, err := d.join("hugetlb")
22+
dir, err := d.join("hugetlb")
2323
if err != nil && !cgroups.IsNotFound(err) {
2424
return err
2525
}
26+
27+
if err := s.Set(dir, d.config); err != nil {
28+
return err
29+
}
30+
2631
return nil
2732
}
2833

libcontainer/cgroups/fs/memory.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ func (s *MemoryGroup) Apply(d *cgroupData) (err error) {
3232
return err
3333
}
3434
}
35+
3536
if err := s.Set(path, d.config); err != nil {
3637
return err
3738
}

libcontainer/cgroups/fs/net_cls.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,15 @@ func (s *NetClsGroup) Name() string {
1515
}
1616

1717
func (s *NetClsGroup) Apply(d *cgroupData) error {
18-
_, err := d.join("net_cls")
18+
dir, err := d.join("net_cls")
1919
if err != nil && !cgroups.IsNotFound(err) {
2020
return err
2121
}
22+
23+
if err := s.Set(dir, d.config); err != nil {
24+
return err
25+
}
26+
2227
return nil
2328
}
2429

libcontainer/cgroups/fs/net_prio.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,15 @@ func (s *NetPrioGroup) Name() string {
1515
}
1616

1717
func (s *NetPrioGroup) Apply(d *cgroupData) error {
18-
_, err := d.join("net_prio")
18+
dir, err := d.join("net_prio")
1919
if err != nil && !cgroups.IsNotFound(err) {
2020
return err
2121
}
22+
23+
if err := s.Set(dir, d.config); err != nil {
24+
return err
25+
}
26+
2227
return nil
2328
}
2429

0 commit comments

Comments
 (0)