diff --git a/daemon/info_unix.go b/daemon/info_unix.go index 7a71ff28da..56c920990b 100644 --- a/daemon/info_unix.go +++ b/daemon/info_unix.go @@ -100,10 +100,14 @@ func (daemon *Daemon) fillPlatformInfo(v *types.Info, sysInfo *sysinfo.SysInfo) if !v.SwapLimit { v.Warnings = append(v.Warnings, "WARNING: No swap limit support") } - if !v.KernelMemoryTCP { + if !v.KernelMemoryTCP && v.CgroupVersion == "1" { + // kernel memory is not available for cgroup v2. + // Warning is not printed on cgroup v2, because there is no action user can take. v.Warnings = append(v.Warnings, "WARNING: No kernel memory TCP limit support") } - if !v.OomKillDisable { + if !v.OomKillDisable && v.CgroupVersion == "1" { + // oom kill disable is not available for cgroup v2. + // Warning is not printed on cgroup v2, because there is no action user can take. v.Warnings = append(v.Warnings, "WARNING: No oom kill disable support") } if !v.CPUCfsQuota { @@ -122,23 +126,42 @@ func (daemon *Daemon) fillPlatformInfo(v *types.Info, sysInfo *sysinfo.SysInfo) v.Warnings = append(v.Warnings, "WARNING: Support for cgroup v2 is experimental") } // TODO add fields for these options in types.Info - if !sysInfo.BlkioWeight { - v.Warnings = append(v.Warnings, "WARNING: No blkio weight support") + if !sysInfo.BlkioWeight && v.CgroupVersion == "2" { + // blkio weight is not available on cgroup v1 since kernel 5.0. + // Warning is not printed on cgroup v1, because there is no action user can take. + // On cgroup v2, blkio weight is implemented using io.weight + v.Warnings = append(v.Warnings, "WARNING: No io.weight support") } - if !sysInfo.BlkioWeightDevice { - v.Warnings = append(v.Warnings, "WARNING: No blkio weight_device support") + if !sysInfo.BlkioWeightDevice && v.CgroupVersion == "2" { + v.Warnings = append(v.Warnings, "WARNING: No io.weight (per device) support") } if !sysInfo.BlkioReadBpsDevice { - v.Warnings = append(v.Warnings, "WARNING: No blkio throttle.read_bps_device support") + if v.CgroupVersion == "2" { + v.Warnings = append(v.Warnings, "WARNING: No io.max (rbps) support") + } else { + v.Warnings = append(v.Warnings, "WARNING: No blkio throttle.read_bps_device support") + } } if !sysInfo.BlkioWriteBpsDevice { - v.Warnings = append(v.Warnings, "WARNING: No blkio throttle.write_bps_device support") + if v.CgroupVersion == "2" { + v.Warnings = append(v.Warnings, "WARNING: No io.max (wbps) support") + } else { + v.Warnings = append(v.Warnings, "WARNING: No blkio throttle.write_bps_device support") + } } if !sysInfo.BlkioReadIOpsDevice { - v.Warnings = append(v.Warnings, "WARNING: No blkio throttle.read_iops_device support") + if v.CgroupVersion == "2" { + v.Warnings = append(v.Warnings, "WARNING: No io.max (riops) support") + } else { + v.Warnings = append(v.Warnings, "WARNING: No blkio throttle.read_iops_device support") + } } if !sysInfo.BlkioWriteIOpsDevice { - v.Warnings = append(v.Warnings, "WARNING: No blkio throttle.write_iops_device support") + if v.CgroupVersion == "2" { + v.Warnings = append(v.Warnings, "WARNING: No io.max (wiops) support") + } else { + v.Warnings = append(v.Warnings, "WARNING: No blkio throttle.write_iops_device support") + } } } if !v.IPv4Forwarding {