mirror of
https://github.com/opencontainers/runc.git
synced 2026-07-11 06:03:57 +08:00
c1adc99a20
In manager.Apply() method, a path to each subsystem is obtained by calling d.path(sys.Name()), and the sys.Apply() is called that does the same call to d.path() again. d.path() is an expensive call, so rather than to call it twice, let's reuse the result. This results the number of times we parse mountinfo during container start from 62 to 34 on my setup. Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
41 lines
723 B
Go
41 lines
723 B
Go
// +build linux
|
|
|
|
package fs
|
|
|
|
import (
|
|
"github.com/opencontainers/runc/libcontainer/cgroups"
|
|
"github.com/opencontainers/runc/libcontainer/configs"
|
|
)
|
|
|
|
type NameGroup struct {
|
|
GroupName string
|
|
Join bool
|
|
}
|
|
|
|
func (s *NameGroup) Name() string {
|
|
return s.GroupName
|
|
}
|
|
|
|
func (s *NameGroup) Apply(path string, d *cgroupData) error {
|
|
if s.Join {
|
|
// ignore errors if the named cgroup does not exist
|
|
join(path, d.pid)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (s *NameGroup) Set(path string, cgroup *configs.Cgroup) error {
|
|
return nil
|
|
}
|
|
|
|
func (s *NameGroup) Remove(d *cgroupData) error {
|
|
if s.Join {
|
|
removePath(d.path(s.GroupName))
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (s *NameGroup) GetStats(path string, stats *cgroups.Stats) error {
|
|
return nil
|
|
}
|