summaryrefslogtreecommitdiff
path: root/vendor/github.com/containerd/cgroups/v2
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/containerd/cgroups/v2')
-rw-r--r--vendor/github.com/containerd/cgroups/v2/cpu.go83
-rw-r--r--vendor/github.com/containerd/cgroups/v2/devicefilter.go200
-rw-r--r--vendor/github.com/containerd/cgroups/v2/ebpf.go96
-rw-r--r--vendor/github.com/containerd/cgroups/v2/errors.go26
-rw-r--r--vendor/github.com/containerd/cgroups/v2/hugetlb.go37
-rw-r--r--vendor/github.com/containerd/cgroups/v2/io.go64
-rw-r--r--vendor/github.com/containerd/cgroups/v2/manager.go863
-rw-r--r--vendor/github.com/containerd/cgroups/v2/memory.go59
-rw-r--r--vendor/github.com/containerd/cgroups/v2/paths.go60
-rw-r--r--vendor/github.com/containerd/cgroups/v2/pids.go37
-rw-r--r--vendor/github.com/containerd/cgroups/v2/rdma.go46
-rw-r--r--vendor/github.com/containerd/cgroups/v2/state.go65
-rw-r--r--vendor/github.com/containerd/cgroups/v2/stats/doc.go17
-rw-r--r--vendor/github.com/containerd/cgroups/v2/stats/metrics.pb.go3992
-rw-r--r--vendor/github.com/containerd/cgroups/v2/stats/metrics.pb.txt539
-rw-r--r--vendor/github.com/containerd/cgroups/v2/stats/metrics.proto105
-rw-r--r--vendor/github.com/containerd/cgroups/v2/utils.go436
17 files changed, 0 insertions, 6725 deletions
diff --git a/vendor/github.com/containerd/cgroups/v2/cpu.go b/vendor/github.com/containerd/cgroups/v2/cpu.go
deleted file mode 100644
index 65282ff08..000000000
--- a/vendor/github.com/containerd/cgroups/v2/cpu.go
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- Copyright The containerd Authors.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-package v2
-
-import (
- "math"
- "strconv"
- "strings"
-)
-
-type CPUMax string
-
-func NewCPUMax(quota *int64, period *uint64) CPUMax {
- max := "max"
- if quota != nil {
- max = strconv.FormatInt(*quota, 10)
- }
- return CPUMax(strings.Join([]string{max, strconv.FormatUint(*period, 10)}, " "))
-}
-
-type CPU struct {
- Weight *uint64
- Max CPUMax
- Cpus string
- Mems string
-}
-
-func (c CPUMax) extractQuotaAndPeriod() (int64, uint64) {
- var (
- quota int64
- period uint64
- )
- values := strings.Split(string(c), " ")
- if values[0] == "max" {
- quota = math.MaxInt64
- } else {
- quota, _ = strconv.ParseInt(values[0], 10, 64)
- }
- period, _ = strconv.ParseUint(values[1], 10, 64)
- return quota, period
-}
-
-func (r *CPU) Values() (o []Value) {
- if r.Weight != nil {
- o = append(o, Value{
- filename: "cpu.weight",
- value: *r.Weight,
- })
- }
- if r.Max != "" {
- o = append(o, Value{
- filename: "cpu.max",
- value: r.Max,
- })
- }
- if r.Cpus != "" {
- o = append(o, Value{
- filename: "cpuset.cpus",
- value: r.Cpus,
- })
- }
- if r.Mems != "" {
- o = append(o, Value{
- filename: "cpuset.mems",
- value: r.Mems,
- })
- }
- return o
-}
diff --git a/vendor/github.com/containerd/cgroups/v2/devicefilter.go b/vendor/github.com/containerd/cgroups/v2/devicefilter.go
deleted file mode 100644
index 0882036c2..000000000
--- a/vendor/github.com/containerd/cgroups/v2/devicefilter.go
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- Copyright The containerd Authors.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-// Devicefilter containes eBPF device filter program
-//
-// The implementation is based on https://github.com/containers/crun/blob/0.10.2/src/libcrun/ebpf.c
-//
-// Although ebpf.c is originally licensed under LGPL-3.0-or-later, the author (Giuseppe Scrivano)
-// agreed to relicense the file in Apache License 2.0: https://github.com/opencontainers/runc/issues/2144#issuecomment-543116397
-//
-// This particular Go implementation based on runc version
-// https://github.com/opencontainers/runc/blob/master/libcontainer/cgroups/ebpf/devicefilter/devicefilter.go
-
-package v2
-
-import (
- "errors"
- "fmt"
- "math"
-
- "github.com/cilium/ebpf/asm"
- "github.com/opencontainers/runtime-spec/specs-go"
- "golang.org/x/sys/unix"
-)
-
-const (
- // license string format is same as kernel MODULE_LICENSE macro
- license = "Apache"
-)
-
-// DeviceFilter returns eBPF device filter program and its license string
-func DeviceFilter(devices []specs.LinuxDeviceCgroup) (asm.Instructions, string, error) {
- p := &program{}
- p.init()
- for i := len(devices) - 1; i >= 0; i-- {
- if err := p.appendDevice(devices[i]); err != nil {
- return nil, "", err
- }
- }
- insts, err := p.finalize()
- return insts, license, err
-}
-
-type program struct {
- insts asm.Instructions
- hasWildCard bool
- blockID int
-}
-
-func (p *program) init() {
- // struct bpf_cgroup_dev_ctx: https://elixir.bootlin.com/linux/v5.3.6/source/include/uapi/linux/bpf.h#L3423
- /*
- u32 access_type
- u32 major
- u32 minor
- */
- // R2 <- type (lower 16 bit of u32 access_type at R1[0])
- p.insts = append(p.insts,
- asm.LoadMem(asm.R2, asm.R1, 0, asm.Half))
-
- // R3 <- access (upper 16 bit of u32 access_type at R1[0])
- p.insts = append(p.insts,
- asm.LoadMem(asm.R3, asm.R1, 0, asm.Word),
- // RSh: bitwise shift right
- asm.RSh.Imm32(asm.R3, 16))
-
- // R4 <- major (u32 major at R1[4])
- p.insts = append(p.insts,
- asm.LoadMem(asm.R4, asm.R1, 4, asm.Word))
-
- // R5 <- minor (u32 minor at R1[8])
- p.insts = append(p.insts,
- asm.LoadMem(asm.R5, asm.R1, 8, asm.Word))
-}
-
-// appendDevice needs to be called from the last element of OCI linux.resources.devices to the head element.
-func (p *program) appendDevice(dev specs.LinuxDeviceCgroup) error {
- if p.blockID < 0 {
- return errors.New("the program is finalized")
- }
- if p.hasWildCard {
- // All entries after wildcard entry are ignored
- return nil
- }
-
- bpfType := int32(-1)
- hasType := true
- switch dev.Type {
- case string('c'):
- bpfType = int32(unix.BPF_DEVCG_DEV_CHAR)
- case string('b'):
- bpfType = int32(unix.BPF_DEVCG_DEV_BLOCK)
- case string('a'):
- hasType = false
- default:
- // if not specified in OCI json, typ is set to DeviceTypeAll
- return fmt.Errorf("invalid DeviceType %q", dev.Type)
- }
- if *dev.Major > math.MaxUint32 {
- return fmt.Errorf("invalid major %d", *dev.Major)
- }
- if *dev.Minor > math.MaxUint32 {
- return fmt.Errorf("invalid minor %d", *dev.Major)
- }
- hasMajor := *dev.Major >= 0 // if not specified in OCI json, major is set to -1
- hasMinor := *dev.Minor >= 0
- bpfAccess := int32(0)
- for _, r := range dev.Access {
- switch r {
- case 'r':
- bpfAccess |= unix.BPF_DEVCG_ACC_READ
- case 'w':
- bpfAccess |= unix.BPF_DEVCG_ACC_WRITE
- case 'm':
- bpfAccess |= unix.BPF_DEVCG_ACC_MKNOD
- default:
- return fmt.Errorf("unknown device access %v", r)
- }
- }
- // If the access is rwm, skip the check.
- hasAccess := bpfAccess != (unix.BPF_DEVCG_ACC_READ | unix.BPF_DEVCG_ACC_WRITE | unix.BPF_DEVCG_ACC_MKNOD)
-
- blockSym := fmt.Sprintf("block-%d", p.blockID)
- nextBlockSym := fmt.Sprintf("block-%d", p.blockID+1)
- prevBlockLastIdx := len(p.insts) - 1
- if hasType {
- p.insts = append(p.insts,
- // if (R2 != bpfType) goto next
- asm.JNE.Imm(asm.R2, bpfType, nextBlockSym),
- )
- }
- if hasAccess {
- p.insts = append(p.insts,
- // if (R3 & bpfAccess == 0 /* use R1 as a temp var */) goto next
- asm.Mov.Reg32(asm.R1, asm.R3),
- asm.And.Imm32(asm.R1, bpfAccess),
- asm.JEq.Imm(asm.R1, 0, nextBlockSym),
- )
- }
- if hasMajor {
- p.insts = append(p.insts,
- // if (R4 != major) goto next
- asm.JNE.Imm(asm.R4, int32(*dev.Major), nextBlockSym),
- )
- }
- if hasMinor {
- p.insts = append(p.insts,
- // if (R5 != minor) goto next
- asm.JNE.Imm(asm.R5, int32(*dev.Minor), nextBlockSym),
- )
- }
- if !hasType && !hasAccess && !hasMajor && !hasMinor {
- p.hasWildCard = true
- }
- p.insts = append(p.insts, acceptBlock(dev.Allow)...)
- // set blockSym to the first instruction we added in this iteration
- p.insts[prevBlockLastIdx+1] = p.insts[prevBlockLastIdx+1].Sym(blockSym)
- p.blockID++
- return nil
-}
-
-func (p *program) finalize() (asm.Instructions, error) {
- if p.hasWildCard {
- // acceptBlock with asm.Return() is already inserted
- return p.insts, nil
- }
- blockSym := fmt.Sprintf("block-%d", p.blockID)
- p.insts = append(p.insts,
- // R0 <- 0
- asm.Mov.Imm32(asm.R0, 0).Sym(blockSym),
- asm.Return(),
- )
- p.blockID = -1
- return p.insts, nil
-}
-
-func acceptBlock(accept bool) asm.Instructions {
- v := int32(0)
- if accept {
- v = 1
- }
- return []asm.Instruction{
- // R0 <- v
- asm.Mov.Imm32(asm.R0, v),
- asm.Return(),
- }
-}
diff --git a/vendor/github.com/containerd/cgroups/v2/ebpf.go b/vendor/github.com/containerd/cgroups/v2/ebpf.go
deleted file mode 100644
index 45bf5f99e..000000000
--- a/vendor/github.com/containerd/cgroups/v2/ebpf.go
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- Copyright The containerd Authors.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-package v2
-
-import (
- "fmt"
-
- "github.com/cilium/ebpf"
- "github.com/cilium/ebpf/asm"
- "github.com/cilium/ebpf/link"
- "github.com/opencontainers/runtime-spec/specs-go"
- "golang.org/x/sys/unix"
-)
-
-// LoadAttachCgroupDeviceFilter installs eBPF device filter program to /sys/fs/cgroup/<foo> directory.
-//
-// Requires the system to be running in cgroup2 unified-mode with kernel >= 4.15 .
-//
-// https://github.com/torvalds/linux/commit/ebc614f687369f9df99828572b1d85a7c2de3d92
-func LoadAttachCgroupDeviceFilter(insts asm.Instructions, license string, dirFD int) (func() error, error) {
- nilCloser := func() error {
- return nil
- }
- spec := &ebpf.ProgramSpec{
- Type: ebpf.CGroupDevice,
- Instructions: insts,
- License: license,
- }
- prog, err := ebpf.NewProgram(spec)
- if err != nil {
- return nilCloser, err
- }
- err = link.RawAttachProgram(link.RawAttachProgramOptions{
- Target: dirFD,
- Program: prog,
- Attach: ebpf.AttachCGroupDevice,
- Flags: unix.BPF_F_ALLOW_MULTI,
- })
- if err != nil {
- return nilCloser, fmt.Errorf("failed to call BPF_PROG_ATTACH (BPF_CGROUP_DEVICE, BPF_F_ALLOW_MULTI): %w", err)
- }
- closer := func() error {
- err = link.RawDetachProgram(link.RawDetachProgramOptions{
- Target: dirFD,
- Program: prog,
- Attach: ebpf.AttachCGroupDevice,
- })
- if err != nil {
- return fmt.Errorf("failed to call BPF_PROG_DETACH (BPF_CGROUP_DEVICE): %w", err)
- }
- return nil
- }
- return closer, nil
-}
-
-func isRWM(cgroupPermissions string) bool {
- r := false
- w := false
- m := false
- for _, rn := range cgroupPermissions {
- switch rn {
- case 'r':
- r = true
- case 'w':
- w = true
- case 'm':
- m = true
- }
- }
- return r && w && m
-}
-
-// the logic is from runc
-// https://github.com/opencontainers/runc/blob/master/libcontainer/cgroups/fs/devices_v2.go#L44
-func canSkipEBPFError(devices []specs.LinuxDeviceCgroup) bool {
- for _, dev := range devices {
- if dev.Allow || !isRWM(dev.Access) {
- return false
- }
- }
- return true
-}
diff --git a/vendor/github.com/containerd/cgroups/v2/errors.go b/vendor/github.com/containerd/cgroups/v2/errors.go
deleted file mode 100644
index eeae362b2..000000000
--- a/vendor/github.com/containerd/cgroups/v2/errors.go
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- Copyright The containerd Authors.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-package v2
-
-import (
- "errors"
-)
-
-var (
- ErrInvalidFormat = errors.New("cgroups: parsing file with invalid format failed")
- ErrInvalidGroupPath = errors.New("cgroups: invalid group path")
-)
diff --git a/vendor/github.com/containerd/cgroups/v2/hugetlb.go b/vendor/github.com/containerd/cgroups/v2/hugetlb.go
deleted file mode 100644
index 16b35bd78..000000000
--- a/vendor/github.com/containerd/cgroups/v2/hugetlb.go
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- Copyright The containerd Authors.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-package v2
-
-import "strings"
-
-type HugeTlb []HugeTlbEntry
-
-type HugeTlbEntry struct {
- HugePageSize string
- Limit uint64
-}
-
-func (r *HugeTlb) Values() (o []Value) {
- for _, e := range *r {
- o = append(o, Value{
- filename: strings.Join([]string{"hugetlb", e.HugePageSize, "max"}, "."),
- value: e.Limit,
- })
- }
-
- return o
-}
diff --git a/vendor/github.com/containerd/cgroups/v2/io.go b/vendor/github.com/containerd/cgroups/v2/io.go
deleted file mode 100644
index 70078d576..000000000
--- a/vendor/github.com/containerd/cgroups/v2/io.go
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- Copyright The containerd Authors.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-package v2
-
-import "fmt"
-
-type IOType string
-
-const (
- ReadBPS IOType = "rbps"
- WriteBPS IOType = "wbps"
- ReadIOPS IOType = "riops"
- WriteIOPS IOType = "wiops"
-)
-
-type BFQ struct {
- Weight uint16
-}
-
-type Entry struct {
- Type IOType
- Major int64
- Minor int64
- Rate uint64
-}
-
-func (e Entry) String() string {
- return fmt.Sprintf("%d:%d %s=%d", e.Major, e.Minor, e.Type, e.Rate)
-}
-
-type IO struct {
- BFQ BFQ
- Max []Entry
-}
-
-func (i *IO) Values() (o []Value) {
- if i.BFQ.Weight != 0 {
- o = append(o, Value{
- filename: "io.bfq.weight",
- value: i.BFQ.Weight,
- })
- }
- for _, e := range i.Max {
- o = append(o, Value{
- filename: "io.max",
- value: e.String(),
- })
- }
- return o
-}
diff --git a/vendor/github.com/containerd/cgroups/v2/manager.go b/vendor/github.com/containerd/cgroups/v2/manager.go
deleted file mode 100644
index 1f017509f..000000000
--- a/vendor/github.com/containerd/cgroups/v2/manager.go
+++ /dev/null
@@ -1,863 +0,0 @@
-/*
- Copyright The containerd Authors.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-package v2
-
-import (
- "bufio"
- "context"
- "errors"
- "fmt"
- "io/ioutil"
- "math"
- "os"
- "path/filepath"
- "strconv"
- "strings"
- "syscall"
- "time"
-
- "github.com/containerd/cgroups/v2/stats"
-
- systemdDbus "github.com/coreos/go-systemd/v22/dbus"
- "github.com/godbus/dbus/v5"
- "github.com/opencontainers/runtime-spec/specs-go"
- "github.com/sirupsen/logrus"
- "golang.org/x/sys/unix"
-)
-
-const (
- subtreeControl = "cgroup.subtree_control"
- controllersFile = "cgroup.controllers"
- defaultCgroup2Path = "/sys/fs/cgroup"
- defaultSlice = "system.slice"
-)
-
-var (
- canDelegate bool
-)
-
-type Event struct {
- Low uint64
- High uint64
- Max uint64
- OOM uint64
- OOMKill uint64
-}
-
-// Resources for a cgroups v2 unified hierarchy
-type Resources struct {
- CPU *CPU
- Memory *Memory
- Pids *Pids
- IO *IO
- RDMA *RDMA
- HugeTlb *HugeTlb
- // When len(Devices) is zero, devices are not controlled
- Devices []specs.LinuxDeviceCgroup
-}
-
-// Values returns the raw filenames and values that
-// can be written to the unified hierarchy
-func (r *Resources) Values() (o []Value) {
- if r.CPU != nil {
- o = append(o, r.CPU.Values()...)
- }
- if r.Memory != nil {
- o = append(o, r.Memory.Values()...)
- }
- if r.Pids != nil {
- o = append(o, r.Pids.Values()...)
- }
- if r.IO != nil {
- o = append(o, r.IO.Values()...)
- }
- if r.RDMA != nil {
- o = append(o, r.RDMA.Values()...)
- }
- if r.HugeTlb != nil {
- o = append(o, r.HugeTlb.Values()...)
- }
- return o
-}
-
-// EnabledControllers returns the list of all not nil resource controllers
-func (r *Resources) EnabledControllers() (c []string) {
- if r.CPU != nil {
- c = append(c, "cpu")
- c = append(c, "cpuset")
- }
- if r.Memory != nil {
- c = append(c, "memory")
- }
- if r.Pids != nil {
- c = append(c, "pids")
- }
- if r.IO != nil {
- c = append(c, "io")
- }
- if r.RDMA != nil {
- c = append(c, "rdma")
- }
- if r.HugeTlb != nil {
- c = append(c, "hugetlb")
- }
- return
-}
-
-// Value of a cgroup setting
-type Value struct {
- filename string
- value interface{}
-}
-
-// write the value to the full, absolute path, of a unified hierarchy
-func (c *Value) write(path string, perm os.FileMode) error {
- var data []byte
- switch t := c.value.(type) {
- case uint64:
- data = []byte(strconv.FormatUint(t, 10))
- case uint16:
- data = []byte(strconv.FormatUint(uint64(t), 10))
- case int64:
- data = []byte(strconv.FormatInt(t, 10))
- case []byte:
- data = t
- case string:
- data = []byte(t)
- case CPUMax:
- data = []byte(t)
- default:
- return ErrInvalidFormat
- }
-
- // Retry writes on EINTR; see:
- // https://github.com/golang/go/issues/38033
- for {
- err := ioutil.WriteFile(
- filepath.Join(path, c.filename),
- data,
- perm,
- )
- if err == nil {
- return nil
- } else if !errors.Is(err, syscall.EINTR) {
- return err
- }
- }
-}
-
-func writeValues(path string, values []Value) error {
- for _, o := range values {
- if err := o.write(path, defaultFilePerm); err != nil {
- return err
- }
- }
- return nil
-}
-
-func NewManager(mountpoint string, group string, resources *Resources) (*Manager, error) {
- if resources == nil {
- return nil, errors.New("resources reference is nil")
- }
- if err := VerifyGroupPath(group); err != nil {
- return nil, err
- }
- path := filepath.Join(mountpoint, group)
- if err := os.MkdirAll(path, defaultDirPerm); err != nil {
- return nil, err
- }
- m := Manager{
- unifiedMountpoint: mountpoint,
- path: path,
- }
- if err := m.ToggleControllers(resources.EnabledControllers(), Enable); err != nil {
- // clean up cgroup dir on failure
- os.Remove(path)
- return nil, err
- }
- if err := setResources(path, resources); err != nil {
- os.Remove(path)
- return nil, err
- }
- return &m, nil
-}
-
-func LoadManager(mountpoint string, group string) (*Manager, error) {
- if err := VerifyGroupPath(group); err != nil {
- return nil, err
- }
- path := filepath.Join(mountpoint, group)
- return &Manager{
- unifiedMountpoint: mountpoint,
- path: path,
- }, nil
-}
-
-type Manager struct {
- unifiedMountpoint string
- path string
-}
-
-func setResources(path string, resources *Resources) error {
- if resources != nil {
- if err := writeValues(path, resources.Values()); err != nil {
- return err
- }
- if err := setDevices(path, resources.Devices); err != nil {
- return err
- }
- }
- return nil
-}
-
-func (c *Manager) RootControllers() ([]string, error) {
- b, err := ioutil.ReadFile(filepath.Join(c.unifiedMountpoint, controllersFile))
- if err != nil {
- return nil, err
- }
- return strings.Fields(string(b)), nil
-}
-
-func (c *Manager) Controllers() ([]string, error) {
- b, err := ioutil.ReadFile(filepath.Join(c.path, controllersFile))
- if err != nil {
- return nil, err
- }
- return strings.Fields(string(b)), nil
-}
-
-func (c *Manager) Update(resources *Resources) error {
- return setResources(c.path, resources)
-}
-
-type ControllerToggle int
-
-const (
- Enable ControllerToggle = iota + 1
- Disable
-)
-
-func toggleFunc(controllers []string, prefix string) []string {
- out := make([]string, len(controllers))
- for i, c := range controllers {
- out[i] = prefix + c
- }
- return out
-}
-
-func (c *Manager) ToggleControllers(controllers []string, t ControllerToggle) error {
- // when c.path is like /foo/bar/baz, the following files need to be written:
- // * /sys/fs/cgroup/cgroup.subtree_control
- // * /sys/fs/cgroup/foo/cgroup.subtree_control
- // * /sys/fs/cgroup/foo/bar/cgroup.subtree_control
- // Note that /sys/fs/cgroup/foo/bar/baz/cgroup.subtree_control does not need to be written.
- split := strings.Split(c.path, "/")
- var lastErr error
- for i := range split {
- f := strings.Join(split[:i], "/")
- if !strings.HasPrefix(f, c.unifiedMountpoint) || f == c.path {
- continue
- }
- filePath := filepath.Join(f, subtreeControl)
- if err := c.writeSubtreeControl(filePath, controllers, t); err != nil {
- // When running as rootless, the user may face EPERM on parent groups, but it is neglible when the
- // controller is already written.
- // So we only return the last error.
- lastErr = fmt.Errorf("failed to write subtree controllers %+v to %q: %w", controllers, filePath, err)
- } else {
- lastErr = nil
- }
- }
- return lastErr
-}
-
-func (c *Manager) writeSubtreeControl(filePath string, controllers []string, t ControllerToggle) error {
- f, err := os.OpenFile(filePath, os.O_WRONLY, 0)
- if err != nil {
- return err
- }
- defer f.Close()
- switch t {
- case Enable:
- controllers = toggleFunc(controllers, "+")
- case Disable:
- controllers = toggleFunc(controllers, "-")
- }
- _, err = f.WriteString(strings.Join(controllers, " "))
- return err
-}
-
-func (c *Manager) NewChild(name string, resources *Resources) (*Manager, error) {
- if strings.HasPrefix(name, "/") {
- return nil, errors.New("name must be relative")
- }
- path := filepath.Join(c.path, name)
- if err := os.MkdirAll(path, defaultDirPerm); err != nil {
- return nil, err
- }
- m := Manager{
- unifiedMountpoint: c.unifiedMountpoint,
- path: path,
- }
- if resources != nil {
- if err := m.ToggleControllers(resources.EnabledControllers(), Enable); err != nil {
- // clean up cgroup dir on failure
- os.Remove(path)
- return nil, err
- }
- }
- if err := setResources(path, resources); err != nil {
- // clean up cgroup dir on failure
- os.Remove(path)
- return nil, err
- }
- return &m, nil
-}
-
-func (c *Manager) AddProc(pid uint64) error {
- v := Value{
- filename: cgroupProcs,
- value: pid,
- }
- return writeValues(c.path, []Value{v})
-}
-
-func (c *Manager) Delete() error {
- return remove(c.path)
-}
-
-func (c *Manager) Procs(recursive bool) ([]uint64, error) {
- var processes []uint64
- err := filepath.Walk(c.path, func(p string, info os.FileInfo, err error) error {
- if err != nil {
- return err
- }
- if !recursive && info.IsDir() {
- if p == c.path {
- return nil
- }
- return filepath.SkipDir
- }
- _, name := filepath.Split(p)
- if name != cgroupProcs {
- return nil
- }
- procs, err := parseCgroupProcsFile(p)
- if err != nil {
- return err
- }
- processes = append(processes, procs...)
- return nil
- })
- return processes, err
-}
-
-var singleValueFiles = []string{
- "pids.current",
- "pids.max",
-}
-
-func (c *Manager) Stat() (*stats.Metrics, error) {
- controllers, err := c.Controllers()
- if err != nil {
- return nil, err
- }
- out := make(map[string]interface{})
- for _, controller := range controllers {
- switch controller {
- case "cpu", "memory":
- if err := readKVStatsFile(c.path, controller+".stat", out); err != nil {
- if os.IsNotExist(err) {
- continue
- }
- return nil, err
- }
- }
- }
- for _, name := range singleValueFiles {
- if err := readSingleFile(c.path, name, out); err != nil {
- if os.IsNotExist(err) {
- continue
- }
- return nil, err
- }
- }
- memoryEvents := make(map[string]interface{})
- if err := readKVStatsFile(c.path, "memory.events", memoryEvents); err != nil {
- if !os.IsNotExist(err) {
- return nil, err
- }
- }
- var metrics stats.Metrics
-
- metrics.Pids = &stats.PidsStat{
- Current: getPidValue("pids.current", out),
- Limit: getPidValue("pids.max", out),
- }
- metrics.CPU = &stats.CPUStat{
- UsageUsec: getUint64Value("usage_usec", out),
- UserUsec: getUint64Value("user_usec", out),
- SystemUsec: getUint64Value("system_usec", out),
- NrPeriods: getUint64Value("nr_periods", out),
- NrThrottled: getUint64Value("nr_throttled", out),
- ThrottledUsec: getUint64Value("throttled_usec", out),
- }
- metrics.Memory = &stats.MemoryStat{
- Anon: getUint64Value("anon", out),
- File: getUint64Value("file", out),
- KernelStack: getUint64Value("kernel_stack", out),
- Slab: getUint64Value("slab", out),
- Sock: getUint64Value("sock", out),
- Shmem: getUint64Value("shmem", out),
- FileMapped: getUint64Value("file_mapped", out),
- FileDirty: getUint64Value("file_dirty", out),
- FileWriteback: getUint64Value("file_writeback", out),
- AnonThp: getUint64Value("anon_thp", out),
- InactiveAnon: getUint64Value("inactive_anon", out),
- ActiveAnon: getUint64Value("active_anon", out),
- InactiveFile: getUint64Value("inactive_file", out),
- ActiveFile: getUint64Value("active_file", out),
- Unevictable: getUint64Value("unevictable", out),
- SlabReclaimable: getUint64Value("slab_reclaimable", out),
- SlabUnreclaimable: getUint64Value("slab_unreclaimable", out),
- Pgfault: getUint64Value("pgfault", out),
- Pgmajfault: getUint64Value("pgmajfault", out),
- WorkingsetRefault: getUint64Value("workingset_refault", out),
- WorkingsetActivate: getUint64Value("workingset_activate", out),
- WorkingsetNodereclaim: getUint64Value("workingset_nodereclaim", out),
- Pgrefill: getUint64Value("pgrefill", out),
- Pgscan: getUint64Value("pgscan", out),
- Pgsteal: getUint64Value("pgsteal", out),
- Pgactivate: getUint64Value("pgactivate", out),
- Pgdeactivate: getUint64Value("pgdeactivate", out),
- Pglazyfree: getUint64Value("pglazyfree", out),
- Pglazyfreed: getUint64Value("pglazyfreed", out),
- ThpFaultAlloc: getUint64Value("thp_fault_alloc", out),
- ThpCollapseAlloc: getUint64Value("thp_collapse_alloc", out),
- Usage: getStatFileContentUint64(filepath.Join(c.path, "memory.current")),
- UsageLimit: getStatFileContentUint64(filepath.Join(c.path, "memory.max")),
- SwapUsage: getStatFileContentUint64(filepath.Join(c.path, "memory.swap.current")),
- SwapLimit: getStatFileContentUint64(filepath.Join(c.path, "memory.swap.max")),
- }
- if len(memoryEvents) > 0 {
- metrics.MemoryEvents = &stats.MemoryEvents{
- Low: getUint64Value("low", memoryEvents),
- High: getUint64Value("high", memoryEvents),
- Max: getUint64Value("max", memoryEvents),
- Oom: getUint64Value("oom", memoryEvents),
- OomKill: getUint64Value("oom_kill", memoryEvents),
- }
- }
- metrics.Io = &stats.IOStat{Usage: readIoStats(c.path)}
- metrics.Rdma = &stats.RdmaStat{
- Current: rdmaStats(filepath.Join(c.path, "rdma.current")),
- Limit: rdmaStats(filepath.Join(c.path, "rdma.max")),
- }
- metrics.Hugetlb = readHugeTlbStats(c.path)
-
- return &metrics, nil
-}
-
-func getUint64Value(key string, out map[string]interface{}) uint64 {
- v, ok := out[key]
- if !ok {
- return 0
- }
- switch t := v.(type) {
- case uint64:
- return t
- }
- return 0
-}
-
-func getPidValue(key string, out map[string]interface{}) uint64 {
- v, ok := out[key]
- if !ok {
- return 0
- }
- switch t := v.(type) {
- case uint64:
- return t
- case string:
- if t == "max" {
- return math.MaxUint64
- }
- }
- return 0
-}
-
-func readSingleFile(path string, file string, out map[string]interface{}) error {
- f, err := os.Open(filepath.Join(path, file))
- if err != nil {
- return err
- }
- defer f.Close()
- data, err := ioutil.ReadAll(f)
- if err != nil {
- return err
- }
- s := strings.TrimSpace(string(data))
- v, err := parseUint(s, 10, 64)
- if err != nil {
- // if we cannot parse as a uint, parse as a string
- out[file] = s
- return nil
- }
- out[file] = v
- return nil
-}
-
-func readKVStatsFile(path string, file string, out map[string]interface{}) error {
- f, err := os.Open(filepath.Join(path, file))
- if err != nil {
- return err
- }
- defer f.Close()
-
- s := bufio.NewScanner(f)
- for s.Scan() {
- name, value, err := parseKV(s.Text())
- if err != nil {
- return fmt.Errorf("error while parsing %s (line=%q): %w", filepath.Join(path, file), s.Text(), err)
- }
- out[name] = value
- }
- return s.Err()
-}
-
-func (c *Manager) Freeze() error {
- return c.freeze(c.path, Frozen)
-}
-
-func (c *Manager) Thaw() error {
- return c.freeze(c.path, Thawed)
-}
-
-func (c *Manager) freeze(path string, state State) error {
- values := state.Values()
- for {
- if err := writeValues(path, values); err != nil {
- return err
- }
- current, err := fetchState(path)
- if err != nil {
- return err
- }
- if current == state {
- return nil
- }
- time.Sleep(1 * time.Millisecond)
- }
-}
-
-func (c *Manager) isCgroupEmpty() bool {
- // In case of any error we return true so that we exit and don't leak resources
- out := make(map[string]interface{})
- if err := readKVStatsFile(c.path, "cgroup.events", out); err != nil {
- return true
- }
- if v, ok := out["populated"]; ok {
- populated, ok := v.(uint64)
- if !ok {
- return true
- }
- return populated == 0
- }
- return true
-}
-
-// MemoryEventFD returns inotify file descriptor and 'memory.events' inotify watch descriptor
-func (c *Manager) MemoryEventFD() (int, uint32, error) {
- fpath := filepath.Join(c.path, "memory.events")
- fd, err := syscall.InotifyInit()
- if err != nil {
- return 0, 0, errors.New("failed to create inotify fd")
- }
- wd, err := syscall.InotifyAddWatch(fd, fpath, unix.IN_MODIFY)
- if err != nil {
- syscall.Close(fd)
- return 0, 0, fmt.Errorf("failed to add inotify watch for %q: %w", fpath, err)
- }
- // monitor to detect process exit/cgroup deletion
- evpath := filepath.Join(c.path, "cgroup.events")
- if _, err = syscall.InotifyAddWatch(fd, evpath, unix.IN_MODIFY); err != nil {
- syscall.Close(fd)
- return 0, 0, fmt.Errorf("failed to add inotify watch for %q: %w", evpath, err)
- }
-
- return fd, uint32(wd), nil
-}
-
-func (c *Manager) EventChan() (<-chan Event, <-chan error) {
- ec := make(chan Event)
- errCh := make(chan error, 1)
- go c.waitForEvents(ec, errCh)
-
- return ec, errCh
-}
-
-func parseMemoryEvents(out map[string]interface{}) (Event, error) {
- e := Event{}
- if v, ok := out["high"]; ok {
- e.High, ok = v.(uint64)
- if !ok {
- return Event{}, fmt.Errorf("cannot convert high to uint64: %+v", v)
- }
- }
- if v, ok := out["low"]; ok {
- e.Low, ok = v.(uint64)
- if !ok {
- return Event{}, fmt.Errorf("cannot convert low to uint64: %+v", v)
- }
- }
- if v, ok := out["max"]; ok {
- e.Max, ok = v.(uint64)
- if !ok {
- return Event{}, fmt.Errorf("cannot convert max to uint64: %+v", v)
- }
- }
- if v, ok := out["oom"]; ok {
- e.OOM, ok = v.(uint64)
- if !ok {
- return Event{}, fmt.Errorf("cannot convert oom to uint64: %+v", v)
- }
- }
- if v, ok := out["oom_kill"]; ok {
- e.OOMKill, ok = v.(uint64)
- if !ok {
- return Event{}, fmt.Errorf("cannot convert oom_kill to uint64: %+v", v)
- }
- }
- return e, nil
-}
-
-func (c *Manager) waitForEvents(ec chan<- Event, errCh chan<- error) {
- defer close(errCh)
-
- fd, _, err := c.MemoryEventFD()
- if err != nil {
- errCh <- err
- return
- }
- defer syscall.Close(fd)
-
- for {
- buffer := make([]byte, syscall.SizeofInotifyEvent*10)
- bytesRead, err := syscall.Read(fd, buffer)
- if err != nil {
- errCh <- err
- return
- }
- if bytesRead >= syscall.SizeofInotifyEvent {
- out := make(map[string]interface{})
- if err := readKVStatsFile(c.path, "memory.events", out); err != nil {
- // When cgroup is deleted read may return -ENODEV instead of -ENOENT from open.
- if _, statErr := os.Lstat(filepath.Join(c.path, "memory.events")); !os.IsNotExist(statErr) {
- errCh <- err
- }
- return
- }
- e, err := parseMemoryEvents(out)
- if err != nil {
- errCh <- err
- return
- }
- ec <- e
- if c.isCgroupEmpty() {
- return
- }
- }
- }
-}
-
-func setDevices(path string, devices []specs.LinuxDeviceCgroup) error {
- if len(devices) == 0 {
- return nil
- }
- insts, license, err := DeviceFilter(devices)
- if err != nil {
- return err
- }
- dirFD, err := unix.Open(path, unix.O_DIRECTORY|unix.O_RDONLY|unix.O_CLOEXEC, 0600)
- if err != nil {
- return fmt.Errorf("cannot get dir FD for %s", path)
- }
- defer unix.Close(dirFD)
- if _, err := LoadAttachCgroupDeviceFilter(insts, license, dirFD); err != nil {
- if !canSkipEBPFError(devices) {
- return err
- }
- }
- return nil
-}
-
-// getSystemdFullPath returns the full systemd path when creating a systemd slice group.
-// the reason this is necessary is because the "-" character has a special meaning in
-// systemd slice. For example, when creating a slice called "my-group-112233.slice",
-// systemd will create a hierarchy like this:
-// /sys/fs/cgroup/my.slice/my-group.slice/my-group-112233.slice
-func getSystemdFullPath(slice, group string) string {
- return filepath.Join(defaultCgroup2Path, dashesToPath(slice), dashesToPath(group))
-}
-
-// dashesToPath converts a slice name with dashes to it's corresponding systemd filesystem path.
-func dashesToPath(in string) string {
- path := ""
- if strings.HasSuffix(in, ".slice") && strings.Contains(in, "-") {
- parts := strings.Split(in, "-")
- for i := range parts {
- s := strings.Join(parts[0:i+1], "-")
- if !strings.HasSuffix(s, ".slice") {
- s += ".slice"
- }
- path = filepath.Join(path, s)
- }
- } else {
- path = filepath.Join(path, in)
- }
- return path
-}
-
-func NewSystemd(slice, group string, pid int, resources *Resources) (*Manager, error) {
- if slice == "" {
- slice = defaultSlice
- }
- ctx := context.TODO()
- path := getSystemdFullPath(slice, group)
- conn, err := systemdDbus.NewWithContext(ctx)
- if err != nil {
- return &Manager{}, err
- }
- defer conn.Close()
-
- properties := []systemdDbus.Property{
- systemdDbus.PropDescription("cgroup " + group),
- newSystemdProperty("DefaultDependencies", false),
- newSystemdProperty("MemoryAccounting", true),
- newSystemdProperty("CPUAccounting", true),
- newSystemdProperty("IOAccounting", true),
- }
-
- // if we create a slice, the parent is defined via a Wants=
- if strings.HasSuffix(group, ".slice") {
- properties = append(properties, systemdDbus.PropWants(defaultSlice))
- } else {
- // otherwise, we use Slice=
- properties = append(properties, systemdDbus.PropSlice(defaultSlice))
- }
-
- // only add pid if its valid, -1 is used w/ general slice creation.
- if pid != -1 {
- properties = append(properties, newSystemdProperty("PIDs", []uint32{uint32(pid)}))
- }
-
- if resources.Memory != nil && resources.Memory.Min != nil && *resources.Memory.Min != 0 {
- properties = append(properties,
- newSystemdProperty("MemoryMin", uint64(*resources.Memory.Min)))
- }
-
- if resources.Memory != nil && resources.Memory.Max != nil && *resources.Memory.Max != 0 {
- properties = append(properties,
- newSystemdProperty("MemoryMax", uint64(*resources.Memory.Max)))
- }
-
- if resources.CPU != nil && resources.CPU.Weight != nil && *resources.CPU.Weight != 0 {
- properties = append(properties,
- newSystemdProperty("CPUWeight", *resources.CPU.Weight))
- }
-
- if resources.CPU != nil && resources.CPU.Max != "" {
- quota, period := resources.CPU.Max.extractQuotaAndPeriod()
- // cpu.cfs_quota_us and cpu.cfs_period_us are controlled by systemd.
- // corresponds to USEC_INFINITY in systemd
- // if USEC_INFINITY is provided, CPUQuota is left unbound by systemd
- // always setting a property value ensures we can apply a quota and remove it later
- cpuQuotaPerSecUSec := uint64(math.MaxUint64)
- if quota > 0 {
- // systemd converts CPUQuotaPerSecUSec (microseconds per CPU second) to CPUQuota
- // (integer percentage of CPU) internally. This means that if a fractional percent of
- // CPU is indicated by Resources.CpuQuota, we need to round up to the nearest
- // 10ms (1% of a second) such that child cgroups can set the cpu.cfs_quota_us they expect.
- cpuQuotaPerSecUSec = uint64(quota*1000000) / period
- if cpuQuotaPerSecUSec%10000 != 0 {
- cpuQuotaPerSecUSec = ((cpuQuotaPerSecUSec / 10000) + 1) * 10000
- }
- }
- properties = append(properties,
- newSystemdProperty("CPUQuotaPerSecUSec", cpuQuotaPerSecUSec))
- }
-
- // If we can delegate, we add the property back in
- if canDelegate {
- properties = append(properties, newSystemdProperty("Delegate", true))
- }
-
- if resources.Pids != nil && resources.Pids.Max > 0 {
- properties = append(properties,
- newSystemdProperty("TasksAccounting", true),
- newSystemdProperty("TasksMax", uint64(resources.Pids.Max)))
- }
-
- statusChan := make(chan string, 1)
- if _, err := conn.StartTransientUnitContext(ctx, group, "replace", properties, statusChan); err == nil {
- select {
- case <-statusChan:
- case <-time.After(time.Second):
- logrus.Warnf("Timed out while waiting for StartTransientUnit(%s) completion signal from dbus. Continuing...", group)
- }
- } else if !isUnitExists(err) {
- return &Manager{}, err
- }
-
- return &Manager{
- path: path,
- }, nil
-}
-
-func LoadSystemd(slice, group string) (*Manager, error) {
- if slice == "" {
- slice = defaultSlice
- }
- path := getSystemdFullPath(slice, group)
- return &Manager{
- path: path,
- }, nil
-}
-
-func (c *Manager) DeleteSystemd() error {
- ctx := context.TODO()
- conn, err := systemdDbus.NewWithContext(ctx)
- if err != nil {
- return err
- }
- defer conn.Close()
- group := systemdUnitFromPath(c.path)
- ch := make(chan string)
- _, err = conn.StopUnitContext(ctx, group, "replace", ch)
- if err != nil {
- return err
- }
- <-ch
- return nil
-}
-
-func newSystemdProperty(name string, units interface{}) systemdDbus.Property {
- return systemdDbus.Property{
- Name: name,
- Value: dbus.MakeVariant(units),
- }
-}
diff --git a/vendor/github.com/containerd/cgroups/v2/memory.go b/vendor/github.com/containerd/cgroups/v2/memory.go
deleted file mode 100644
index 6f4733be6..000000000
--- a/vendor/github.com/containerd/cgroups/v2/memory.go
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- Copyright The containerd Authors.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-package v2
-
-type Memory struct {
- Swap *int64
- Min *int64
- Max *int64
- Low *int64
- High *int64
-}
-
-func (r *Memory) Values() (o []Value) {
- if r.Swap != nil {
- o = append(o, Value{
- filename: "memory.swap.max",
- value: *r.Swap,
- })
- }
- if r.Min != nil {
- o = append(o, Value{
- filename: "memory.min",
- value: *r.Min,
- })
- }
- if r.Max != nil {
- o = append(o, Value{
- filename: "memory.max",
- value: *r.Max,
- })
- }
- if r.Low != nil {
- o = append(o, Value{
- filename: "memory.low",
- value: *r.Low,
- })
- }
- if r.High != nil {
- o = append(o, Value{
- filename: "memory.high",
- value: *r.High,
- })
- }
- return o
-}
diff --git a/vendor/github.com/containerd/cgroups/v2/paths.go b/vendor/github.com/containerd/cgroups/v2/paths.go
deleted file mode 100644
index c4778c142..000000000
--- a/vendor/github.com/containerd/cgroups/v2/paths.go
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- Copyright The containerd Authors.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-package v2
-
-import (
- "fmt"
- "path/filepath"
- "strings"
-)
-
-// NestedGroupPath will nest the cgroups based on the calling processes cgroup
-// placing its child processes inside its own path
-func NestedGroupPath(suffix string) (string, error) {
- path, err := parseCgroupFile("/proc/self/cgroup")
- if err != nil {
- return "", err
- }
- return filepath.Join(path, suffix), nil
-}
-
-// PidGroupPath will return the correct cgroup paths for an existing process running inside a cgroup
-// This is commonly used for the Load function to restore an existing container
-func PidGroupPath(pid int) (string, error) {
- p := fmt.Sprintf("/proc/%d/cgroup", pid)
- return parseCgroupFile(p)
-}
-
-// VerifyGroupPath verifies the format of group path string g.
-// The format is same as the third field in /proc/PID/cgroup.
-// e.g. "/user.slice/user-1001.slice/session-1.scope"
-//
-// g must be a "clean" absolute path starts with "/", and must not contain "/sys/fs/cgroup" prefix.
-//
-// VerifyGroupPath doesn't verify whether g actually exists on the system.
-func VerifyGroupPath(g string) error {
- if !strings.HasPrefix(g, "/") {
- return ErrInvalidGroupPath
- }
- if filepath.Clean(g) != g {
- return ErrInvalidGroupPath
- }
- if strings.HasPrefix(g, "/sys/fs/cgroup") {
- return ErrInvalidGroupPath
- }
- return nil
-}
diff --git a/vendor/github.com/containerd/cgroups/v2/pids.go b/vendor/github.com/containerd/cgroups/v2/pids.go
deleted file mode 100644
index 0b5aa0c3b..000000000
--- a/vendor/github.com/containerd/cgroups/v2/pids.go
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- Copyright The containerd Authors.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-package v2
-
-import "strconv"
-
-type Pids struct {
- Max int64
-}
-
-func (r *Pids) Values() (o []Value) {
- if r.Max != 0 {
- limit := "max"
- if r.Max > 0 {
- limit = strconv.FormatInt(r.Max, 10)
- }
- o = append(o, Value{
- filename: "pids.max",
- value: limit,
- })
- }
- return o
-}
diff --git a/vendor/github.com/containerd/cgroups/v2/rdma.go b/vendor/github.com/containerd/cgroups/v2/rdma.go
deleted file mode 100644
index 44caa4f57..000000000
--- a/vendor/github.com/containerd/cgroups/v2/rdma.go
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- Copyright The containerd Authors.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-package v2
-
-import (
- "fmt"
-)
-
-type RDMA struct {
- Limit []RDMAEntry
-}
-
-type RDMAEntry struct {
- Device string
- HcaHandles uint32
- HcaObjects uint32
-}
-
-func (r RDMAEntry) String() string {
- return fmt.Sprintf("%s hca_handle=%d hca_object=%d", r.Device, r.HcaHandles, r.HcaObjects)
-}
-
-func (r *RDMA) Values() (o []Value) {
- for _, e := range r.Limit {
- o = append(o, Value{
- filename: "rdma.max",
- value: e.String(),
- })
- }
-
- return o
-}
diff --git a/vendor/github.com/containerd/cgroups/v2/state.go b/vendor/github.com/containerd/cgroups/v2/state.go
deleted file mode 100644
index 09b75b6c3..000000000
--- a/vendor/github.com/containerd/cgroups/v2/state.go
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- Copyright The containerd Authors.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-package v2
-
-import (
- "io/ioutil"
- "path/filepath"
- "strings"
-)
-
-// State is a type that represents the state of the current cgroup
-type State string
-
-const (
- Unknown State = ""
- Thawed State = "thawed"
- Frozen State = "frozen"
- Deleted State = "deleted"
-
- cgroupFreeze = "cgroup.freeze"
-)
-
-func (s State) Values() []Value {
- v := Value{
- filename: cgroupFreeze,
- }
- switch s {
- case Frozen:
- v.value = "1"
- case Thawed:
- v.value = "0"
- }
- return []Value{
- v,
- }
-}
-
-func fetchState(path string) (State, error) {
- current, err := ioutil.ReadFile(filepath.Join(path, cgroupFreeze))
- if err != nil {
- return Unknown, err
- }
- switch strings.TrimSpace(string(current)) {
- case "1":
- return Frozen, nil
- case "0":
- return Thawed, nil
- default:
- return Unknown, nil
- }
-}
diff --git a/vendor/github.com/containerd/cgroups/v2/stats/doc.go b/vendor/github.com/containerd/cgroups/v2/stats/doc.go
deleted file mode 100644
index e51e12f80..000000000
--- a/vendor/github.com/containerd/cgroups/v2/stats/doc.go
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- Copyright The containerd Authors.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-package stats
diff --git a/vendor/github.com/containerd/cgroups/v2/stats/metrics.pb.go b/vendor/github.com/containerd/cgroups/v2/stats/metrics.pb.go
deleted file mode 100644
index 0bd493998..000000000
--- a/vendor/github.com/containerd/cgroups/v2/stats/metrics.pb.go
+++ /dev/null
@@ -1,3992 +0,0 @@
-// Code generated by protoc-gen-gogo. DO NOT EDIT.
-// source: github.com/containerd/cgroups/v2/stats/metrics.proto
-
-package stats
-
-import (
- fmt "fmt"
- _ "github.com/gogo/protobuf/gogoproto"
- proto "github.com/gogo/protobuf/proto"
- io "io"
- math "math"
- math_bits "math/bits"
- reflect "reflect"
- strings "strings"
-)
-
-// Reference imports to suppress errors if they are not otherwise used.
-var _ = proto.Marshal
-var _ = fmt.Errorf
-var _ = math.Inf
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the proto package it is being compiled against.
-// A compilation error at this line likely means your copy of the
-// proto package needs to be updated.
-const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
-
-type Metrics struct {
- Pids *PidsStat `protobuf:"bytes,1,opt,name=pids,proto3" json:"pids,omitempty"`
- CPU *CPUStat `protobuf:"bytes,2,opt,name=cpu,proto3" json:"cpu,omitempty"`
- Memory *MemoryStat `protobuf:"bytes,4,opt,name=memory,proto3" json:"memory,omitempty"`
- Rdma *RdmaStat `protobuf:"bytes,5,opt,name=rdma,proto3" json:"rdma,omitempty"`
- Io *IOStat `protobuf:"bytes,6,opt,name=io,proto3" json:"io,omitempty"`
- Hugetlb []*HugeTlbStat `protobuf:"bytes,7,rep,name=hugetlb,proto3" json:"hugetlb,omitempty"`
- MemoryEvents *MemoryEvents `protobuf:"bytes,8,opt,name=memory_events,json=memoryEvents,proto3" json:"memory_events,omitempty"`
- XXX_NoUnkeyedLiteral struct{} `json:"-"`
- XXX_unrecognized []byte `json:"-"`
- XXX_sizecache int32 `json:"-"`
-}
-
-func (m *Metrics) Reset() { *m = Metrics{} }
-func (*Metrics) ProtoMessage() {}
-func (*Metrics) Descriptor() ([]byte, []int) {
- return fileDescriptor_2fc6005842049e6b, []int{0}
-}
-func (m *Metrics) XXX_Unmarshal(b []byte) error {
- return m.Unmarshal(b)
-}
-func (m *Metrics) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
- if deterministic {
- return xxx_messageInfo_Metrics.Marshal(b, m, deterministic)
- } else {
- b = b[:cap(b)]
- n, err := m.MarshalToSizedBuffer(b)
- if err != nil {
- return nil, err
- }
- return b[:n], nil
- }
-}
-func (m *Metrics) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Metrics.Merge(m, src)
-}
-func (m *Metrics) XXX_Size() int {
- return m.Size()
-}
-func (m *Metrics) XXX_DiscardUnknown() {
- xxx_messageInfo_Metrics.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Metrics proto.InternalMessageInfo
-
-type PidsStat struct {
- Current uint64 `protobuf:"varint,1,opt,name=current,proto3" json:"current,omitempty"`
- Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"`
- XXX_NoUnkeyedLiteral struct{} `json:"-"`
- XXX_unrecognized []byte `json:"-"`
- XXX_sizecache int32 `json:"-"`
-}
-
-func (m *PidsStat) Reset() { *m = PidsStat{} }
-func (*PidsStat) ProtoMessage() {}
-func (*PidsStat) Descriptor() ([]byte, []int) {
- return fileDescriptor_2fc6005842049e6b, []int{1}
-}
-func (m *PidsStat) XXX_Unmarshal(b []byte) error {
- return m.Unmarshal(b)
-}
-func (m *PidsStat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
- if deterministic {
- return xxx_messageInfo_PidsStat.Marshal(b, m, deterministic)
- } else {
- b = b[:cap(b)]
- n, err := m.MarshalToSizedBuffer(b)
- if err != nil {
- return nil, err
- }
- return b[:n], nil
- }
-}
-func (m *PidsStat) XXX_Merge(src proto.Message) {
- xxx_messageInfo_PidsStat.Merge(m, src)
-}
-func (m *PidsStat) XXX_Size() int {
- return m.Size()
-}
-func (m *PidsStat) XXX_DiscardUnknown() {
- xxx_messageInfo_PidsStat.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_PidsStat proto.InternalMessageInfo
-
-type CPUStat struct {
- UsageUsec uint64 `protobuf:"varint,1,opt,name=usage_usec,json=usageUsec,proto3" json:"usage_usec,omitempty"`
- UserUsec uint64 `protobuf:"varint,2,opt,name=user_usec,json=userUsec,proto3" json:"user_usec,omitempty"`
- SystemUsec uint64 `protobuf:"varint,3,opt,name=system_usec,json=systemUsec,proto3" json:"system_usec,omitempty"`
- NrPeriods uint64 `protobuf:"varint,4,opt,name=nr_periods,json=nrPeriods,proto3" json:"nr_periods,omitempty"`
- NrThrottled uint64 `protobuf:"varint,5,opt,name=nr_throttled,json=nrThrottled,proto3" json:"nr_throttled,omitempty"`
- ThrottledUsec uint64 `protobuf:"varint,6,opt,name=throttled_usec,json=throttledUsec,proto3" json:"throttled_usec,omitempty"`
- XXX_NoUnkeyedLiteral struct{} `json:"-"`
- XXX_unrecognized []byte `json:"-"`
- XXX_sizecache int32 `json:"-"`
-}
-
-func (m *CPUStat) Reset() { *m = CPUStat{} }
-func (*CPUStat) ProtoMessage() {}
-func (*CPUStat) Descriptor() ([]byte, []int) {
- return fileDescriptor_2fc6005842049e6b, []int{2}
-}
-func (m *CPUStat) XXX_Unmarshal(b []byte) error {
- return m.Unmarshal(b)
-}
-func (m *CPUStat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
- if deterministic {
- return xxx_messageInfo_CPUStat.Marshal(b, m, deterministic)
- } else {
- b = b[:cap(b)]
- n, err := m.MarshalToSizedBuffer(b)
- if err != nil {
- return nil, err
- }
- return b[:n], nil
- }
-}
-func (m *CPUStat) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CPUStat.Merge(m, src)
-}
-func (m *CPUStat) XXX_Size() int {
- return m.Size()
-}
-func (m *CPUStat) XXX_DiscardUnknown() {
- xxx_messageInfo_CPUStat.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_CPUStat proto.InternalMessageInfo
-
-type MemoryStat struct {
- Anon uint64 `protobuf:"varint,1,opt,name=anon,proto3" json:"anon,omitempty"`
- File uint64 `protobuf:"varint,2,opt,name=file,proto3" json:"file,omitempty"`
- KernelStack uint64 `protobuf:"varint,3,opt,name=kernel_stack,json=kernelStack,proto3" json:"kernel_stack,omitempty"`
- Slab uint64 `protobuf:"varint,4,opt,name=slab,proto3" json:"slab,omitempty"`
- Sock uint64 `protobuf:"varint,5,opt,name=sock,proto3" json:"sock,omitempty"`
- Shmem uint64 `protobuf:"varint,6,opt,name=shmem,proto3" json:"shmem,omitempty"`
- FileMapped uint64 `protobuf:"varint,7,opt,name=file_mapped,json=fileMapped,proto3" json:"file_mapped,omitempty"`
- FileDirty uint64 `protobuf:"varint,8,opt,name=file_dirty,json=fileDirty,proto3" json:"file_dirty,omitempty"`
- FileWriteback uint64 `protobuf:"varint,9,opt,name=file_writeback,json=fileWriteback,proto3" json:"file_writeback,omitempty"`
- AnonThp uint64 `protobuf:"varint,10,opt,name=anon_thp,json=anonThp,proto3" json:"anon_thp,omitempty"`
- InactiveAnon uint64 `protobuf:"varint,11,opt,name=inactive_anon,json=inactiveAnon,proto3" json:"inactive_anon,omitempty"`
- ActiveAnon uint64 `protobuf:"varint,12,opt,name=active_anon,json=activeAnon,proto3" json:"active_anon,omitempty"`
- InactiveFile uint64 `protobuf:"varint,13,opt,name=inactive_file,json=inactiveFile,proto3" json:"inactive_file,omitempty"`
- ActiveFile uint64 `protobuf:"varint,14,opt,name=active_file,json=activeFile,proto3" json:"active_file,omitempty"`
- Unevictable uint64 `protobuf:"varint,15,opt,name=unevictable,proto3" json:"unevictable,omitempty"`
- SlabReclaimable uint64 `protobuf:"varint,16,opt,name=slab_reclaimable,json=slabReclaimable,proto3" json:"slab_reclaimable,omitempty"`
- SlabUnreclaimable uint64 `protobuf:"varint,17,opt,name=slab_unreclaimable,json=slabUnreclaimable,proto3" json:"slab_unreclaimable,omitempty"`
- Pgfault uint64 `protobuf:"varint,18,opt,name=pgfault,proto3" json:"pgfault,omitempty"`
- Pgmajfault uint64 `protobuf:"varint,19,opt,name=pgmajfault,proto3" json:"pgmajfault,omitempty"`
- WorkingsetRefault uint64 `protobuf:"varint,20,opt,name=workingset_refault,json=workingsetRefault,proto3" json:"workingset_refault,omitempty"`
- WorkingsetActivate uint64 `protobuf:"varint,21,opt,name=workingset_activate,json=workingsetActivate,proto3" json:"workingset_activate,omitempty"`
- WorkingsetNodereclaim uint64 `protobuf:"varint,22,opt,name=workingset_nodereclaim,json=workingsetNodereclaim,proto3" json:"workingset_nodereclaim,omitempty"`
- Pgrefill uint64 `protobuf:"varint,23,opt,name=pgrefill,proto3" json:"pgrefill,omitempty"`
- Pgscan uint64 `protobuf:"varint,24,opt,name=pgscan,proto3" json:"pgscan,omitempty"`
- Pgsteal uint64 `protobuf:"varint,25,opt,name=pgsteal,proto3" json:"pgsteal,omitempty"`
- Pgactivate uint64 `protobuf:"varint,26,opt,name=pgactivate,proto3" json:"pgactivate,omitempty"`
- Pgdeactivate uint64 `protobuf:"varint,27,opt,name=pgdeactivate,proto3" json:"pgdeactivate,omitempty"`
- Pglazyfree uint64 `protobuf:"varint,28,opt,name=pglazyfree,proto3" json:"pglazyfree,omitempty"`
- Pglazyfreed uint64 `protobuf:"varint,29,opt,name=pglazyfreed,proto3" json:"pglazyfreed,omitempty"`
- ThpFaultAlloc uint64 `protobuf:"varint,30,opt,name=thp_fault_alloc,json=thpFaultAlloc,proto3" json:"thp_fault_alloc,omitempty"`
- ThpCollapseAlloc uint64 `protobuf:"varint,31,opt,name=thp_collapse_alloc,json=thpCollapseAlloc,proto3" json:"thp_collapse_alloc,omitempty"`
- Usage uint64 `protobuf:"varint,32,opt,name=usage,proto3" json:"usage,omitempty"`
- UsageLimit uint64 `protobuf:"varint,33,opt,name=usage_limit,json=usageLimit,proto3" json:"usage_limit,omitempty"`
- SwapUsage uint64 `protobuf:"varint,34,opt,name=swap_usage,json=swapUsage,proto3" json:"swap_usage,omitempty"`
- SwapLimit uint64 `protobuf:"varint,35,opt,name=swap_limit,json=swapLimit,proto3" json:"swap_limit,omitempty"`
- XXX_NoUnkeyedLiteral struct{} `json:"-"`
- XXX_unrecognized []byte `json:"-"`
- XXX_sizecache int32 `json:"-"`
-}
-
-func (m *MemoryStat) Reset() { *m = MemoryStat{} }
-func (*MemoryStat) ProtoMessage() {}
-func (*MemoryStat) Descriptor() ([]byte, []int) {
- return fileDescriptor_2fc6005842049e6b, []int{3}
-}
-func (m *MemoryStat) XXX_Unmarshal(b []byte) error {
- return m.Unmarshal(b)
-}
-func (m *MemoryStat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
- if deterministic {
- return xxx_messageInfo_MemoryStat.Marshal(b, m, deterministic)
- } else {
- b = b[:cap(b)]
- n, err := m.MarshalToSizedBuffer(b)
- if err != nil {
- return nil, err
- }
- return b[:n], nil
- }
-}
-func (m *MemoryStat) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MemoryStat.Merge(m, src)
-}
-func (m *MemoryStat) XXX_Size() int {
- return m.Size()
-}
-func (m *MemoryStat) XXX_DiscardUnknown() {
- xxx_messageInfo_MemoryStat.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MemoryStat proto.InternalMessageInfo
-
-type MemoryEvents struct {
- Low uint64 `protobuf:"varint,1,opt,name=low,proto3" json:"low,omitempty"`
- High uint64 `protobuf:"varint,2,opt,name=high,proto3" json:"high,omitempty"`
- Max uint64 `protobuf:"varint,3,opt,name=max,proto3" json:"max,omitempty"`
- Oom uint64 `protobuf:"varint,4,opt,name=oom,proto3" json:"oom,omitempty"`
- OomKill uint64 `protobuf:"varint,5,opt,name=oom_kill,json=oomKill,proto3" json:"oom_kill,omitempty"`
- XXX_NoUnkeyedLiteral struct{} `json:"-"`
- XXX_unrecognized []byte `json:"-"`
- XXX_sizecache int32 `json:"-"`
-}
-
-func (m *MemoryEvents) Reset() { *m = MemoryEvents{} }
-func (*MemoryEvents) ProtoMessage() {}
-func (*MemoryEvents) Descriptor() ([]byte, []int) {
- return fileDescriptor_2fc6005842049e6b, []int{4}
-}
-func (m *MemoryEvents) XXX_Unmarshal(b []byte) error {
- return m.Unmarshal(b)
-}
-func (m *MemoryEvents) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
- if deterministic {
- return xxx_messageInfo_MemoryEvents.Marshal(b, m, deterministic)
- } else {
- b = b[:cap(b)]
- n, err := m.MarshalToSizedBuffer(b)
- if err != nil {
- return nil, err
- }
- return b[:n], nil
- }
-}
-func (m *MemoryEvents) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MemoryEvents.Merge(m, src)
-}
-func (m *MemoryEvents) XXX_Size() int {
- return m.Size()
-}
-func (m *MemoryEvents) XXX_DiscardUnknown() {
- xxx_messageInfo_MemoryEvents.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MemoryEvents proto.InternalMessageInfo
-
-type RdmaStat struct {
- Current []*RdmaEntry `protobuf:"bytes,1,rep,name=current,proto3" json:"current,omitempty"`
- Limit []*RdmaEntry `protobuf:"bytes,2,rep,name=limit,proto3" json:"limit,omitempty"`
- XXX_NoUnkeyedLiteral struct{} `json:"-"`
- XXX_unrecognized []byte `json:"-"`
- XXX_sizecache int32 `json:"-"`
-}
-
-func (m *RdmaStat) Reset() { *m = RdmaStat{} }
-func (*RdmaStat) ProtoMessage() {}
-func (*RdmaStat) Descriptor() ([]byte, []int) {
- return fileDescriptor_2fc6005842049e6b, []int{5}
-}
-func (m *RdmaStat) XXX_Unmarshal(b []byte) error {
- return m.Unmarshal(b)
-}
-func (m *RdmaStat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
- if deterministic {
- return xxx_messageInfo_RdmaStat.Marshal(b, m, deterministic)
- } else {
- b = b[:cap(b)]
- n, err := m.MarshalToSizedBuffer(b)
- if err != nil {
- return nil, err
- }
- return b[:n], nil
- }
-}
-func (m *RdmaStat) XXX_Merge(src proto.Message) {
- xxx_messageInfo_RdmaStat.Merge(m, src)
-}
-func (m *RdmaStat) XXX_Size() int {
- return m.Size()
-}
-func (m *RdmaStat) XXX_DiscardUnknown() {
- xxx_messageInfo_RdmaStat.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_RdmaStat proto.InternalMessageInfo
-
-type RdmaEntry struct {
- Device string `protobuf:"bytes,1,opt,name=device,proto3" json:"device,omitempty"`
- HcaHandles uint32 `protobuf:"varint,2,opt,name=hca_handles,json=hcaHandles,proto3" json:"hca_handles,omitempty"`
- HcaObjects uint32 `protobuf:"varint,3,opt,name=hca_objects,json=hcaObjects,proto3" json:"hca_objects,omitempty"`
- XXX_NoUnkeyedLiteral struct{} `json:"-"`
- XXX_unrecognized []byte `json:"-"`
- XXX_sizecache int32 `json:"-"`
-}
-
-func (m *RdmaEntry) Reset() { *m = RdmaEntry{} }
-func (*RdmaEntry) ProtoMessage() {}
-func (*RdmaEntry) Descriptor() ([]byte, []int) {
- return fileDescriptor_2fc6005842049e6b, []int{6}
-}
-func (m *RdmaEntry) XXX_Unmarshal(b []byte) error {
- return m.Unmarshal(b)
-}
-func (m *RdmaEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
- if deterministic {
- return xxx_messageInfo_RdmaEntry.Marshal(b, m, deterministic)
- } else {
- b = b[:cap(b)]
- n, err := m.MarshalToSizedBuffer(b)
- if err != nil {
- return nil, err
- }
- return b[:n], nil
- }
-}
-func (m *RdmaEntry) XXX_Merge(src proto.Message) {
- xxx_messageInfo_RdmaEntry.Merge(m, src)
-}
-func (m *RdmaEntry) XXX_Size() int {
- return m.Size()
-}
-func (m *RdmaEntry) XXX_DiscardUnknown() {
- xxx_messageInfo_RdmaEntry.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_RdmaEntry proto.InternalMessageInfo
-
-type IOStat struct {
- Usage []*IOEntry `protobuf:"bytes,1,rep,name=usage,proto3" json:"usage,omitempty"`
- XXX_NoUnkeyedLiteral struct{} `json:"-"`
- XXX_unrecognized []byte `json:"-"`
- XXX_sizecache int32 `json:"-"`
-}
-
-func (m *IOStat) Reset() { *m = IOStat{} }
-func (*IOStat) ProtoMessage() {}
-func (*IOStat) Descriptor() ([]byte, []int) {
- return fileDescriptor_2fc6005842049e6b, []int{7}
-}
-func (m *IOStat) XXX_Unmarshal(b []byte) error {
- return m.Unmarshal(b)
-}
-func (m *IOStat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
- if deterministic {
- return xxx_messageInfo_IOStat.Marshal(b, m, deterministic)
- } else {
- b = b[:cap(b)]
- n, err := m.MarshalToSizedBuffer(b)
- if err != nil {
- return nil, err
- }
- return b[:n], nil
- }
-}
-func (m *IOStat) XXX_Merge(src proto.Message) {
- xxx_messageInfo_IOStat.Merge(m, src)
-}
-func (m *IOStat) XXX_Size() int {
- return m.Size()
-}
-func (m *IOStat) XXX_DiscardUnknown() {
- xxx_messageInfo_IOStat.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_IOStat proto.InternalMessageInfo
-
-type IOEntry struct {
- Major uint64 `protobuf:"varint,1,opt,name=major,proto3" json:"major,omitempty"`
- Minor uint64 `protobuf:"varint,2,opt,name=minor,proto3" json:"minor,omitempty"`
- Rbytes uint64 `protobuf:"varint,3,opt,name=rbytes,proto3" json:"rbytes,omitempty"`
- Wbytes uint64 `protobuf:"varint,4,opt,name=wbytes,proto3" json:"wbytes,omitempty"`
- Rios uint64 `protobuf:"varint,5,opt,name=rios,proto3" json:"rios,omitempty"`
- Wios uint64 `protobuf:"varint,6,opt,name=wios,proto3" json:"wios,omitempty"`
- XXX_NoUnkeyedLiteral struct{} `json:"-"`
- XXX_unrecognized []byte `json:"-"`
- XXX_sizecache int32 `json:"-"`
-}
-
-func (m *IOEntry) Reset() { *m = IOEntry{} }
-func (*IOEntry) ProtoMessage() {}
-func (*IOEntry) Descriptor() ([]byte, []int) {
- return fileDescriptor_2fc6005842049e6b, []int{8}
-}
-func (m *IOEntry) XXX_Unmarshal(b []byte) error {
- return m.Unmarshal(b)
-}
-func (m *IOEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
- if deterministic {
- return xxx_messageInfo_IOEntry.Marshal(b, m, deterministic)
- } else {
- b = b[:cap(b)]
- n, err := m.MarshalToSizedBuffer(b)
- if err != nil {
- return nil, err
- }
- return b[:n], nil
- }
-}
-func (m *IOEntry) XXX_Merge(src proto.Message) {
- xxx_messageInfo_IOEntry.Merge(m, src)
-}
-func (m *IOEntry) XXX_Size() int {
- return m.Size()
-}
-func (m *IOEntry) XXX_DiscardUnknown() {
- xxx_messageInfo_IOEntry.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_IOEntry proto.InternalMessageInfo
-
-type HugeTlbStat struct {
- Current uint64 `protobuf:"varint,1,opt,name=current,proto3" json:"current,omitempty"`
- Max uint64 `protobuf:"varint,2,opt,name=max,proto3" json:"max,omitempty"`
- Pagesize string `protobuf:"bytes,3,opt,name=pagesize,proto3" json:"pagesize,omitempty"`
- XXX_NoUnkeyedLiteral struct{} `json:"-"`
- XXX_unrecognized []byte `json:"-"`
- XXX_sizecache int32 `json:"-"`
-}
-
-func (m *HugeTlbStat) Reset() { *m = HugeTlbStat{} }
-func (*HugeTlbStat) ProtoMessage() {}
-func (*HugeTlbStat) Descriptor() ([]byte, []int) {
- return fileDescriptor_2fc6005842049e6b, []int{9}
-}
-func (m *HugeTlbStat) XXX_Unmarshal(b []byte) error {
- return m.Unmarshal(b)
-}
-func (m *HugeTlbStat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
- if deterministic {
- return xxx_messageInfo_HugeTlbStat.Marshal(b, m, deterministic)
- } else {
- b = b[:cap(b)]
- n, err := m.MarshalToSizedBuffer(b)
- if err != nil {
- return nil, err
- }
- return b[:n], nil
- }
-}
-func (m *HugeTlbStat) XXX_Merge(src proto.Message) {
- xxx_messageInfo_HugeTlbStat.Merge(m, src)
-}
-func (m *HugeTlbStat) XXX_Size() int {
- return m.Size()
-}
-func (m *HugeTlbStat) XXX_DiscardUnknown() {
- xxx_messageInfo_HugeTlbStat.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_HugeTlbStat proto.InternalMessageInfo
-
-func init() {
- proto.RegisterType((*Metrics)(nil), "io.containerd.cgroups.v2.Metrics")
- proto.RegisterType((*PidsStat)(nil), "io.containerd.cgroups.v2.PidsStat")
- proto.RegisterType((*CPUStat)(nil), "io.containerd.cgroups.v2.CPUStat")
- proto.RegisterType((*MemoryStat)(nil), "io.containerd.cgroups.v2.MemoryStat")
- proto.RegisterType((*MemoryEvents)(nil), "io.containerd.cgroups.v2.MemoryEvents")
- proto.RegisterType((*RdmaStat)(nil), "io.containerd.cgroups.v2.RdmaStat")
- proto.RegisterType((*RdmaEntry)(nil), "io.containerd.cgroups.v2.RdmaEntry")
- proto.RegisterType((*IOStat)(nil), "io.containerd.cgroups.v2.IOStat")
- proto.RegisterType((*IOEntry)(nil), "io.containerd.cgroups.v2.IOEntry")
- proto.RegisterType((*HugeTlbStat)(nil), "io.containerd.cgroups.v2.HugeTlbStat")
-}
-
-func init() {
- proto.RegisterFile("github.com/containerd/cgroups/v2/stats/metrics.proto", fileDescriptor_2fc6005842049e6b)
-}
-
-var fileDescriptor_2fc6005842049e6b = []byte{
- // 1198 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x56, 0x4d, 0x73, 0xd4, 0x46,
- 0x13, 0x66, 0xed, 0xc5, 0xeb, 0xed, 0xb5, 0xc1, 0x0c, 0x86, 0x57, 0xc0, 0xcb, 0xda, 0x5e, 0x02,
- 0x45, 0xaa, 0x92, 0xdd, 0x94, 0xf3, 0x55, 0x49, 0x91, 0x4a, 0x19, 0x02, 0x45, 0x8a, 0x10, 0x5c,
- 0x02, 0x57, 0x8e, 0xaa, 0x59, 0x69, 0x2c, 0x0d, 0x96, 0x34, 0xaa, 0x99, 0x91, 0x1d, 0x73, 0xca,
- 0x21, 0xd7, 0x54, 0x7e, 0x4d, 0xfe, 0x03, 0xb7, 0xe4, 0x98, 0x53, 0x2a, 0xf8, 0x97, 0xa4, 0xba,
- 0x67, 0x64, 0x29, 0x07, 0x43, 0x6e, 0xd3, 0x4f, 0x3f, 0xdd, 0xea, 0x8f, 0x99, 0x6e, 0xc1, 0x27,
- 0xa9, 0xb4, 0x59, 0x3d, 0x9f, 0xc6, 0xaa, 0x98, 0xc5, 0xaa, 0xb4, 0x5c, 0x96, 0x42, 0x27, 0xb3,
- 0x38, 0xd5, 0xaa, 0xae, 0xcc, 0xec, 0x70, 0x7b, 0x66, 0x2c, 0xb7, 0x66, 0x56, 0x08, 0xab, 0x65,
- 0x6c, 0xa6, 0x95, 0x56, 0x56, 0xb1, 0x40, 0xaa, 0x69, 0xcb, 0x9e, 0x7a, 0xf6, 0xf4, 0x70, 0xfb,
- 0xfa, 0x7a, 0xaa, 0x52, 0x45, 0xa4, 0x19, 0x9e, 0x1c, 0x7f, 0xf2, 0xdb, 0x22, 0x0c, 0x9e, 0x3a,
- 0x0f, 0xec, 0x33, 0xe8, 0x57, 0x32, 0x31, 0x41, 0x6f, 0xb3, 0x77, 0x77, 0xb4, 0x3d, 0x99, 0x9e,
- 0xe5, 0x6a, 0xba, 0x2b, 0x13, 0xf3, 0xdc, 0x72, 0x1b, 0x12, 0x9f, 0xdd, 0x83, 0xc5, 0xb8, 0xaa,
- 0x83, 0x05, 0x32, 0xdb, 0x3a, 0xdb, 0xec, 0xc1, 0xee, 0x1e, 0x5a, 0xdd, 0x1f, 0x9c, 0xfc, 0xb5,
- 0xb1, 0xf8, 0x60, 0x77, 0x2f, 0x44, 0x33, 0x76, 0x0f, 0x96, 0x0a, 0x51, 0x28, 0x7d, 0x1c, 0xf4,
- 0xc9, 0xc1, 0x7b, 0x67, 0x3b, 0x78, 0x4a, 0x3c, 0xfa, 0xb2, 0xb7, 0xc1, 0x98, 0x75, 0x52, 0xf0,
- 0xe0, 0xfc, 0xbb, 0x62, 0x0e, 0x93, 0x82, 0xbb, 0x98, 0x91, 0xcf, 0x3e, 0x82, 0x05, 0xa9, 0x82,
- 0x25, 0xb2, 0xda, 0x3c, 0xdb, 0xea, 0xdb, 0x67, 0x64, 0xb3, 0x20, 0x15, 0xfb, 0x1a, 0x06, 0x59,
- 0x9d, 0x0a, 0x9b, 0xcf, 0x83, 0xc1, 0xe6, 0xe2, 0xdd, 0xd1, 0xf6, 0xed, 0xb3, 0xcd, 0x1e, 0xd7,
- 0xa9, 0x78, 0x91, 0xcf, 0xc9, 0xb6, 0xb1, 0x62, 0x4f, 0x60, 0xd5, 0x05, 0x1d, 0x89, 0x43, 0x51,
- 0x5a, 0x13, 0x2c, 0xd3, 0xd7, 0xef, 0xbc, 0x2b, 0xdf, 0x87, 0xc4, 0x0e, 0x57, 0x8a, 0x8e, 0x34,
- 0xf9, 0x12, 0x96, 0x9b, 0x2e, 0xb0, 0x00, 0x06, 0x71, 0xad, 0xb5, 0x28, 0x2d, 0xb5, 0xae, 0x1f,
- 0x36, 0x22, 0x5b, 0x87, 0xf3, 0xb9, 0x2c, 0xa4, 0xa5, 0xde, 0xf4, 0x43, 0x27, 0x4c, 0x7e, 0xef,
- 0xc1, 0xc0, 0xf7, 0x82, 0xdd, 0x04, 0xa8, 0x0d, 0x4f, 0x45, 0x54, 0x1b, 0x11, 0x7b, 0xf3, 0x21,
- 0x21, 0x7b, 0x46, 0xc4, 0xec, 0x06, 0x0c, 0x6b, 0x23, 0xb4, 0xd3, 0x3a, 0x27, 0xcb, 0x08, 0x90,
- 0x72, 0x03, 0x46, 0xe6, 0xd8, 0x58, 0x51, 0x38, 0xf5, 0x22, 0xa9, 0xc1, 0x41, 0x44, 0xb8, 0x09,
- 0x50, 0xea, 0xa8, 0x12, 0x5a, 0xaa, 0xc4, 0x50, 0x7b, 0xfb, 0xe1, 0xb0, 0xd4, 0xbb, 0x0e, 0x60,
- 0x5b, 0xb0, 0x52, 0xea, 0xc8, 0x66, 0x5a, 0x59, 0x9b, 0x8b, 0x84, 0x7a, 0xd8, 0x0f, 0x47, 0xa5,
- 0x7e, 0xd1, 0x40, 0xec, 0x36, 0x5c, 0x38, 0xd5, 0xbb, 0xaf, 0x2c, 0x11, 0x69, 0xf5, 0x14, 0xc5,
- 0x0f, 0x4d, 0x7e, 0x1d, 0x02, 0xb4, 0x97, 0x83, 0x31, 0xe8, 0xf3, 0x52, 0x95, 0x3e, 0x1d, 0x3a,
- 0x23, 0xb6, 0x2f, 0x73, 0xe1, 0x93, 0xa0, 0x33, 0x06, 0x70, 0x20, 0x74, 0x29, 0xf2, 0xc8, 0x58,
- 0x1e, 0x1f, 0xf8, 0x0c, 0x46, 0x0e, 0x7b, 0x8e, 0x10, 0x9a, 0x99, 0x9c, 0xcf, 0x7d, 0xf0, 0x74,
- 0x26, 0x4c, 0xc5, 0x07, 0x3e, 0x5e, 0x3a, 0x63, 0xa5, 0x4d, 0x56, 0x88, 0xc2, 0xc7, 0xe7, 0x04,
- 0xac, 0x10, 0x7e, 0x28, 0x2a, 0x78, 0x55, 0x89, 0x24, 0x18, 0xb8, 0x0a, 0x21, 0xf4, 0x94, 0x10,
- 0xac, 0x10, 0x11, 0x12, 0xa9, 0xed, 0x31, 0x5d, 0x88, 0x7e, 0x38, 0x44, 0xe4, 0x1b, 0x04, 0x30,
- 0x7d, 0x52, 0x1f, 0x69, 0x69, 0xc5, 0x1c, 0x43, 0x1c, 0xba, 0xf4, 0x11, 0xfd, 0xa1, 0x01, 0xd9,
- 0x35, 0x58, 0xc6, 0x1c, 0x23, 0x9b, 0x55, 0x01, 0xb8, 0x1b, 0x80, 0xf2, 0x8b, 0xac, 0x62, 0xb7,
- 0x60, 0x55, 0x96, 0x3c, 0xb6, 0xf2, 0x50, 0x44, 0x54, 0x93, 0x11, 0xe9, 0x57, 0x1a, 0x70, 0x07,
- 0x6b, 0xb3, 0x01, 0xa3, 0x2e, 0x65, 0xc5, 0x85, 0xd9, 0x21, 0x74, 0xbd, 0x50, 0x15, 0x57, 0xff,
- 0xed, 0xe5, 0x11, 0x56, 0xb3, 0xf5, 0x42, 0x94, 0x0b, 0x5d, 0x2f, 0x44, 0xd8, 0x84, 0x51, 0x5d,
- 0x8a, 0x43, 0x19, 0x5b, 0x3e, 0xcf, 0x45, 0x70, 0xd1, 0x55, 0xbb, 0x03, 0xb1, 0xf7, 0x61, 0x0d,
- 0x2b, 0x1c, 0x69, 0x11, 0xe7, 0x5c, 0x16, 0x44, 0x5b, 0x23, 0xda, 0x45, 0xc4, 0xc3, 0x16, 0x66,
- 0x1f, 0x02, 0x23, 0x6a, 0x5d, 0x76, 0xc9, 0x97, 0x88, 0x7c, 0x09, 0x35, 0x7b, 0x5d, 0x05, 0xbe,
- 0x91, 0x2a, 0xdd, 0xe7, 0x75, 0x6e, 0x03, 0xe6, 0x2a, 0xe4, 0x45, 0x36, 0x06, 0xa8, 0xd2, 0x82,
- 0xbf, 0x74, 0xca, 0xcb, 0x2e, 0xea, 0x16, 0xc1, 0x0f, 0x1d, 0x29, 0x7d, 0x20, 0xcb, 0xd4, 0x08,
- 0x1b, 0x69, 0xe1, 0x78, 0xeb, 0xee, 0x43, 0xad, 0x26, 0x74, 0x0a, 0x36, 0x83, 0xcb, 0x1d, 0x3a,
- 0x65, 0xcf, 0xad, 0x08, 0xae, 0x10, 0xbf, 0xe3, 0x69, 0xc7, 0x6b, 0xd8, 0xa7, 0x70, 0xb5, 0x63,
- 0x50, 0xaa, 0x44, 0xf8, 0xb8, 0x83, 0xab, 0x64, 0x73, 0xa5, 0xd5, 0x7e, 0xdf, 0x2a, 0xd9, 0x75,
- 0x58, 0xae, 0x52, 0x2d, 0xf6, 0x65, 0x9e, 0x07, 0xff, 0x73, 0x0f, 0xb3, 0x91, 0xd9, 0x55, 0x58,
- 0xaa, 0x52, 0x13, 0xf3, 0x32, 0x08, 0x48, 0xe3, 0x25, 0x57, 0x04, 0x63, 0x05, 0xcf, 0x83, 0x6b,
- 0x4d, 0x11, 0x48, 0x74, 0x45, 0x38, 0x0d, 0xf6, 0x7a, 0x53, 0x84, 0x06, 0x61, 0x13, 0x58, 0xa9,
- 0xd2, 0x44, 0x9c, 0x32, 0x6e, 0xb8, 0xfe, 0x77, 0x31, 0xe7, 0x23, 0xe7, 0xaf, 0x8e, 0xf7, 0xb5,
- 0x10, 0xc1, 0xff, 0x1b, 0x1f, 0x0d, 0x82, 0xed, 0x6f, 0xa5, 0x24, 0xb8, 0xe9, 0xda, 0xdf, 0x81,
- 0xd8, 0x1d, 0xb8, 0x68, 0xb3, 0x2a, 0xa2, 0x42, 0x46, 0x3c, 0xcf, 0x55, 0x1c, 0x8c, 0x9b, 0xe7,
- 0x5e, 0x3d, 0x42, 0x74, 0x07, 0x41, 0xf6, 0x01, 0x30, 0xe4, 0xc5, 0x2a, 0xcf, 0x79, 0x65, 0x84,
- 0xa7, 0x6e, 0x10, 0x75, 0xcd, 0x66, 0xd5, 0x03, 0xaf, 0x70, 0xec, 0x75, 0x38, 0x4f, 0x03, 0x2d,
- 0xd8, 0x74, 0x4f, 0x93, 0x04, 0xbc, 0xad, 0x6e, 0xf0, 0xb9, 0x01, 0xb9, 0xe5, 0xc2, 0x25, 0xe8,
- 0x3b, 0x44, 0xf0, 0x69, 0x9a, 0x23, 0x5e, 0x45, 0xce, 0x76, 0xe2, 0x9e, 0x26, 0x22, 0x7b, 0x64,
- 0xdf, 0xa8, 0x9d, 0xf9, 0xad, 0x56, 0x4d, 0xd6, 0x13, 0x03, 0x2b, 0xdd, 0xe9, 0xcd, 0xd6, 0x60,
- 0x31, 0x57, 0x47, 0x7e, 0x22, 0xe1, 0x11, 0xa7, 0x48, 0x26, 0xd3, 0xac, 0x19, 0x48, 0x78, 0x46,
- 0x56, 0xc1, 0x7f, 0xf4, 0x73, 0x08, 0x8f, 0x88, 0x28, 0x55, 0xf8, 0xf1, 0x83, 0x47, 0x7c, 0xec,
- 0x4a, 0x15, 0xd1, 0x01, 0x36, 0xde, 0x4d, 0xa0, 0x81, 0x52, 0xc5, 0x13, 0x99, 0xe7, 0x93, 0x9f,
- 0x7b, 0xb0, 0xdc, 0xec, 0x39, 0xf6, 0x55, 0x77, 0x2b, 0xe0, 0xbe, 0xba, 0xf5, 0xf6, 0xe5, 0xf8,
- 0xb0, 0xb4, 0xfa, 0xb8, 0x5d, 0x1d, 0x5f, 0xb4, 0xab, 0xe3, 0x3f, 0x1b, 0xfb, 0xfd, 0x22, 0x60,
- 0x78, 0x8a, 0xe1, 0x5d, 0x4c, 0xf0, 0x81, 0x0b, 0xca, 0x7d, 0x18, 0x7a, 0x09, 0xeb, 0x9f, 0xc5,
- 0x3c, 0xca, 0x78, 0x99, 0xe4, 0xc2, 0x50, 0x15, 0x56, 0x43, 0xc8, 0x62, 0xfe, 0xd8, 0x21, 0x0d,
- 0x41, 0xcd, 0x5f, 0x8a, 0xd8, 0x1a, 0xaa, 0x89, 0x23, 0x3c, 0x73, 0xc8, 0x64, 0x07, 0x96, 0xdc,
- 0x7a, 0x66, 0x9f, 0x37, 0x1d, 0x76, 0x89, 0x6e, 0xbd, 0x6d, 0x9f, 0xfb, 0x48, 0x89, 0x3f, 0xf9,
- 0xa5, 0x07, 0x03, 0x0f, 0xe1, 0x35, 0x29, 0xf8, 0x4b, 0xa5, 0x7d, 0x8f, 0x9c, 0x40, 0xa8, 0x2c,
- 0x95, 0x6e, 0x36, 0x28, 0x09, 0x98, 0x94, 0x9e, 0x1f, 0x5b, 0x61, 0x7c, 0xab, 0xbc, 0x84, 0xf8,
- 0x91, 0xc3, 0x5d, 0xc3, 0xbc, 0x84, 0xbd, 0xd6, 0x52, 0x99, 0x66, 0x63, 0xe0, 0x19, 0xb1, 0x23,
- 0xc4, 0xdc, 0xc2, 0xa0, 0xf3, 0x64, 0x0f, 0x46, 0x9d, 0x5f, 0x87, 0xb7, 0x2c, 0x76, 0x7f, 0x51,
- 0x16, 0xda, 0x8b, 0x82, 0xf3, 0x80, 0xa7, 0xc2, 0xc8, 0x57, 0x82, 0x82, 0x1a, 0x86, 0xa7, 0xf2,
- 0xfd, 0xe0, 0xf5, 0x9b, 0xf1, 0xb9, 0x3f, 0xdf, 0x8c, 0xcf, 0xfd, 0x74, 0x32, 0xee, 0xbd, 0x3e,
- 0x19, 0xf7, 0xfe, 0x38, 0x19, 0xf7, 0xfe, 0x3e, 0x19, 0xf7, 0xe6, 0x4b, 0xf4, 0x17, 0xf8, 0xf1,
- 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x4f, 0x2b, 0x30, 0xd6, 0x6d, 0x0a, 0x00, 0x00,
-}
-
-func (m *Metrics) Marshal() (dAtA []byte, err error) {
- size := m.Size()
- dAtA = make([]byte, size)
- n, err := m.MarshalToSizedBuffer(dAtA[:size])
- if err != nil {
- return nil, err
- }
- return dAtA[:n], nil
-}
-
-func (m *Metrics) MarshalTo(dAtA []byte) (int, error) {
- size := m.Size()
- return m.MarshalToSizedBuffer(dAtA[:size])
-}
-
-func (m *Metrics) MarshalToSizedBuffer(dAtA []byte) (int, error) {
- i := len(dAtA)
- _ = i
- var l int
- _ = l
- if m.XXX_unrecognized != nil {
- i -= len(m.XXX_unrecognized)
- copy(dAtA[i:], m.XXX_unrecognized)
- }
- if m.MemoryEvents != nil {
- {
- size, err := m.MemoryEvents.MarshalToSizedBuffer(dAtA[:i])
- if err != nil {
- return 0, err
- }
- i -= size
- i = encodeVarintMetrics(dAtA, i, uint64(size))
- }
- i--
- dAtA[i] = 0x42
- }
- if len(m.Hugetlb) > 0 {
- for iNdEx := len(m.Hugetlb) - 1; iNdEx >= 0; iNdEx-- {
- {
- size, err := m.Hugetlb[iNdEx].MarshalToSizedBuffer(dAtA[:i])
- if err != nil {
- return 0, err
- }
- i -= size
- i = encodeVarintMetrics(dAtA, i, uint64(size))
- }
- i--
- dAtA[i] = 0x3a
- }
- }
- if m.Io != nil {
- {
- size, err := m.Io.MarshalToSizedBuffer(dAtA[:i])
- if err != nil {
- return 0, err
- }
- i -= size
- i = encodeVarintMetrics(dAtA, i, uint64(size))
- }
- i--
- dAtA[i] = 0x32
- }
- if m.Rdma != nil {
- {
- size, err := m.Rdma.MarshalToSizedBuffer(dAtA[:i])
- if err != nil {
- return 0, err
- }
- i -= size
- i = encodeVarintMetrics(dAtA, i, uint64(size))
- }
- i--
- dAtA[i] = 0x2a
- }
- if m.Memory != nil {
- {
- size, err := m.Memory.MarshalToSizedBuffer(dAtA[:i])
- if err != nil {
- return 0, err
- }
- i -= size
- i = encodeVarintMetrics(dAtA, i, uint64(size))
- }
- i--
- dAtA[i] = 0x22
- }
- if m.CPU != nil {
- {
- size, err := m.CPU.MarshalToSizedBuffer(dAtA[:i])
- if err != nil {
- return 0, err
- }
- i -= size
- i = encodeVarintMetrics(dAtA, i, uint64(size))
- }
- i--
- dAtA[i] = 0x12
- }
- if m.Pids != nil {
- {
- size, err := m.Pids.MarshalToSizedBuffer(dAtA[:i])
- if err != nil {
- return 0, err
- }
- i -= size
- i = encodeVarintMetrics(dAtA, i, uint64(size))
- }
- i--
- dAtA[i] = 0xa
- }
- return len(dAtA) - i, nil
-}
-
-func (m *PidsStat) Marshal() (dAtA []byte, err error) {
- size := m.Size()
- dAtA = make([]byte, size)
- n, err := m.MarshalToSizedBuffer(dAtA[:size])
- if err != nil {
- return nil, err
- }
- return dAtA[:n], nil
-}
-
-func (m *PidsStat) MarshalTo(dAtA []byte) (int, error) {
- size := m.Size()
- return m.MarshalToSizedBuffer(dAtA[:size])
-}
-
-func (m *PidsStat) MarshalToSizedBuffer(dAtA []byte) (int, error) {
- i := len(dAtA)
- _ = i
- var l int
- _ = l
- if m.XXX_unrecognized != nil {
- i -= len(m.XXX_unrecognized)
- copy(dAtA[i:], m.XXX_unrecognized)
- }
- if m.Limit != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.Limit))
- i--
- dAtA[i] = 0x10
- }
- if m.Current != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.Current))
- i--
- dAtA[i] = 0x8
- }
- return len(dAtA) - i, nil
-}
-
-func (m *CPUStat) Marshal() (dAtA []byte, err error) {
- size := m.Size()
- dAtA = make([]byte, size)
- n, err := m.MarshalToSizedBuffer(dAtA[:size])
- if err != nil {
- return nil, err
- }
- return dAtA[:n], nil
-}
-
-func (m *CPUStat) MarshalTo(dAtA []byte) (int, error) {
- size := m.Size()
- return m.MarshalToSizedBuffer(dAtA[:size])
-}
-
-func (m *CPUStat) MarshalToSizedBuffer(dAtA []byte) (int, error) {
- i := len(dAtA)
- _ = i
- var l int
- _ = l
- if m.XXX_unrecognized != nil {
- i -= len(m.XXX_unrecognized)
- copy(dAtA[i:], m.XXX_unrecognized)
- }
- if m.ThrottledUsec != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.ThrottledUsec))
- i--
- dAtA[i] = 0x30
- }
- if m.NrThrottled != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.NrThrottled))
- i--
- dAtA[i] = 0x28
- }
- if m.NrPeriods != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.NrPeriods))
- i--
- dAtA[i] = 0x20
- }
- if m.SystemUsec != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.SystemUsec))
- i--
- dAtA[i] = 0x18
- }
- if m.UserUsec != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.UserUsec))
- i--
- dAtA[i] = 0x10
- }
- if m.UsageUsec != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.UsageUsec))
- i--
- dAtA[i] = 0x8
- }
- return len(dAtA) - i, nil
-}
-
-func (m *MemoryStat) Marshal() (dAtA []byte, err error) {
- size := m.Size()
- dAtA = make([]byte, size)
- n, err := m.MarshalToSizedBuffer(dAtA[:size])
- if err != nil {
- return nil, err
- }
- return dAtA[:n], nil
-}
-
-func (m *MemoryStat) MarshalTo(dAtA []byte) (int, error) {
- size := m.Size()
- return m.MarshalToSizedBuffer(dAtA[:size])
-}
-
-func (m *MemoryStat) MarshalToSizedBuffer(dAtA []byte) (int, error) {
- i := len(dAtA)
- _ = i
- var l int
- _ = l
- if m.XXX_unrecognized != nil {
- i -= len(m.XXX_unrecognized)
- copy(dAtA[i:], m.XXX_unrecognized)
- }
- if m.SwapLimit != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.SwapLimit))
- i--
- dAtA[i] = 0x2
- i--
- dAtA[i] = 0x98
- }
- if m.SwapUsage != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.SwapUsage))
- i--
- dAtA[i] = 0x2
- i--
- dAtA[i] = 0x90
- }
- if m.UsageLimit != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.UsageLimit))
- i--
- dAtA[i] = 0x2
- i--
- dAtA[i] = 0x88
- }
- if m.Usage != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.Usage))
- i--
- dAtA[i] = 0x2
- i--
- dAtA[i] = 0x80
- }
- if m.ThpCollapseAlloc != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.ThpCollapseAlloc))
- i--
- dAtA[i] = 0x1
- i--
- dAtA[i] = 0xf8
- }
- if m.ThpFaultAlloc != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.ThpFaultAlloc))
- i--
- dAtA[i] = 0x1
- i--
- dAtA[i] = 0xf0
- }
- if m.Pglazyfreed != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.Pglazyfreed))
- i--
- dAtA[i] = 0x1
- i--
- dAtA[i] = 0xe8
- }
- if m.Pglazyfree != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.Pglazyfree))
- i--
- dAtA[i] = 0x1
- i--
- dAtA[i] = 0xe0
- }
- if m.Pgdeactivate != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.Pgdeactivate))
- i--
- dAtA[i] = 0x1
- i--
- dAtA[i] = 0xd8
- }
- if m.Pgactivate != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.Pgactivate))
- i--
- dAtA[i] = 0x1
- i--
- dAtA[i] = 0xd0
- }
- if m.Pgsteal != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.Pgsteal))
- i--
- dAtA[i] = 0x1
- i--
- dAtA[i] = 0xc8
- }
- if m.Pgscan != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.Pgscan))
- i--
- dAtA[i] = 0x1
- i--
- dAtA[i] = 0xc0
- }
- if m.Pgrefill != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.Pgrefill))
- i--
- dAtA[i] = 0x1
- i--
- dAtA[i] = 0xb8
- }
- if m.WorkingsetNodereclaim != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.WorkingsetNodereclaim))
- i--
- dAtA[i] = 0x1
- i--
- dAtA[i] = 0xb0
- }
- if m.WorkingsetActivate != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.WorkingsetActivate))
- i--
- dAtA[i] = 0x1
- i--
- dAtA[i] = 0xa8
- }
- if m.WorkingsetRefault != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.WorkingsetRefault))
- i--
- dAtA[i] = 0x1
- i--
- dAtA[i] = 0xa0
- }
- if m.Pgmajfault != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.Pgmajfault))
- i--
- dAtA[i] = 0x1
- i--
- dAtA[i] = 0x98
- }
- if m.Pgfault != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.Pgfault))
- i--
- dAtA[i] = 0x1
- i--
- dAtA[i] = 0x90
- }
- if m.SlabUnreclaimable != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.SlabUnreclaimable))
- i--
- dAtA[i] = 0x1
- i--
- dAtA[i] = 0x88
- }
- if m.SlabReclaimable != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.SlabReclaimable))
- i--
- dAtA[i] = 0x1
- i--
- dAtA[i] = 0x80
- }
- if m.Unevictable != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.Unevictable))
- i--
- dAtA[i] = 0x78
- }
- if m.ActiveFile != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.ActiveFile))
- i--
- dAtA[i] = 0x70
- }
- if m.InactiveFile != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.InactiveFile))
- i--
- dAtA[i] = 0x68
- }
- if m.ActiveAnon != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.ActiveAnon))
- i--
- dAtA[i] = 0x60
- }
- if m.InactiveAnon != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.InactiveAnon))
- i--
- dAtA[i] = 0x58
- }
- if m.AnonThp != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.AnonThp))
- i--
- dAtA[i] = 0x50
- }
- if m.FileWriteback != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.FileWriteback))
- i--
- dAtA[i] = 0x48
- }
- if m.FileDirty != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.FileDirty))
- i--
- dAtA[i] = 0x40
- }
- if m.FileMapped != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.FileMapped))
- i--
- dAtA[i] = 0x38
- }
- if m.Shmem != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.Shmem))
- i--
- dAtA[i] = 0x30
- }
- if m.Sock != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.Sock))
- i--
- dAtA[i] = 0x28
- }
- if m.Slab != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.Slab))
- i--
- dAtA[i] = 0x20
- }
- if m.KernelStack != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.KernelStack))
- i--
- dAtA[i] = 0x18
- }
- if m.File != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.File))
- i--
- dAtA[i] = 0x10
- }
- if m.Anon != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.Anon))
- i--
- dAtA[i] = 0x8
- }
- return len(dAtA) - i, nil
-}
-
-func (m *MemoryEvents) Marshal() (dAtA []byte, err error) {
- size := m.Size()
- dAtA = make([]byte, size)
- n, err := m.MarshalToSizedBuffer(dAtA[:size])
- if err != nil {
- return nil, err
- }
- return dAtA[:n], nil
-}
-
-func (m *MemoryEvents) MarshalTo(dAtA []byte) (int, error) {
- size := m.Size()
- return m.MarshalToSizedBuffer(dAtA[:size])
-}
-
-func (m *MemoryEvents) MarshalToSizedBuffer(dAtA []byte) (int, error) {
- i := len(dAtA)
- _ = i
- var l int
- _ = l
- if m.XXX_unrecognized != nil {
- i -= len(m.XXX_unrecognized)
- copy(dAtA[i:], m.XXX_unrecognized)
- }
- if m.OomKill != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.OomKill))
- i--
- dAtA[i] = 0x28
- }
- if m.Oom != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.Oom))
- i--
- dAtA[i] = 0x20
- }
- if m.Max != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.Max))
- i--
- dAtA[i] = 0x18
- }
- if m.High != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.High))
- i--
- dAtA[i] = 0x10
- }
- if m.Low != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.Low))
- i--
- dAtA[i] = 0x8
- }
- return len(dAtA) - i, nil
-}
-
-func (m *RdmaStat) Marshal() (dAtA []byte, err error) {
- size := m.Size()
- dAtA = make([]byte, size)
- n, err := m.MarshalToSizedBuffer(dAtA[:size])
- if err != nil {
- return nil, err
- }
- return dAtA[:n], nil
-}
-
-func (m *RdmaStat) MarshalTo(dAtA []byte) (int, error) {
- size := m.Size()
- return m.MarshalToSizedBuffer(dAtA[:size])
-}
-
-func (m *RdmaStat) MarshalToSizedBuffer(dAtA []byte) (int, error) {
- i := len(dAtA)
- _ = i
- var l int
- _ = l
- if m.XXX_unrecognized != nil {
- i -= len(m.XXX_unrecognized)
- copy(dAtA[i:], m.XXX_unrecognized)
- }
- if len(m.Limit) > 0 {
- for iNdEx := len(m.Limit) - 1; iNdEx >= 0; iNdEx-- {
- {
- size, err := m.Limit[iNdEx].MarshalToSizedBuffer(dAtA[:i])
- if err != nil {
- return 0, err
- }
- i -= size
- i = encodeVarintMetrics(dAtA, i, uint64(size))
- }
- i--
- dAtA[i] = 0x12
- }
- }
- if len(m.Current) > 0 {
- for iNdEx := len(m.Current) - 1; iNdEx >= 0; iNdEx-- {
- {
- size, err := m.Current[iNdEx].MarshalToSizedBuffer(dAtA[:i])
- if err != nil {
- return 0, err
- }
- i -= size
- i = encodeVarintMetrics(dAtA, i, uint64(size))
- }
- i--
- dAtA[i] = 0xa
- }
- }
- return len(dAtA) - i, nil
-}
-
-func (m *RdmaEntry) Marshal() (dAtA []byte, err error) {
- size := m.Size()
- dAtA = make([]byte, size)
- n, err := m.MarshalToSizedBuffer(dAtA[:size])
- if err != nil {
- return nil, err
- }
- return dAtA[:n], nil
-}
-
-func (m *RdmaEntry) MarshalTo(dAtA []byte) (int, error) {
- size := m.Size()
- return m.MarshalToSizedBuffer(dAtA[:size])
-}
-
-func (m *RdmaEntry) MarshalToSizedBuffer(dAtA []byte) (int, error) {
- i := len(dAtA)
- _ = i
- var l int
- _ = l
- if m.XXX_unrecognized != nil {
- i -= len(m.XXX_unrecognized)
- copy(dAtA[i:], m.XXX_unrecognized)
- }
- if m.HcaObjects != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.HcaObjects))
- i--
- dAtA[i] = 0x18
- }
- if m.HcaHandles != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.HcaHandles))
- i--
- dAtA[i] = 0x10
- }
- if len(m.Device) > 0 {
- i -= len(m.Device)
- copy(dAtA[i:], m.Device)
- i = encodeVarintMetrics(dAtA, i, uint64(len(m.Device)))
- i--
- dAtA[i] = 0xa
- }
- return len(dAtA) - i, nil
-}
-
-func (m *IOStat) Marshal() (dAtA []byte, err error) {
- size := m.Size()
- dAtA = make([]byte, size)
- n, err := m.MarshalToSizedBuffer(dAtA[:size])
- if err != nil {
- return nil, err
- }
- return dAtA[:n], nil
-}
-
-func (m *IOStat) MarshalTo(dAtA []byte) (int, error) {
- size := m.Size()
- return m.MarshalToSizedBuffer(dAtA[:size])
-}
-
-func (m *IOStat) MarshalToSizedBuffer(dAtA []byte) (int, error) {
- i := len(dAtA)
- _ = i
- var l int
- _ = l
- if m.XXX_unrecognized != nil {
- i -= len(m.XXX_unrecognized)
- copy(dAtA[i:], m.XXX_unrecognized)
- }
- if len(m.Usage) > 0 {
- for iNdEx := len(m.Usage) - 1; iNdEx >= 0; iNdEx-- {
- {
- size, err := m.Usage[iNdEx].MarshalToSizedBuffer(dAtA[:i])
- if err != nil {
- return 0, err
- }
- i -= size
- i = encodeVarintMetrics(dAtA, i, uint64(size))
- }
- i--
- dAtA[i] = 0xa
- }
- }
- return len(dAtA) - i, nil
-}
-
-func (m *IOEntry) Marshal() (dAtA []byte, err error) {
- size := m.Size()
- dAtA = make([]byte, size)
- n, err := m.MarshalToSizedBuffer(dAtA[:size])
- if err != nil {
- return nil, err
- }
- return dAtA[:n], nil
-}
-
-func (m *IOEntry) MarshalTo(dAtA []byte) (int, error) {
- size := m.Size()
- return m.MarshalToSizedBuffer(dAtA[:size])
-}
-
-func (m *IOEntry) MarshalToSizedBuffer(dAtA []byte) (int, error) {
- i := len(dAtA)
- _ = i
- var l int
- _ = l
- if m.XXX_unrecognized != nil {
- i -= len(m.XXX_unrecognized)
- copy(dAtA[i:], m.XXX_unrecognized)
- }
- if m.Wios != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.Wios))
- i--
- dAtA[i] = 0x30
- }
- if m.Rios != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.Rios))
- i--
- dAtA[i] = 0x28
- }
- if m.Wbytes != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.Wbytes))
- i--
- dAtA[i] = 0x20
- }
- if m.Rbytes != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.Rbytes))
- i--
- dAtA[i] = 0x18
- }
- if m.Minor != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.Minor))
- i--
- dAtA[i] = 0x10
- }
- if m.Major != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.Major))
- i--
- dAtA[i] = 0x8
- }
- return len(dAtA) - i, nil
-}
-
-func (m *HugeTlbStat) Marshal() (dAtA []byte, err error) {
- size := m.Size()
- dAtA = make([]byte, size)
- n, err := m.MarshalToSizedBuffer(dAtA[:size])
- if err != nil {
- return nil, err
- }
- return dAtA[:n], nil
-}
-
-func (m *HugeTlbStat) MarshalTo(dAtA []byte) (int, error) {
- size := m.Size()
- return m.MarshalToSizedBuffer(dAtA[:size])
-}
-
-func (m *HugeTlbStat) MarshalToSizedBuffer(dAtA []byte) (int, error) {
- i := len(dAtA)
- _ = i
- var l int
- _ = l
- if m.XXX_unrecognized != nil {
- i -= len(m.XXX_unrecognized)
- copy(dAtA[i:], m.XXX_unrecognized)
- }
- if len(m.Pagesize) > 0 {
- i -= len(m.Pagesize)
- copy(dAtA[i:], m.Pagesize)
- i = encodeVarintMetrics(dAtA, i, uint64(len(m.Pagesize)))
- i--
- dAtA[i] = 0x1a
- }
- if m.Max != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.Max))
- i--
- dAtA[i] = 0x10
- }
- if m.Current != 0 {
- i = encodeVarintMetrics(dAtA, i, uint64(m.Current))
- i--
- dAtA[i] = 0x8
- }
- return len(dAtA) - i, nil
-}
-
-func encodeVarintMetrics(dAtA []byte, offset int, v uint64) int {
- offset -= sovMetrics(v)
- base := offset
- for v >= 1<<7 {
- dAtA[offset] = uint8(v&0x7f | 0x80)
- v >>= 7
- offset++
- }
- dAtA[offset] = uint8(v)
- return base
-}
-func (m *Metrics) Size() (n int) {
- if m == nil {
- return 0
- }
- var l int
- _ = l
- if m.Pids != nil {
- l = m.Pids.Size()
- n += 1 + l + sovMetrics(uint64(l))
- }
- if m.CPU != nil {
- l = m.CPU.Size()
- n += 1 + l + sovMetrics(uint64(l))
- }
- if m.Memory != nil {
- l = m.Memory.Size()
- n += 1 + l + sovMetrics(uint64(l))
- }
- if m.Rdma != nil {
- l = m.Rdma.Size()
- n += 1 + l + sovMetrics(uint64(l))
- }
- if m.Io != nil {
- l = m.Io.Size()
- n += 1 + l + sovMetrics(uint64(l))
- }
- if len(m.Hugetlb) > 0 {
- for _, e := range m.Hugetlb {
- l = e.Size()
- n += 1 + l + sovMetrics(uint64(l))
- }
- }
- if m.MemoryEvents != nil {
- l = m.MemoryEvents.Size()
- n += 1 + l + sovMetrics(uint64(l))
- }
- if m.XXX_unrecognized != nil {
- n += len(m.XXX_unrecognized)
- }
- return n
-}
-
-func (m *PidsStat) Size() (n int) {
- if m == nil {
- return 0
- }
- var l int
- _ = l
- if m.Current != 0 {
- n += 1 + sovMetrics(uint64(m.Current))
- }
- if m.Limit != 0 {
- n += 1 + sovMetrics(uint64(m.Limit))
- }
- if m.XXX_unrecognized != nil {
- n += len(m.XXX_unrecognized)
- }
- return n
-}
-
-func (m *CPUStat) Size() (n int) {
- if m == nil {
- return 0
- }
- var l int
- _ = l
- if m.UsageUsec != 0 {
- n += 1 + sovMetrics(uint64(m.UsageUsec))
- }
- if m.UserUsec != 0 {
- n += 1 + sovMetrics(uint64(m.UserUsec))
- }
- if m.SystemUsec != 0 {
- n += 1 + sovMetrics(uint64(m.SystemUsec))
- }
- if m.NrPeriods != 0 {
- n += 1 + sovMetrics(uint64(m.NrPeriods))
- }
- if m.NrThrottled != 0 {
- n += 1 + sovMetrics(uint64(m.NrThrottled))
- }
- if m.ThrottledUsec != 0 {
- n += 1 + sovMetrics(uint64(m.ThrottledUsec))
- }
- if m.XXX_unrecognized != nil {
- n += len(m.XXX_unrecognized)
- }
- return n
-}
-
-func (m *MemoryStat) Size() (n int) {
- if m == nil {
- return 0
- }
- var l int
- _ = l
- if m.Anon != 0 {
- n += 1 + sovMetrics(uint64(m.Anon))
- }
- if m.File != 0 {
- n += 1 + sovMetrics(uint64(m.File))
- }
- if m.KernelStack != 0 {
- n += 1 + sovMetrics(uint64(m.KernelStack))
- }
- if m.Slab != 0 {
- n += 1 + sovMetrics(uint64(m.Slab))
- }
- if m.Sock != 0 {
- n += 1 + sovMetrics(uint64(m.Sock))
- }
- if m.Shmem != 0 {
- n += 1 + sovMetrics(uint64(m.Shmem))
- }
- if m.FileMapped != 0 {
- n += 1 + sovMetrics(uint64(m.FileMapped))
- }
- if m.FileDirty != 0 {
- n += 1 + sovMetrics(uint64(m.FileDirty))
- }
- if m.FileWriteback != 0 {
- n += 1 + sovMetrics(uint64(m.FileWriteback))
- }
- if m.AnonThp != 0 {
- n += 1 + sovMetrics(uint64(m.AnonThp))
- }
- if m.InactiveAnon != 0 {
- n += 1 + sovMetrics(uint64(m.InactiveAnon))
- }
- if m.ActiveAnon != 0 {
- n += 1 + sovMetrics(uint64(m.ActiveAnon))
- }
- if m.InactiveFile != 0 {
- n += 1 + sovMetrics(uint64(m.InactiveFile))
- }
- if m.ActiveFile != 0 {
- n += 1 + sovMetrics(uint64(m.ActiveFile))
- }
- if m.Unevictable != 0 {
- n += 1 + sovMetrics(uint64(m.Unevictable))
- }
- if m.SlabReclaimable != 0 {
- n += 2 + sovMetrics(uint64(m.SlabReclaimable))
- }
- if m.SlabUnreclaimable != 0 {
- n += 2 + sovMetrics(uint64(m.SlabUnreclaimable))
- }
- if m.Pgfault != 0 {
- n += 2 + sovMetrics(uint64(m.Pgfault))
- }
- if m.Pgmajfault != 0 {
- n += 2 + sovMetrics(uint64(m.Pgmajfault))
- }
- if m.WorkingsetRefault != 0 {
- n += 2 + sovMetrics(uint64(m.WorkingsetRefault))
- }
- if m.WorkingsetActivate != 0 {
- n += 2 + sovMetrics(uint64(m.WorkingsetActivate))
- }
- if m.WorkingsetNodereclaim != 0 {
- n += 2 + sovMetrics(uint64(m.WorkingsetNodereclaim))
- }
- if m.Pgrefill != 0 {
- n += 2 + sovMetrics(uint64(m.Pgrefill))
- }
- if m.Pgscan != 0 {
- n += 2 + sovMetrics(uint64(m.Pgscan))
- }
- if m.Pgsteal != 0 {
- n += 2 + sovMetrics(uint64(m.Pgsteal))
- }
- if m.Pgactivate != 0 {
- n += 2 + sovMetrics(uint64(m.Pgactivate))
- }
- if m.Pgdeactivate != 0 {
- n += 2 + sovMetrics(uint64(m.Pgdeactivate))
- }
- if m.Pglazyfree != 0 {
- n += 2 + sovMetrics(uint64(m.Pglazyfree))
- }
- if m.Pglazyfreed != 0 {
- n += 2 + sovMetrics(uint64(m.Pglazyfreed))
- }
- if m.ThpFaultAlloc != 0 {
- n += 2 + sovMetrics(uint64(m.ThpFaultAlloc))
- }
- if m.ThpCollapseAlloc != 0 {
- n += 2 + sovMetrics(uint64(m.ThpCollapseAlloc))
- }
- if m.Usage != 0 {
- n += 2 + sovMetrics(uint64(m.Usage))
- }
- if m.UsageLimit != 0 {
- n += 2 + sovMetrics(uint64(m.UsageLimit))
- }
- if m.SwapUsage != 0 {
- n += 2 + sovMetrics(uint64(m.SwapUsage))
- }
- if m.SwapLimit != 0 {
- n += 2 + sovMetrics(uint64(m.SwapLimit))
- }
- if m.XXX_unrecognized != nil {
- n += len(m.XXX_unrecognized)
- }
- return n
-}
-
-func (m *MemoryEvents) Size() (n int) {
- if m == nil {
- return 0
- }
- var l int
- _ = l
- if m.Low != 0 {
- n += 1 + sovMetrics(uint64(m.Low))
- }
- if m.High != 0 {
- n += 1 + sovMetrics(uint64(m.High))
- }
- if m.Max != 0 {
- n += 1 + sovMetrics(uint64(m.Max))
- }
- if m.Oom != 0 {
- n += 1 + sovMetrics(uint64(m.Oom))
- }
- if m.OomKill != 0 {
- n += 1 + sovMetrics(uint64(m.OomKill))
- }
- if m.XXX_unrecognized != nil {
- n += len(m.XXX_unrecognized)
- }
- return n
-}
-
-func (m *RdmaStat) Size() (n int) {
- if m == nil {
- return 0
- }
- var l int
- _ = l
- if len(m.Current) > 0 {
- for _, e := range m.Current {
- l = e.Size()
- n += 1 + l + sovMetrics(uint64(l))
- }
- }
- if len(m.Limit) > 0 {
- for _, e := range m.Limit {
- l = e.Size()
- n += 1 + l + sovMetrics(uint64(l))
- }
- }
- if m.XXX_unrecognized != nil {
- n += len(m.XXX_unrecognized)
- }
- return n
-}
-
-func (m *RdmaEntry) Size() (n int) {
- if m == nil {
- return 0
- }
- var l int
- _ = l
- l = len(m.Device)
- if l > 0 {
- n += 1 + l + sovMetrics(uint64(l))
- }
- if m.HcaHandles != 0 {
- n += 1 + sovMetrics(uint64(m.HcaHandles))
- }
- if m.HcaObjects != 0 {
- n += 1 + sovMetrics(uint64(m.HcaObjects))
- }
- if m.XXX_unrecognized != nil {
- n += len(m.XXX_unrecognized)
- }
- return n
-}
-
-func (m *IOStat) Size() (n int) {
- if m == nil {
- return 0
- }
- var l int
- _ = l
- if len(m.Usage) > 0 {
- for _, e := range m.Usage {
- l = e.Size()
- n += 1 + l + sovMetrics(uint64(l))
- }
- }
- if m.XXX_unrecognized != nil {
- n += len(m.XXX_unrecognized)
- }
- return n
-}
-
-func (m *IOEntry) Size() (n int) {
- if m == nil {
- return 0
- }
- var l int
- _ = l
- if m.Major != 0 {
- n += 1 + sovMetrics(uint64(m.Major))
- }
- if m.Minor != 0 {
- n += 1 + sovMetrics(uint64(m.Minor))
- }
- if m.Rbytes != 0 {
- n += 1 + sovMetrics(uint64(m.Rbytes))
- }
- if m.Wbytes != 0 {
- n += 1 + sovMetrics(uint64(m.Wbytes))
- }
- if m.Rios != 0 {
- n += 1 + sovMetrics(uint64(m.Rios))
- }
- if m.Wios != 0 {
- n += 1 + sovMetrics(uint64(m.Wios))
- }
- if m.XXX_unrecognized != nil {
- n += len(m.XXX_unrecognized)
- }
- return n
-}
-
-func (m *HugeTlbStat) Size() (n int) {
- if m == nil {
- return 0
- }
- var l int
- _ = l
- if m.Current != 0 {
- n += 1 + sovMetrics(uint64(m.Current))
- }
- if m.Max != 0 {
- n += 1 + sovMetrics(uint64(m.Max))
- }
- l = len(m.Pagesize)
- if l > 0 {
- n += 1 + l + sovMetrics(uint64(l))
- }
- if m.XXX_unrecognized != nil {
- n += len(m.XXX_unrecognized)
- }
- return n
-}
-
-func sovMetrics(x uint64) (n int) {
- return (math_bits.Len64(x|1) + 6) / 7
-}
-func sozMetrics(x uint64) (n int) {
- return sovMetrics(uint64((x << 1) ^ uint64((int64(x) >> 63))))
-}
-func (this *Metrics) String() string {
- if this == nil {
- return "nil"
- }
- repeatedStringForHugetlb := "[]*HugeTlbStat{"
- for _, f := range this.Hugetlb {
- repeatedStringForHugetlb += strings.Replace(f.String(), "HugeTlbStat", "HugeTlbStat", 1) + ","
- }
- repeatedStringForHugetlb += "}"
- s := strings.Join([]string{`&Metrics{`,
- `Pids:` + strings.Replace(this.Pids.String(), "PidsStat", "PidsStat", 1) + `,`,
- `CPU:` + strings.Replace(this.CPU.String(), "CPUStat", "CPUStat", 1) + `,`,
- `Memory:` + strings.Replace(this.Memory.String(), "MemoryStat", "MemoryStat", 1) + `,`,
- `Rdma:` + strings.Replace(this.Rdma.String(), "RdmaStat", "RdmaStat", 1) + `,`,
- `Io:` + strings.Replace(this.Io.String(), "IOStat", "IOStat", 1) + `,`,
- `Hugetlb:` + repeatedStringForHugetlb + `,`,
- `MemoryEvents:` + strings.Replace(this.MemoryEvents.String(), "MemoryEvents", "MemoryEvents", 1) + `,`,
- `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
- `}`,
- }, "")
- return s
-}
-func (this *PidsStat) String() string {
- if this == nil {
- return "nil"
- }
- s := strings.Join([]string{`&PidsStat{`,
- `Current:` + fmt.Sprintf("%v", this.Current) + `,`,
- `Limit:` + fmt.Sprintf("%v", this.Limit) + `,`,
- `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
- `}`,
- }, "")
- return s
-}
-func (this *CPUStat) String() string {
- if this == nil {
- return "nil"
- }
- s := strings.Join([]string{`&CPUStat{`,
- `UsageUsec:` + fmt.Sprintf("%v", this.UsageUsec) + `,`,
- `UserUsec:` + fmt.Sprintf("%v", this.UserUsec) + `,`,
- `SystemUsec:` + fmt.Sprintf("%v", this.SystemUsec) + `,`,
- `NrPeriods:` + fmt.Sprintf("%v", this.NrPeriods) + `,`,
- `NrThrottled:` + fmt.Sprintf("%v", this.NrThrottled) + `,`,
- `ThrottledUsec:` + fmt.Sprintf("%v", this.ThrottledUsec) + `,`,
- `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
- `}`,
- }, "")
- return s
-}
-func (this *MemoryStat) String() string {
- if this == nil {
- return "nil"
- }
- s := strings.Join([]string{`&MemoryStat{`,
- `Anon:` + fmt.Sprintf("%v", this.Anon) + `,`,
- `File:` + fmt.Sprintf("%v", this.File) + `,`,
- `KernelStack:` + fmt.Sprintf("%v", this.KernelStack) + `,`,
- `Slab:` + fmt.Sprintf("%v", this.Slab) + `,`,
- `Sock:` + fmt.Sprintf("%v", this.Sock) + `,`,
- `Shmem:` + fmt.Sprintf("%v", this.Shmem) + `,`,
- `FileMapped:` + fmt.Sprintf("%v", this.FileMapped) + `,`,
- `FileDirty:` + fmt.Sprintf("%v", this.FileDirty) + `,`,
- `FileWriteback:` + fmt.Sprintf("%v", this.FileWriteback) + `,`,
- `AnonThp:` + fmt.Sprintf("%v", this.AnonThp) + `,`,
- `InactiveAnon:` + fmt.Sprintf("%v", this.InactiveAnon) + `,`,
- `ActiveAnon:` + fmt.Sprintf("%v", this.ActiveAnon) + `,`,
- `InactiveFile:` + fmt.Sprintf("%v", this.InactiveFile) + `,`,
- `ActiveFile:` + fmt.Sprintf("%v", this.ActiveFile) + `,`,
- `Unevictable:` + fmt.Sprintf("%v", this.Unevictable) + `,`,
- `SlabReclaimable:` + fmt.Sprintf("%v", this.SlabReclaimable) + `,`,
- `SlabUnreclaimable:` + fmt.Sprintf("%v", this.SlabUnreclaimable) + `,`,
- `Pgfault:` + fmt.Sprintf("%v", this.Pgfault) + `,`,
- `Pgmajfault:` + fmt.Sprintf("%v", this.Pgmajfault) + `,`,
- `WorkingsetRefault:` + fmt.Sprintf("%v", this.WorkingsetRefault) + `,`,
- `WorkingsetActivate:` + fmt.Sprintf("%v", this.WorkingsetActivate) + `,`,
- `WorkingsetNodereclaim:` + fmt.Sprintf("%v", this.WorkingsetNodereclaim) + `,`,
- `Pgrefill:` + fmt.Sprintf("%v", this.Pgrefill) + `,`,
- `Pgscan:` + fmt.Sprintf("%v", this.Pgscan) + `,`,
- `Pgsteal:` + fmt.Sprintf("%v", this.Pgsteal) + `,`,
- `Pgactivate:` + fmt.Sprintf("%v", this.Pgactivate) + `,`,
- `Pgdeactivate:` + fmt.Sprintf("%v", this.Pgdeactivate) + `,`,
- `Pglazyfree:` + fmt.Sprintf("%v", this.Pglazyfree) + `,`,
- `Pglazyfreed:` + fmt.Sprintf("%v", this.Pglazyfreed) + `,`,
- `ThpFaultAlloc:` + fmt.Sprintf("%v", this.ThpFaultAlloc) + `,`,
- `ThpCollapseAlloc:` + fmt.Sprintf("%v", this.ThpCollapseAlloc) + `,`,
- `Usage:` + fmt.Sprintf("%v", this.Usage) + `,`,
- `UsageLimit:` + fmt.Sprintf("%v", this.UsageLimit) + `,`,
- `SwapUsage:` + fmt.Sprintf("%v", this.SwapUsage) + `,`,
- `SwapLimit:` + fmt.Sprintf("%v", this.SwapLimit) + `,`,
- `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
- `}`,
- }, "")
- return s
-}
-func (this *MemoryEvents) String() string {
- if this == nil {
- return "nil"
- }
- s := strings.Join([]string{`&MemoryEvents{`,
- `Low:` + fmt.Sprintf("%v", this.Low) + `,`,
- `High:` + fmt.Sprintf("%v", this.High) + `,`,
- `Max:` + fmt.Sprintf("%v", this.Max) + `,`,
- `Oom:` + fmt.Sprintf("%v", this.Oom) + `,`,
- `OomKill:` + fmt.Sprintf("%v", this.OomKill) + `,`,
- `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
- `}`,
- }, "")
- return s
-}
-func (this *RdmaStat) String() string {
- if this == nil {
- return "nil"
- }
- repeatedStringForCurrent := "[]*RdmaEntry{"
- for _, f := range this.Current {
- repeatedStringForCurrent += strings.Replace(f.String(), "RdmaEntry", "RdmaEntry", 1) + ","
- }
- repeatedStringForCurrent += "}"
- repeatedStringForLimit := "[]*RdmaEntry{"
- for _, f := range this.Limit {
- repeatedStringForLimit += strings.Replace(f.String(), "RdmaEntry", "RdmaEntry", 1) + ","
- }
- repeatedStringForLimit += "}"
- s := strings.Join([]string{`&RdmaStat{`,
- `Current:` + repeatedStringForCurrent + `,`,
- `Limit:` + repeatedStringForLimit + `,`,
- `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
- `}`,
- }, "")
- return s
-}
-func (this *RdmaEntry) String() string {
- if this == nil {
- return "nil"
- }
- s := strings.Join([]string{`&RdmaEntry{`,
- `Device:` + fmt.Sprintf("%v", this.Device) + `,`,
- `HcaHandles:` + fmt.Sprintf("%v", this.HcaHandles) + `,`,
- `HcaObjects:` + fmt.Sprintf("%v", this.HcaObjects) + `,`,
- `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
- `}`,
- }, "")
- return s
-}
-func (this *IOStat) String() string {
- if this == nil {
- return "nil"
- }
- repeatedStringForUsage := "[]*IOEntry{"
- for _, f := range this.Usage {
- repeatedStringForUsage += strings.Replace(f.String(), "IOEntry", "IOEntry", 1) + ","
- }
- repeatedStringForUsage += "}"
- s := strings.Join([]string{`&IOStat{`,
- `Usage:` + repeatedStringForUsage + `,`,
- `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
- `}`,
- }, "")
- return s
-}
-func (this *IOEntry) String() string {
- if this == nil {
- return "nil"
- }
- s := strings.Join([]string{`&IOEntry{`,
- `Major:` + fmt.Sprintf("%v", this.Major) + `,`,
- `Minor:` + fmt.Sprintf("%v", this.Minor) + `,`,
- `Rbytes:` + fmt.Sprintf("%v", this.Rbytes) + `,`,
- `Wbytes:` + fmt.Sprintf("%v", this.Wbytes) + `,`,
- `Rios:` + fmt.Sprintf("%v", this.Rios) + `,`,
- `Wios:` + fmt.Sprintf("%v", this.Wios) + `,`,
- `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
- `}`,
- }, "")
- return s
-}
-func (this *HugeTlbStat) String() string {
- if this == nil {
- return "nil"
- }
- s := strings.Join([]string{`&HugeTlbStat{`,
- `Current:` + fmt.Sprintf("%v", this.Current) + `,`,
- `Max:` + fmt.Sprintf("%v", this.Max) + `,`,
- `Pagesize:` + fmt.Sprintf("%v", this.Pagesize) + `,`,
- `XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
- `}`,
- }, "")
- return s
-}
-func valueToStringMetrics(v interface{}) string {
- rv := reflect.ValueOf(v)
- if rv.IsNil() {
- return "nil"
- }
- pv := reflect.Indirect(rv).Interface()
- return fmt.Sprintf("*%v", pv)
-}
-func (m *Metrics) Unmarshal(dAtA []byte) error {
- l := len(dAtA)
- iNdEx := 0
- for iNdEx < l {
- preIndex := iNdEx
- var wire uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- wire |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- fieldNum := int32(wire >> 3)
- wireType := int(wire & 0x7)
- if wireType == 4 {
- return fmt.Errorf("proto: Metrics: wiretype end group for non-group")
- }
- if fieldNum <= 0 {
- return fmt.Errorf("proto: Metrics: illegal tag %d (wire type %d)", fieldNum, wire)
- }
- switch fieldNum {
- case 1:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Pids", wireType)
- }
- var msglen int
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- msglen |= int(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- if msglen < 0 {
- return ErrInvalidLengthMetrics
- }
- postIndex := iNdEx + msglen
- if postIndex < 0 {
- return ErrInvalidLengthMetrics
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- if m.Pids == nil {
- m.Pids = &PidsStat{}
- }
- if err := m.Pids.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
- return err
- }
- iNdEx = postIndex
- case 2:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field CPU", wireType)
- }
- var msglen int
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- msglen |= int(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- if msglen < 0 {
- return ErrInvalidLengthMetrics
- }
- postIndex := iNdEx + msglen
- if postIndex < 0 {
- return ErrInvalidLengthMetrics
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- if m.CPU == nil {
- m.CPU = &CPUStat{}
- }
- if err := m.CPU.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
- return err
- }
- iNdEx = postIndex
- case 4:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Memory", wireType)
- }
- var msglen int
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- msglen |= int(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- if msglen < 0 {
- return ErrInvalidLengthMetrics
- }
- postIndex := iNdEx + msglen
- if postIndex < 0 {
- return ErrInvalidLengthMetrics
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- if m.Memory == nil {
- m.Memory = &MemoryStat{}
- }
- if err := m.Memory.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
- return err
- }
- iNdEx = postIndex
- case 5:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Rdma", wireType)
- }
- var msglen int
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- msglen |= int(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- if msglen < 0 {
- return ErrInvalidLengthMetrics
- }
- postIndex := iNdEx + msglen
- if postIndex < 0 {
- return ErrInvalidLengthMetrics
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- if m.Rdma == nil {
- m.Rdma = &RdmaStat{}
- }
- if err := m.Rdma.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
- return err
- }
- iNdEx = postIndex
- case 6:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Io", wireType)
- }
- var msglen int
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- msglen |= int(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- if msglen < 0 {
- return ErrInvalidLengthMetrics
- }
- postIndex := iNdEx + msglen
- if postIndex < 0 {
- return ErrInvalidLengthMetrics
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- if m.Io == nil {
- m.Io = &IOStat{}
- }
- if err := m.Io.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
- return err
- }
- iNdEx = postIndex
- case 7:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Hugetlb", wireType)
- }
- var msglen int
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- msglen |= int(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- if msglen < 0 {
- return ErrInvalidLengthMetrics
- }
- postIndex := iNdEx + msglen
- if postIndex < 0 {
- return ErrInvalidLengthMetrics
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- m.Hugetlb = append(m.Hugetlb, &HugeTlbStat{})
- if err := m.Hugetlb[len(m.Hugetlb)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
- return err
- }
- iNdEx = postIndex
- case 8:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field MemoryEvents", wireType)
- }
- var msglen int
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- msglen |= int(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- if msglen < 0 {
- return ErrInvalidLengthMetrics
- }
- postIndex := iNdEx + msglen
- if postIndex < 0 {
- return ErrInvalidLengthMetrics
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- if m.MemoryEvents == nil {
- m.MemoryEvents = &MemoryEvents{}
- }
- if err := m.MemoryEvents.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
- return err
- }
- iNdEx = postIndex
- default:
- iNdEx = preIndex
- skippy, err := skipMetrics(dAtA[iNdEx:])
- if err != nil {
- return err
- }
- if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLengthMetrics
- }
- if (iNdEx + skippy) > l {
- return io.ErrUnexpectedEOF
- }
- m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
- iNdEx += skippy
- }
- }
-
- if iNdEx > l {
- return io.ErrUnexpectedEOF
- }
- return nil
-}
-func (m *PidsStat) Unmarshal(dAtA []byte) error {
- l := len(dAtA)
- iNdEx := 0
- for iNdEx < l {
- preIndex := iNdEx
- var wire uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- wire |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- fieldNum := int32(wire >> 3)
- wireType := int(wire & 0x7)
- if wireType == 4 {
- return fmt.Errorf("proto: PidsStat: wiretype end group for non-group")
- }
- if fieldNum <= 0 {
- return fmt.Errorf("proto: PidsStat: illegal tag %d (wire type %d)", fieldNum, wire)
- }
- switch fieldNum {
- case 1:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Current", wireType)
- }
- m.Current = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.Current |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 2:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Limit", wireType)
- }
- m.Limit = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.Limit |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- default:
- iNdEx = preIndex
- skippy, err := skipMetrics(dAtA[iNdEx:])
- if err != nil {
- return err
- }
- if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLengthMetrics
- }
- if (iNdEx + skippy) > l {
- return io.ErrUnexpectedEOF
- }
- m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
- iNdEx += skippy
- }
- }
-
- if iNdEx > l {
- return io.ErrUnexpectedEOF
- }
- return nil
-}
-func (m *CPUStat) Unmarshal(dAtA []byte) error {
- l := len(dAtA)
- iNdEx := 0
- for iNdEx < l {
- preIndex := iNdEx
- var wire uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- wire |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- fieldNum := int32(wire >> 3)
- wireType := int(wire & 0x7)
- if wireType == 4 {
- return fmt.Errorf("proto: CPUStat: wiretype end group for non-group")
- }
- if fieldNum <= 0 {
- return fmt.Errorf("proto: CPUStat: illegal tag %d (wire type %d)", fieldNum, wire)
- }
- switch fieldNum {
- case 1:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field UsageUsec", wireType)
- }
- m.UsageUsec = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.UsageUsec |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 2:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field UserUsec", wireType)
- }
- m.UserUsec = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.UserUsec |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 3:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field SystemUsec", wireType)
- }
- m.SystemUsec = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.SystemUsec |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 4:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field NrPeriods", wireType)
- }
- m.NrPeriods = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.NrPeriods |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 5:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field NrThrottled", wireType)
- }
- m.NrThrottled = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.NrThrottled |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 6:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field ThrottledUsec", wireType)
- }
- m.ThrottledUsec = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.ThrottledUsec |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- default:
- iNdEx = preIndex
- skippy, err := skipMetrics(dAtA[iNdEx:])
- if err != nil {
- return err
- }
- if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLengthMetrics
- }
- if (iNdEx + skippy) > l {
- return io.ErrUnexpectedEOF
- }
- m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
- iNdEx += skippy
- }
- }
-
- if iNdEx > l {
- return io.ErrUnexpectedEOF
- }
- return nil
-}
-func (m *MemoryStat) Unmarshal(dAtA []byte) error {
- l := len(dAtA)
- iNdEx := 0
- for iNdEx < l {
- preIndex := iNdEx
- var wire uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- wire |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- fieldNum := int32(wire >> 3)
- wireType := int(wire & 0x7)
- if wireType == 4 {
- return fmt.Errorf("proto: MemoryStat: wiretype end group for non-group")
- }
- if fieldNum <= 0 {
- return fmt.Errorf("proto: MemoryStat: illegal tag %d (wire type %d)", fieldNum, wire)
- }
- switch fieldNum {
- case 1:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Anon", wireType)
- }
- m.Anon = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.Anon |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 2:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field File", wireType)
- }
- m.File = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.File |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 3:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field KernelStack", wireType)
- }
- m.KernelStack = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.KernelStack |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 4:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Slab", wireType)
- }
- m.Slab = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.Slab |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 5:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Sock", wireType)
- }
- m.Sock = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.Sock |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 6:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Shmem", wireType)
- }
- m.Shmem = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.Shmem |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 7:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field FileMapped", wireType)
- }
- m.FileMapped = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.FileMapped |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 8:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field FileDirty", wireType)
- }
- m.FileDirty = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.FileDirty |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 9:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field FileWriteback", wireType)
- }
- m.FileWriteback = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.FileWriteback |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 10:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field AnonThp", wireType)
- }
- m.AnonThp = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.AnonThp |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 11:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field InactiveAnon", wireType)
- }
- m.InactiveAnon = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.InactiveAnon |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 12:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field ActiveAnon", wireType)
- }
- m.ActiveAnon = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.ActiveAnon |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 13:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field InactiveFile", wireType)
- }
- m.InactiveFile = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.InactiveFile |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 14:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field ActiveFile", wireType)
- }
- m.ActiveFile = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.ActiveFile |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 15:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Unevictable", wireType)
- }
- m.Unevictable = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.Unevictable |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 16:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field SlabReclaimable", wireType)
- }
- m.SlabReclaimable = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.SlabReclaimable |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 17:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field SlabUnreclaimable", wireType)
- }
- m.SlabUnreclaimable = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.SlabUnreclaimable |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 18:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Pgfault", wireType)
- }
- m.Pgfault = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.Pgfault |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 19:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Pgmajfault", wireType)
- }
- m.Pgmajfault = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.Pgmajfault |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 20:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field WorkingsetRefault", wireType)
- }
- m.WorkingsetRefault = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.WorkingsetRefault |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 21:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field WorkingsetActivate", wireType)
- }
- m.WorkingsetActivate = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.WorkingsetActivate |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 22:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field WorkingsetNodereclaim", wireType)
- }
- m.WorkingsetNodereclaim = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.WorkingsetNodereclaim |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 23:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Pgrefill", wireType)
- }
- m.Pgrefill = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.Pgrefill |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 24:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Pgscan", wireType)
- }
- m.Pgscan = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.Pgscan |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 25:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Pgsteal", wireType)
- }
- m.Pgsteal = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.Pgsteal |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 26:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Pgactivate", wireType)
- }
- m.Pgactivate = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.Pgactivate |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 27:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Pgdeactivate", wireType)
- }
- m.Pgdeactivate = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.Pgdeactivate |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 28:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Pglazyfree", wireType)
- }
- m.Pglazyfree = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.Pglazyfree |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 29:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Pglazyfreed", wireType)
- }
- m.Pglazyfreed = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.Pglazyfreed |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 30:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field ThpFaultAlloc", wireType)
- }
- m.ThpFaultAlloc = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.ThpFaultAlloc |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 31:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field ThpCollapseAlloc", wireType)
- }
- m.ThpCollapseAlloc = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.ThpCollapseAlloc |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 32:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Usage", wireType)
- }
- m.Usage = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.Usage |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 33:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field UsageLimit", wireType)
- }
- m.UsageLimit = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.UsageLimit |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 34:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field SwapUsage", wireType)
- }
- m.SwapUsage = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.SwapUsage |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 35:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field SwapLimit", wireType)
- }
- m.SwapLimit = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.SwapLimit |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- default:
- iNdEx = preIndex
- skippy, err := skipMetrics(dAtA[iNdEx:])
- if err != nil {
- return err
- }
- if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLengthMetrics
- }
- if (iNdEx + skippy) > l {
- return io.ErrUnexpectedEOF
- }
- m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
- iNdEx += skippy
- }
- }
-
- if iNdEx > l {
- return io.ErrUnexpectedEOF
- }
- return nil
-}
-func (m *MemoryEvents) Unmarshal(dAtA []byte) error {
- l := len(dAtA)
- iNdEx := 0
- for iNdEx < l {
- preIndex := iNdEx
- var wire uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- wire |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- fieldNum := int32(wire >> 3)
- wireType := int(wire & 0x7)
- if wireType == 4 {
- return fmt.Errorf("proto: MemoryEvents: wiretype end group for non-group")
- }
- if fieldNum <= 0 {
- return fmt.Errorf("proto: MemoryEvents: illegal tag %d (wire type %d)", fieldNum, wire)
- }
- switch fieldNum {
- case 1:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Low", wireType)
- }
- m.Low = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.Low |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 2:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field High", wireType)
- }
- m.High = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.High |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 3:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Max", wireType)
- }
- m.Max = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.Max |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 4:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Oom", wireType)
- }
- m.Oom = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.Oom |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 5:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field OomKill", wireType)
- }
- m.OomKill = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.OomKill |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- default:
- iNdEx = preIndex
- skippy, err := skipMetrics(dAtA[iNdEx:])
- if err != nil {
- return err
- }
- if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLengthMetrics
- }
- if (iNdEx + skippy) > l {
- return io.ErrUnexpectedEOF
- }
- m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
- iNdEx += skippy
- }
- }
-
- if iNdEx > l {
- return io.ErrUnexpectedEOF
- }
- return nil
-}
-func (m *RdmaStat) Unmarshal(dAtA []byte) error {
- l := len(dAtA)
- iNdEx := 0
- for iNdEx < l {
- preIndex := iNdEx
- var wire uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- wire |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- fieldNum := int32(wire >> 3)
- wireType := int(wire & 0x7)
- if wireType == 4 {
- return fmt.Errorf("proto: RdmaStat: wiretype end group for non-group")
- }
- if fieldNum <= 0 {
- return fmt.Errorf("proto: RdmaStat: illegal tag %d (wire type %d)", fieldNum, wire)
- }
- switch fieldNum {
- case 1:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Current", wireType)
- }
- var msglen int
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- msglen |= int(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- if msglen < 0 {
- return ErrInvalidLengthMetrics
- }
- postIndex := iNdEx + msglen
- if postIndex < 0 {
- return ErrInvalidLengthMetrics
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- m.Current = append(m.Current, &RdmaEntry{})
- if err := m.Current[len(m.Current)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
- return err
- }
- iNdEx = postIndex
- case 2:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Limit", wireType)
- }
- var msglen int
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- msglen |= int(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- if msglen < 0 {
- return ErrInvalidLengthMetrics
- }
- postIndex := iNdEx + msglen
- if postIndex < 0 {
- return ErrInvalidLengthMetrics
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- m.Limit = append(m.Limit, &RdmaEntry{})
- if err := m.Limit[len(m.Limit)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
- return err
- }
- iNdEx = postIndex
- default:
- iNdEx = preIndex
- skippy, err := skipMetrics(dAtA[iNdEx:])
- if err != nil {
- return err
- }
- if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLengthMetrics
- }
- if (iNdEx + skippy) > l {
- return io.ErrUnexpectedEOF
- }
- m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
- iNdEx += skippy
- }
- }
-
- if iNdEx > l {
- return io.ErrUnexpectedEOF
- }
- return nil
-}
-func (m *RdmaEntry) Unmarshal(dAtA []byte) error {
- l := len(dAtA)
- iNdEx := 0
- for iNdEx < l {
- preIndex := iNdEx
- var wire uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- wire |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- fieldNum := int32(wire >> 3)
- wireType := int(wire & 0x7)
- if wireType == 4 {
- return fmt.Errorf("proto: RdmaEntry: wiretype end group for non-group")
- }
- if fieldNum <= 0 {
- return fmt.Errorf("proto: RdmaEntry: illegal tag %d (wire type %d)", fieldNum, wire)
- }
- switch fieldNum {
- case 1:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Device", wireType)
- }
- var stringLen uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- stringLen |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- intStringLen := int(stringLen)
- if intStringLen < 0 {
- return ErrInvalidLengthMetrics
- }
- postIndex := iNdEx + intStringLen
- if postIndex < 0 {
- return ErrInvalidLengthMetrics
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- m.Device = string(dAtA[iNdEx:postIndex])
- iNdEx = postIndex
- case 2:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field HcaHandles", wireType)
- }
- m.HcaHandles = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.HcaHandles |= uint32(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 3:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field HcaObjects", wireType)
- }
- m.HcaObjects = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.HcaObjects |= uint32(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- default:
- iNdEx = preIndex
- skippy, err := skipMetrics(dAtA[iNdEx:])
- if err != nil {
- return err
- }
- if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLengthMetrics
- }
- if (iNdEx + skippy) > l {
- return io.ErrUnexpectedEOF
- }
- m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
- iNdEx += skippy
- }
- }
-
- if iNdEx > l {
- return io.ErrUnexpectedEOF
- }
- return nil
-}
-func (m *IOStat) Unmarshal(dAtA []byte) error {
- l := len(dAtA)
- iNdEx := 0
- for iNdEx < l {
- preIndex := iNdEx
- var wire uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- wire |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- fieldNum := int32(wire >> 3)
- wireType := int(wire & 0x7)
- if wireType == 4 {
- return fmt.Errorf("proto: IOStat: wiretype end group for non-group")
- }
- if fieldNum <= 0 {
- return fmt.Errorf("proto: IOStat: illegal tag %d (wire type %d)", fieldNum, wire)
- }
- switch fieldNum {
- case 1:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Usage", wireType)
- }
- var msglen int
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- msglen |= int(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- if msglen < 0 {
- return ErrInvalidLengthMetrics
- }
- postIndex := iNdEx + msglen
- if postIndex < 0 {
- return ErrInvalidLengthMetrics
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- m.Usage = append(m.Usage, &IOEntry{})
- if err := m.Usage[len(m.Usage)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
- return err
- }
- iNdEx = postIndex
- default:
- iNdEx = preIndex
- skippy, err := skipMetrics(dAtA[iNdEx:])
- if err != nil {
- return err
- }
- if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLengthMetrics
- }
- if (iNdEx + skippy) > l {
- return io.ErrUnexpectedEOF
- }
- m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
- iNdEx += skippy
- }
- }
-
- if iNdEx > l {
- return io.ErrUnexpectedEOF
- }
- return nil
-}
-func (m *IOEntry) Unmarshal(dAtA []byte) error {
- l := len(dAtA)
- iNdEx := 0
- for iNdEx < l {
- preIndex := iNdEx
- var wire uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- wire |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- fieldNum := int32(wire >> 3)
- wireType := int(wire & 0x7)
- if wireType == 4 {
- return fmt.Errorf("proto: IOEntry: wiretype end group for non-group")
- }
- if fieldNum <= 0 {
- return fmt.Errorf("proto: IOEntry: illegal tag %d (wire type %d)", fieldNum, wire)
- }
- switch fieldNum {
- case 1:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Major", wireType)
- }
- m.Major = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.Major |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 2:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Minor", wireType)
- }
- m.Minor = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.Minor |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 3:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Rbytes", wireType)
- }
- m.Rbytes = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.Rbytes |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 4:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Wbytes", wireType)
- }
- m.Wbytes = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.Wbytes |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 5:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Rios", wireType)
- }
- m.Rios = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.Rios |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 6:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Wios", wireType)
- }
- m.Wios = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.Wios |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- default:
- iNdEx = preIndex
- skippy, err := skipMetrics(dAtA[iNdEx:])
- if err != nil {
- return err
- }
- if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLengthMetrics
- }
- if (iNdEx + skippy) > l {
- return io.ErrUnexpectedEOF
- }
- m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
- iNdEx += skippy
- }
- }
-
- if iNdEx > l {
- return io.ErrUnexpectedEOF
- }
- return nil
-}
-func (m *HugeTlbStat) Unmarshal(dAtA []byte) error {
- l := len(dAtA)
- iNdEx := 0
- for iNdEx < l {
- preIndex := iNdEx
- var wire uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- wire |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- fieldNum := int32(wire >> 3)
- wireType := int(wire & 0x7)
- if wireType == 4 {
- return fmt.Errorf("proto: HugeTlbStat: wiretype end group for non-group")
- }
- if fieldNum <= 0 {
- return fmt.Errorf("proto: HugeTlbStat: illegal tag %d (wire type %d)", fieldNum, wire)
- }
- switch fieldNum {
- case 1:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Current", wireType)
- }
- m.Current = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.Current |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 2:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Max", wireType)
- }
- m.Max = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.Max |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 3:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Pagesize", wireType)
- }
- var stringLen uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- stringLen |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- intStringLen := int(stringLen)
- if intStringLen < 0 {
- return ErrInvalidLengthMetrics
- }
- postIndex := iNdEx + intStringLen
- if postIndex < 0 {
- return ErrInvalidLengthMetrics
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- m.Pagesize = string(dAtA[iNdEx:postIndex])
- iNdEx = postIndex
- default:
- iNdEx = preIndex
- skippy, err := skipMetrics(dAtA[iNdEx:])
- if err != nil {
- return err
- }
- if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLengthMetrics
- }
- if (iNdEx + skippy) > l {
- return io.ErrUnexpectedEOF
- }
- m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
- iNdEx += skippy
- }
- }
-
- if iNdEx > l {
- return io.ErrUnexpectedEOF
- }
- return nil
-}
-func skipMetrics(dAtA []byte) (n int, err error) {
- l := len(dAtA)
- iNdEx := 0
- depth := 0
- for iNdEx < l {
- var wire uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return 0, ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return 0, io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- wireType := int(wire & 0x7)
- switch wireType {
- case 0:
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return 0, ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return 0, io.ErrUnexpectedEOF
- }
- iNdEx++
- if dAtA[iNdEx-1] < 0x80 {
- break
- }
- }
- case 1:
- iNdEx += 8
- case 2:
- var length int
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return 0, ErrIntOverflowMetrics
- }
- if iNdEx >= l {
- return 0, io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- length |= (int(b) & 0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- if length < 0 {
- return 0, ErrInvalidLengthMetrics
- }
- iNdEx += length
- case 3:
- depth++
- case 4:
- if depth == 0 {
- return 0, ErrUnexpectedEndOfGroupMetrics
- }
- depth--
- case 5:
- iNdEx += 4
- default:
- return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
- }
- if iNdEx < 0 {
- return 0, ErrInvalidLengthMetrics
- }
- if depth == 0 {
- return iNdEx, nil
- }
- }
- return 0, io.ErrUnexpectedEOF
-}
-
-var (
- ErrInvalidLengthMetrics = fmt.Errorf("proto: negative length found during unmarshaling")
- ErrIntOverflowMetrics = fmt.Errorf("proto: integer overflow")
- ErrUnexpectedEndOfGroupMetrics = fmt.Errorf("proto: unexpected end of group")
-)
diff --git a/vendor/github.com/containerd/cgroups/v2/stats/metrics.pb.txt b/vendor/github.com/containerd/cgroups/v2/stats/metrics.pb.txt
deleted file mode 100644
index 59fe27cbf..000000000
--- a/vendor/github.com/containerd/cgroups/v2/stats/metrics.pb.txt
+++ /dev/null
@@ -1,539 +0,0 @@
-file {
- name: "github.com/containerd/cgroups/v2/stats/metrics.proto"
- package: "io.containerd.cgroups.v2"
- dependency: "gogoproto/gogo.proto"
- message_type {
- name: "Metrics"
- field {
- name: "pids"
- number: 1
- label: LABEL_OPTIONAL
- type: TYPE_MESSAGE
- type_name: ".io.containerd.cgroups.v2.PidsStat"
- json_name: "pids"
- }
- field {
- name: "cpu"
- number: 2
- label: LABEL_OPTIONAL
- type: TYPE_MESSAGE
- type_name: ".io.containerd.cgroups.v2.CPUStat"
- options {
- 65004: "CPU"
- }
- json_name: "cpu"
- }
- field {
- name: "memory"
- number: 4
- label: LABEL_OPTIONAL
- type: TYPE_MESSAGE
- type_name: ".io.containerd.cgroups.v2.MemoryStat"
- json_name: "memory"
- }
- field {
- name: "rdma"
- number: 5
- label: LABEL_OPTIONAL
- type: TYPE_MESSAGE
- type_name: ".io.containerd.cgroups.v2.RdmaStat"
- json_name: "rdma"
- }
- field {
- name: "io"
- number: 6
- label: LABEL_OPTIONAL
- type: TYPE_MESSAGE
- type_name: ".io.containerd.cgroups.v2.IOStat"
- json_name: "io"
- }
- field {
- name: "hugetlb"
- number: 7
- label: LABEL_REPEATED
- type: TYPE_MESSAGE
- type_name: ".io.containerd.cgroups.v2.HugeTlbStat"
- json_name: "hugetlb"
- }
- field {
- name: "memory_events"
- number: 8
- label: LABEL_OPTIONAL
- type: TYPE_MESSAGE
- type_name: ".io.containerd.cgroups.v2.MemoryEvents"
- json_name: "memoryEvents"
- }
- }
- message_type {
- name: "PidsStat"
- field {
- name: "current"
- number: 1
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "current"
- }
- field {
- name: "limit"
- number: 2
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "limit"
- }
- }
- message_type {
- name: "CPUStat"
- field {
- name: "usage_usec"
- number: 1
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "usageUsec"
- }
- field {
- name: "user_usec"
- number: 2
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "userUsec"
- }
- field {
- name: "system_usec"
- number: 3
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "systemUsec"
- }
- field {
- name: "nr_periods"
- number: 4
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "nrPeriods"
- }
- field {
- name: "nr_throttled"
- number: 5
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "nrThrottled"
- }
- field {
- name: "throttled_usec"
- number: 6
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "throttledUsec"
- }
- }
- message_type {
- name: "MemoryStat"
- field {
- name: "anon"
- number: 1
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "anon"
- }
- field {
- name: "file"
- number: 2
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "file"
- }
- field {
- name: "kernel_stack"
- number: 3
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "kernelStack"
- }
- field {
- name: "slab"
- number: 4
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "slab"
- }
- field {
- name: "sock"
- number: 5
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "sock"
- }
- field {
- name: "shmem"
- number: 6
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "shmem"
- }
- field {
- name: "file_mapped"
- number: 7
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "fileMapped"
- }
- field {
- name: "file_dirty"
- number: 8
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "fileDirty"
- }
- field {
- name: "file_writeback"
- number: 9
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "fileWriteback"
- }
- field {
- name: "anon_thp"
- number: 10
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "anonThp"
- }
- field {
- name: "inactive_anon"
- number: 11
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "inactiveAnon"
- }
- field {
- name: "active_anon"
- number: 12
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "activeAnon"
- }
- field {
- name: "inactive_file"
- number: 13
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "inactiveFile"
- }
- field {
- name: "active_file"
- number: 14
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "activeFile"
- }
- field {
- name: "unevictable"
- number: 15
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "unevictable"
- }
- field {
- name: "slab_reclaimable"
- number: 16
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "slabReclaimable"
- }
- field {
- name: "slab_unreclaimable"
- number: 17
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "slabUnreclaimable"
- }
- field {
- name: "pgfault"
- number: 18
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "pgfault"
- }
- field {
- name: "pgmajfault"
- number: 19
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "pgmajfault"
- }
- field {
- name: "workingset_refault"
- number: 20
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "workingsetRefault"
- }
- field {
- name: "workingset_activate"
- number: 21
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "workingsetActivate"
- }
- field {
- name: "workingset_nodereclaim"
- number: 22
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "workingsetNodereclaim"
- }
- field {
- name: "pgrefill"
- number: 23
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "pgrefill"
- }
- field {
- name: "pgscan"
- number: 24
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "pgscan"
- }
- field {
- name: "pgsteal"
- number: 25
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "pgsteal"
- }
- field {
- name: "pgactivate"
- number: 26
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "pgactivate"
- }
- field {
- name: "pgdeactivate"
- number: 27
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "pgdeactivate"
- }
- field {
- name: "pglazyfree"
- number: 28
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "pglazyfree"
- }
- field {
- name: "pglazyfreed"
- number: 29
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "pglazyfreed"
- }
- field {
- name: "thp_fault_alloc"
- number: 30
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "thpFaultAlloc"
- }
- field {
- name: "thp_collapse_alloc"
- number: 31
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "thpCollapseAlloc"
- }
- field {
- name: "usage"
- number: 32
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "usage"
- }
- field {
- name: "usage_limit"
- number: 33
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "usageLimit"
- }
- field {
- name: "swap_usage"
- number: 34
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "swapUsage"
- }
- field {
- name: "swap_limit"
- number: 35
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "swapLimit"
- }
- }
- message_type {
- name: "MemoryEvents"
- field {
- name: "low"
- number: 1
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "low"
- }
- field {
- name: "high"
- number: 2
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "high"
- }
- field {
- name: "max"
- number: 3
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "max"
- }
- field {
- name: "oom"
- number: 4
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "oom"
- }
- field {
- name: "oom_kill"
- number: 5
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "oomKill"
- }
- }
- message_type {
- name: "RdmaStat"
- field {
- name: "current"
- number: 1
- label: LABEL_REPEATED
- type: TYPE_MESSAGE
- type_name: ".io.containerd.cgroups.v2.RdmaEntry"
- json_name: "current"
- }
- field {
- name: "limit"
- number: 2
- label: LABEL_REPEATED
- type: TYPE_MESSAGE
- type_name: ".io.containerd.cgroups.v2.RdmaEntry"
- json_name: "limit"
- }
- }
- message_type {
- name: "RdmaEntry"
- field {
- name: "device"
- number: 1
- label: LABEL_OPTIONAL
- type: TYPE_STRING
- json_name: "device"
- }
- field {
- name: "hca_handles"
- number: 2
- label: LABEL_OPTIONAL
- type: TYPE_UINT32
- json_name: "hcaHandles"
- }
- field {
- name: "hca_objects"
- number: 3
- label: LABEL_OPTIONAL
- type: TYPE_UINT32
- json_name: "hcaObjects"
- }
- }
- message_type {
- name: "IOStat"
- field {
- name: "usage"
- number: 1
- label: LABEL_REPEATED
- type: TYPE_MESSAGE
- type_name: ".io.containerd.cgroups.v2.IOEntry"
- json_name: "usage"
- }
- }
- message_type {
- name: "IOEntry"
- field {
- name: "major"
- number: 1
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "major"
- }
- field {
- name: "minor"
- number: 2
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "minor"
- }
- field {
- name: "rbytes"
- number: 3
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "rbytes"
- }
- field {
- name: "wbytes"
- number: 4
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "wbytes"
- }
- field {
- name: "rios"
- number: 5
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "rios"
- }
- field {
- name: "wios"
- number: 6
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "wios"
- }
- }
- message_type {
- name: "HugeTlbStat"
- field {
- name: "current"
- number: 1
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "current"
- }
- field {
- name: "max"
- number: 2
- label: LABEL_OPTIONAL
- type: TYPE_UINT64
- json_name: "max"
- }
- field {
- name: "pagesize"
- number: 3
- label: LABEL_OPTIONAL
- type: TYPE_STRING
- json_name: "pagesize"
- }
- }
- syntax: "proto3"
-}
diff --git a/vendor/github.com/containerd/cgroups/v2/stats/metrics.proto b/vendor/github.com/containerd/cgroups/v2/stats/metrics.proto
deleted file mode 100644
index 8ac472e46..000000000
--- a/vendor/github.com/containerd/cgroups/v2/stats/metrics.proto
+++ /dev/null
@@ -1,105 +0,0 @@
-syntax = "proto3";
-
-package io.containerd.cgroups.v2;
-
- import "gogoproto/gogo.proto";
-
-message Metrics {
- PidsStat pids = 1;
- CPUStat cpu = 2 [(gogoproto.customname) = "CPU"];
- MemoryStat memory = 4;
- RdmaStat rdma = 5;
- IOStat io = 6;
- repeated HugeTlbStat hugetlb = 7;
- MemoryEvents memory_events = 8;
-}
-
-message PidsStat {
- uint64 current = 1;
- uint64 limit = 2;
-}
-
-message CPUStat {
- uint64 usage_usec = 1;
- uint64 user_usec = 2;
- uint64 system_usec = 3;
- uint64 nr_periods = 4;
- uint64 nr_throttled = 5;
- uint64 throttled_usec = 6;
-}
-
-message MemoryStat {
- uint64 anon = 1;
- uint64 file = 2;
- uint64 kernel_stack = 3;
- uint64 slab = 4;
- uint64 sock = 5;
- uint64 shmem = 6;
- uint64 file_mapped = 7;
- uint64 file_dirty = 8;
- uint64 file_writeback = 9;
- uint64 anon_thp = 10;
- uint64 inactive_anon = 11;
- uint64 active_anon = 12;
- uint64 inactive_file = 13;
- uint64 active_file = 14;
- uint64 unevictable = 15;
- uint64 slab_reclaimable = 16;
- uint64 slab_unreclaimable = 17;
- uint64 pgfault = 18;
- uint64 pgmajfault = 19;
- uint64 workingset_refault = 20;
- uint64 workingset_activate = 21;
- uint64 workingset_nodereclaim = 22;
- uint64 pgrefill = 23;
- uint64 pgscan = 24;
- uint64 pgsteal = 25;
- uint64 pgactivate = 26;
- uint64 pgdeactivate = 27;
- uint64 pglazyfree = 28;
- uint64 pglazyfreed = 29;
- uint64 thp_fault_alloc = 30;
- uint64 thp_collapse_alloc = 31;
- uint64 usage = 32;
- uint64 usage_limit = 33;
- uint64 swap_usage = 34;
- uint64 swap_limit = 35;
-}
-
-message MemoryEvents {
- uint64 low = 1;
- uint64 high = 2;
- uint64 max = 3;
- uint64 oom = 4;
- uint64 oom_kill = 5;
-}
-
-message RdmaStat {
- repeated RdmaEntry current = 1;
- repeated RdmaEntry limit = 2;
-}
-
-message RdmaEntry {
- string device = 1;
- uint32 hca_handles = 2;
- uint32 hca_objects = 3;
-}
-
-message IOStat {
- repeated IOEntry usage = 1;
-}
-
-message IOEntry {
- uint64 major = 1;
- uint64 minor = 2;
- uint64 rbytes = 3;
- uint64 wbytes = 4;
- uint64 rios = 5;
- uint64 wios = 6;
-}
-
-message HugeTlbStat {
- uint64 current = 1;
- uint64 max = 2;
- string pagesize = 3;
-}
diff --git a/vendor/github.com/containerd/cgroups/v2/utils.go b/vendor/github.com/containerd/cgroups/v2/utils.go
deleted file mode 100644
index 240c92677..000000000
--- a/vendor/github.com/containerd/cgroups/v2/utils.go
+++ /dev/null
@@ -1,436 +0,0 @@
-/*
- Copyright The containerd Authors.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-package v2
-
-import (
- "bufio"
- "fmt"
- "io"
- "io/ioutil"
- "math"
- "os"
- "path/filepath"
- "strconv"
- "strings"
- "time"
-
- "github.com/containerd/cgroups/v2/stats"
-
- "github.com/godbus/dbus/v5"
- "github.com/opencontainers/runtime-spec/specs-go"
- "github.com/sirupsen/logrus"
-)
-
-const (
- cgroupProcs = "cgroup.procs"
- defaultDirPerm = 0755
-)
-
-// defaultFilePerm is a var so that the test framework can change the filemode
-// of all files created when the tests are running. The difference between the
-// tests and real world use is that files like "cgroup.procs" will exist when writing
-// to a read cgroup filesystem and do not exist prior when running in the tests.
-// this is set to a non 0 value in the test code
-var defaultFilePerm = os.FileMode(0)
-
-// remove will remove a cgroup path handling EAGAIN and EBUSY errors and
-// retrying the remove after a exp timeout
-func remove(path string) error {
- var err error
- delay := 10 * time.Millisecond
- for i := 0; i < 5; i++ {
- if i != 0 {
- time.Sleep(delay)
- delay *= 2
- }
- if err = os.RemoveAll(path); err == nil {
- return nil
- }
- }
- return fmt.Errorf("cgroups: unable to remove path %q: %w", path, err)
-}
-
-// parseCgroupProcsFile parses /sys/fs/cgroup/$GROUPPATH/cgroup.procs
-func parseCgroupProcsFile(path string) ([]uint64, error) {
- f, err := os.Open(path)
- if err != nil {
- return nil, err
- }
- defer f.Close()
- var (
- out []uint64
- s = bufio.NewScanner(f)
- )
- for s.Scan() {
- if t := s.Text(); t != "" {
- pid, err := strconv.ParseUint(t, 10, 0)
- if err != nil {
- return nil, err
- }
- out = append(out, pid)
- }
- }
- if err := s.Err(); err != nil {
- return nil, err
- }
- return out, nil
-}
-
-func parseKV(raw string) (string, interface{}, error) {
- parts := strings.Fields(raw)
- switch len(parts) {
- case 2:
- v, err := parseUint(parts[1], 10, 64)
- if err != nil {
- // if we cannot parse as a uint, parse as a string
- return parts[0], parts[1], nil
- }
- return parts[0], v, nil
- default:
- return "", 0, ErrInvalidFormat
- }
-}
-
-func parseUint(s string, base, bitSize int) (uint64, error) {
- v, err := strconv.ParseUint(s, base, bitSize)
- if err != nil {
- intValue, intErr := strconv.ParseInt(s, base, bitSize)
- // 1. Handle negative values greater than MinInt64 (and)
- // 2. Handle negative values lesser than MinInt64
- if intErr == nil && intValue < 0 {
- return 0, nil
- } else if intErr != nil &&
- intErr.(*strconv.NumError).Err == strconv.ErrRange &&
- intValue < 0 {
- return 0, nil
- }
- return 0, err
- }
- return v, nil
-}
-
-// parseCgroupFile parses /proc/PID/cgroup file and return string
-func parseCgroupFile(path string) (string, error) {
- f, err := os.Open(path)
- if err != nil {
- return "", err
- }
- defer f.Close()
- return parseCgroupFromReader(f)
-}
-
-func parseCgroupFromReader(r io.Reader) (string, error) {
- var (
- s = bufio.NewScanner(r)
- )
- for s.Scan() {
- var (
- text = s.Text()
- parts = strings.SplitN(text, ":", 3)
- )
- if len(parts) < 3 {
- return "", fmt.Errorf("invalid cgroup entry: %q", text)
- }
- // text is like "0::/user.slice/user-1001.slice/session-1.scope"
- if parts[0] == "0" && parts[1] == "" {
- return parts[2], nil
- }
- }
- if err := s.Err(); err != nil {
- return "", err
- }
- return "", fmt.Errorf("cgroup path not found")
-}
-
-// ToResources converts the oci LinuxResources struct into a
-// v2 Resources type for use with this package.
-//
-// converting cgroups configuration from v1 to v2
-// ref: https://github.com/containers/crun/blob/master/crun.1.md#cgroup-v2
-func ToResources(spec *specs.LinuxResources) *Resources {
- var resources Resources
- if cpu := spec.CPU; cpu != nil {
- resources.CPU = &CPU{
- Cpus: cpu.Cpus,
- Mems: cpu.Mems,
- }
- if shares := cpu.Shares; shares != nil {
- convertedWeight := 1 + ((*shares-2)*9999)/262142
- resources.CPU.Weight = &convertedWeight
- }
- if period := cpu.Period; period != nil {
- resources.CPU.Max = NewCPUMax(cpu.Quota, period)
- }
- }
- if mem := spec.Memory; mem != nil {
- resources.Memory = &Memory{}
- if swap := mem.Swap; swap != nil {
- resources.Memory.Swap = swap
- }
- if l := mem.Limit; l != nil {
- resources.Memory.Max = l
- }
- if l := mem.Reservation; l != nil {
- resources.Memory.Low = l
- }
- }
- if hugetlbs := spec.HugepageLimits; hugetlbs != nil {
- hugeTlbUsage := HugeTlb{}
- for _, hugetlb := range hugetlbs {
- hugeTlbUsage = append(hugeTlbUsage, HugeTlbEntry{
- HugePageSize: hugetlb.Pagesize,
- Limit: hugetlb.Limit,
- })
- }
- resources.HugeTlb = &hugeTlbUsage
- }
- if pids := spec.Pids; pids != nil {
- resources.Pids = &Pids{
- Max: pids.Limit,
- }
- }
- if i := spec.BlockIO; i != nil {
- resources.IO = &IO{}
- if i.Weight != nil {
- resources.IO.BFQ.Weight = 1 + (*i.Weight-10)*9999/990
- }
- for t, devices := range map[IOType][]specs.LinuxThrottleDevice{
- ReadBPS: i.ThrottleReadBpsDevice,
- WriteBPS: i.ThrottleWriteBpsDevice,
- ReadIOPS: i.ThrottleReadIOPSDevice,
- WriteIOPS: i.ThrottleWriteIOPSDevice,
- } {
- for _, d := range devices {
- resources.IO.Max = append(resources.IO.Max, Entry{
- Type: t,
- Major: d.Major,
- Minor: d.Minor,
- Rate: d.Rate,
- })
- }
- }
- }
- if i := spec.Rdma; i != nil {
- resources.RDMA = &RDMA{}
- for device, value := range spec.Rdma {
- if device != "" && (value.HcaHandles != nil && value.HcaObjects != nil) {
- resources.RDMA.Limit = append(resources.RDMA.Limit, RDMAEntry{
- Device: device,
- HcaHandles: *value.HcaHandles,
- HcaObjects: *value.HcaObjects,
- })
- }
- }
- }
-
- return &resources
-}
-
-// Gets uint64 parsed content of single value cgroup stat file
-func getStatFileContentUint64(filePath string) uint64 {
- contents, err := ioutil.ReadFile(filePath)
- if err != nil {
- return 0
- }
- trimmed := strings.TrimSpace(string(contents))
- if trimmed == "max" {
- return math.MaxUint64
- }
-
- res, err := parseUint(trimmed, 10, 64)
- if err != nil {
- logrus.Errorf("unable to parse %q as a uint from Cgroup file %q", string(contents), filePath)
- return res
- }
-
- return res
-}
-
-func readIoStats(path string) []*stats.IOEntry {
- // more details on the io.stat file format: https://www.kernel.org/doc/Documentation/cgroup-v2.txt
- var usage []*stats.IOEntry
- fpath := filepath.Join(path, "io.stat")
- currentData, err := ioutil.ReadFile(fpath)
- if err != nil {
- return usage
- }
- entries := strings.Split(string(currentData), "\n")
-
- for _, entry := range entries {
- parts := strings.Split(entry, " ")
- if len(parts) < 2 {
- continue
- }
- majmin := strings.Split(parts[0], ":")
- if len(majmin) != 2 {
- continue
- }
- major, err := strconv.ParseUint(majmin[0], 10, 0)
- if err != nil {
- return usage
- }
- minor, err := strconv.ParseUint(majmin[1], 10, 0)
- if err != nil {
- return usage
- }
- parts = parts[1:]
- ioEntry := stats.IOEntry{
- Major: major,
- Minor: minor,
- }
- for _, s := range parts {
- keyPairValue := strings.Split(s, "=")
- if len(keyPairValue) != 2 {
- continue
- }
- v, err := strconv.ParseUint(keyPairValue[1], 10, 0)
- if err != nil {
- continue
- }
- switch keyPairValue[0] {
- case "rbytes":
- ioEntry.Rbytes = v
- case "wbytes":
- ioEntry.Wbytes = v
- case "rios":
- ioEntry.Rios = v
- case "wios":
- ioEntry.Wios = v
- }
- }
- usage = append(usage, &ioEntry)
- }
- return usage
-}
-
-func rdmaStats(filepath string) []*stats.RdmaEntry {
- currentData, err := ioutil.ReadFile(filepath)
- if err != nil {
- return []*stats.RdmaEntry{}
- }
- return toRdmaEntry(strings.Split(string(currentData), "\n"))
-}
-
-func parseRdmaKV(raw string, entry *stats.RdmaEntry) {
- var value uint64
- var err error
-
- parts := strings.Split(raw, "=")
- switch len(parts) {
- case 2:
- if parts[1] == "max" {
- value = math.MaxUint32
- } else {
- value, err = parseUint(parts[1], 10, 32)
- if err != nil {
- return
- }
- }
- if parts[0] == "hca_handle" {
- entry.HcaHandles = uint32(value)
- } else if parts[0] == "hca_object" {
- entry.HcaObjects = uint32(value)
- }
- }
-}
-
-func toRdmaEntry(strEntries []string) []*stats.RdmaEntry {
- var rdmaEntries []*stats.RdmaEntry
- for i := range strEntries {
- parts := strings.Fields(strEntries[i])
- switch len(parts) {
- case 3:
- entry := new(stats.RdmaEntry)
- entry.Device = parts[0]
- parseRdmaKV(parts[1], entry)
- parseRdmaKV(parts[2], entry)
-
- rdmaEntries = append(rdmaEntries, entry)
- default:
- continue
- }
- }
- return rdmaEntries
-}
-
-// isUnitExists returns true if the error is that a systemd unit already exists.
-func isUnitExists(err error) bool {
- if err != nil {
- if dbusError, ok := err.(dbus.Error); ok {
- return strings.Contains(dbusError.Name, "org.freedesktop.systemd1.UnitExists")
- }
- }
- return false
-}
-
-func systemdUnitFromPath(path string) string {
- _, unit := filepath.Split(path)
- return unit
-}
-
-func readHugeTlbStats(path string) []*stats.HugeTlbStat {
- var usage = []*stats.HugeTlbStat{}
- var keyUsage = make(map[string]*stats.HugeTlbStat)
- f, err := os.Open(path)
- if err != nil {
- return usage
- }
- files, err := f.Readdir(-1)
- f.Close()
- if err != nil {
- return usage
- }
-
- for _, file := range files {
- if strings.Contains(file.Name(), "hugetlb") &&
- (strings.HasSuffix(file.Name(), "max") || strings.HasSuffix(file.Name(), "current")) {
- var hugeTlb *stats.HugeTlbStat
- var ok bool
- fileName := strings.Split(file.Name(), ".")
- pageSize := fileName[1]
- if hugeTlb, ok = keyUsage[pageSize]; !ok {
- hugeTlb = &stats.HugeTlbStat{}
- }
- hugeTlb.Pagesize = pageSize
- out, err := ioutil.ReadFile(filepath.Join(path, file.Name()))
- if err != nil {
- continue
- }
- var value uint64
- stringVal := strings.TrimSpace(string(out))
- if stringVal == "max" {
- value = math.MaxUint64
- } else {
- value, err = strconv.ParseUint(stringVal, 10, 64)
- }
- if err != nil {
- continue
- }
- switch fileName[2] {
- case "max":
- hugeTlb.Max = value
- case "current":
- hugeTlb.Current = value
- }
- keyUsage[pageSize] = hugeTlb
- }
- }
- for _, entry := range keyUsage {
- usage = append(usage, entry)
- }
- return usage
-}