Only show global warnings once

Upon each container create I'm seeing these warning **every** time in the
daemon output:
```
WARN[0002] Your kernel does not support swap memory limit
WARN[0002] Your kernel does not support cgroup rt period
WARN[0002] Your kernel does not support cgroup rt runtime
```
Showing them for each container.create() fills up the logs and encourages
people to ignore the output being generated - which means its less likely
they'll see real issues when they happen.  In short, I don't think we
need to show these warnings more than once, so let's only show these
warnings at daemon start-up time.

Signed-off-by: Doug Davis <dug@us.ibm.com>
(cherry picked from commit ff42a2eb41)
Signed-off-by: Victor Vieux <vieux@docker.com>
This commit is contained in:
Doug Davis 2016-11-29 07:38:07 -08:00 committed by Victor Vieux
parent e9779fd7df
commit b0970b629b
2 changed files with 6 additions and 6 deletions

View File

@ -1198,7 +1198,7 @@ func (daemon *Daemon) initCgroupsPath(path string) error {
} }
path = filepath.Join(root, path) path = filepath.Join(root, path)
sysinfo := sysinfo.New(false) sysinfo := sysinfo.New(true)
if err := os.MkdirAll(path, 0755); err != nil && !os.IsExist(err) { if err := os.MkdirAll(path, 0755); err != nil && !os.IsExist(err) {
return err return err
} }

View File

@ -82,23 +82,23 @@ func checkCgroupMem(cgMounts map[string]string, quiet bool) cgroupMemInfo {
swapLimit := cgroupEnabled(mountPoint, "memory.memsw.limit_in_bytes") swapLimit := cgroupEnabled(mountPoint, "memory.memsw.limit_in_bytes")
if !quiet && !swapLimit { if !quiet && !swapLimit {
logrus.Warn("Your kernel does not support swap memory limit.") logrus.Warn("Your kernel does not support swap memory limit")
} }
memoryReservation := cgroupEnabled(mountPoint, "memory.soft_limit_in_bytes") memoryReservation := cgroupEnabled(mountPoint, "memory.soft_limit_in_bytes")
if !quiet && !memoryReservation { if !quiet && !memoryReservation {
logrus.Warn("Your kernel does not support memory reservation.") logrus.Warn("Your kernel does not support memory reservation")
} }
oomKillDisable := cgroupEnabled(mountPoint, "memory.oom_control") oomKillDisable := cgroupEnabled(mountPoint, "memory.oom_control")
if !quiet && !oomKillDisable { if !quiet && !oomKillDisable {
logrus.Warn("Your kernel does not support oom control.") logrus.Warn("Your kernel does not support oom control")
} }
memorySwappiness := cgroupEnabled(mountPoint, "memory.swappiness") memorySwappiness := cgroupEnabled(mountPoint, "memory.swappiness")
if !quiet && !memorySwappiness { if !quiet && !memorySwappiness {
logrus.Warn("Your kernel does not support memory swappiness.") logrus.Warn("Your kernel does not support memory swappiness")
} }
kernelMemory := cgroupEnabled(mountPoint, "memory.kmem.limit_in_bytes") kernelMemory := cgroupEnabled(mountPoint, "memory.kmem.limit_in_bytes")
if !quiet && !kernelMemory { if !quiet && !kernelMemory {
logrus.Warn("Your kernel does not support kernel memory limit.") logrus.Warn("Your kernel does not support kernel memory limit")
} }
return cgroupMemInfo{ return cgroupMemInfo{