Add support for blkio.weight_device

Signed-off-by: Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
This commit is contained in:
Ma Shimiao 2015-06-12 08:34:20 +08:00
parent d88f338f8c
commit ed4e505639
3 changed files with 29 additions and 3 deletions

15
blkiodev/blkiodev.go Normal file
View file

@ -0,0 +1,15 @@
package blkiodev
import (
"fmt"
)
// WeightDevice is a structure that hold device:weight pair
type WeightDevice struct {
Path string
Weight uint16
}
func (w *WeightDevice) String() string {
return fmt.Sprintf("%s:%d", w.Path, w.Weight)
}

View file

@ -60,6 +60,9 @@ type cgroupCPUInfo struct {
type cgroupBlkioInfo struct {
// Whether Block IO weight is supported or not
BlkioWeight bool
// Whether Block IO weight_device is supported or not
BlkioWeightDevice bool
}
type cgroupCpusetInfo struct {

View file

@ -117,11 +117,19 @@ func checkCgroupBlkioInfo(quiet bool) cgroupBlkioInfo {
return cgroupBlkioInfo{}
}
w := cgroupEnabled(mountPoint, "blkio.weight")
if !quiet && !w {
weight := cgroupEnabled(mountPoint, "blkio.weight")
if !quiet && !weight {
logrus.Warn("Your kernel does not support cgroup blkio weight")
}
return cgroupBlkioInfo{BlkioWeight: w}
weightDevice := cgroupEnabled(mountPoint, "blkio.weight_device")
if !quiet && !weightDevice {
logrus.Warn("Your kernel does not support cgroup blkio weight_device")
}
return cgroupBlkioInfo{
BlkioWeight: weight,
BlkioWeightDevice: weightDevice,
}
}
// checkCgroupCpusetInfo reads the cpuset information from the cpuset cgroup mount point.