Skip to content

Commit efd477f

Browse files
committed
Add cgroup type for cgroup v2
Add domain threaded and domain invalid cgroup type for cgroup v2. Signed-off-by: yaoyinnan <35447132+yaoyinnan@users.noreply.github.com>
1 parent d131035 commit efd477f

2 files changed

Lines changed: 18 additions & 5 deletions

File tree

cgroup2/manager.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -242,8 +242,10 @@ func setResources(path string, resources *Resources) error {
242242
type CgroupType string
243243

244244
const (
245-
Domain CgroupType = "domain"
246-
Threaded CgroupType = "threaded"
245+
Domain CgroupType = "domain"
246+
DomainThreaded CgroupType = "domain threaded"
247+
DomainInvalid CgroupType = "domain invalid"
248+
Threaded CgroupType = "threaded"
247249
)
248250

249251
func (c *Manager) GetType() (CgroupType, error) {

cgroup2/manager_test.go

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -283,20 +283,31 @@ func TestCgroupType(t *testing.T) {
283283
checkCgroupMode(t)
284284
manager, err := NewManager(defaultCgroup2Path, "/test-type", ToResources(&specs.LinuxResources{}))
285285
require.NoError(t, err)
286+
submanager, err := NewManager(defaultCgroup2Path, "/test-type/sub", ToResources(&specs.LinuxResources{}))
287+
require.NoError(t, err)
288+
286289
t.Cleanup(func() {
290+
_ = submanager.Delete()
287291
_ = manager.Delete()
288292
})
289293

294+
// Check initial type is domain
290295
cgType, err := manager.GetType()
291296
require.NoError(t, err)
292297
require.Equal(t, cgType, Domain)
293298

294-
// Swap to threaded
295-
require.NoError(t, manager.SetType(Threaded))
299+
// Swap sub cgroup to threaded
300+
require.NoError(t, submanager.SetType(Threaded))
296301

297-
cgType, err = manager.GetType()
302+
// Check sub cgroup type is threaded
303+
cgType, err = submanager.GetType()
298304
require.NoError(t, err)
299305
require.Equal(t, cgType, Threaded)
306+
307+
// Check parent cgroup type is domain threaded
308+
cgType, err = manager.GetType()
309+
require.NoError(t, err)
310+
require.Equal(t, cgType, DomainThreaded)
300311
}
301312

302313
func TestCgroupv2PSIStats(t *testing.T) {

0 commit comments

Comments
 (0)