...

Package intelrdt

import "github.com/opencontainers/runc/libcontainer/intelrdt"
Overview
Index

Overview ▾

func IsCATEnabled

func IsCATEnabled() bool

Check if Intel RDT/CAT is enabled

func IsCMTEnabled

func IsCMTEnabled() bool

Check if Intel RDT/CMT is enabled.

func IsMBAEnabled

func IsMBAEnabled() bool

Check if Intel RDT/MBA is enabled

func IsMBMEnabled

func IsMBMEnabled() bool

Check if Intel RDT/MBM is enabled.

func Root

func Root() (string, error)

Root returns the Intel RDT "resource control" filesystem mount point.

func WriteIntelRdtTasks

func WriteIntelRdtTasks(dir string, pid int) error

WriteIntelRdtTasks writes the specified pid into the "tasks" file

type CMTNumaNodeStats

type CMTNumaNodeStats struct {
    // The 'llc_occupancy' in 'container_id' group.
    LLCOccupancy uint64 `json:"llc_occupancy"`
}

type L3CacheInfo

type L3CacheInfo struct {
    CbmMask    string `json:"cbm_mask,omitempty"`
    MinCbmBits uint64 `json:"min_cbm_bits,omitempty"`
    NumClosids uint64 `json:"num_closids,omitempty"`
}

type MBMNumaNodeStats

type MBMNumaNodeStats struct {
    // The 'mbm_total_bytes' in 'container_id' group.
    MBMTotalBytes uint64 `json:"mbm_total_bytes"`

    // The 'mbm_local_bytes' in 'container_id' group.
    MBMLocalBytes uint64 `json:"mbm_local_bytes"`
}

type Manager

type Manager struct {
    // contains filtered or unexported fields
}

func NewManager

func NewManager(config *configs.Config, id string, path string) *Manager

NewManager returns a new instance of Manager, or nil if the Intel RDT functionality is not specified in the config, available from hardware or enabled in the kernel.

func (*Manager) Apply

func (m *Manager) Apply(pid int) (err error)

Applies Intel RDT configuration to the process with the specified pid

func (*Manager) Destroy

func (m *Manager) Destroy() error

Destroys the Intel RDT container-specific 'container_id' group

func (*Manager) GetPath

func (m *Manager) GetPath() string

Returns Intel RDT path to save in a state file and to be able to restore the object later

func (*Manager) GetStats

func (m *Manager) GetStats() (*Stats, error)

Returns statistics for Intel RDT

func (*Manager) Set

func (m *Manager) Set(container *configs.Config) error

Set Intel RDT "resource control" filesystem as configured.

type MemBwInfo

type MemBwInfo struct {
    BandwidthGran uint64 `json:"bandwidth_gran,omitempty"`
    DelayLinear   uint64 `json:"delay_linear,omitempty"`
    MinBandwidth  uint64 `json:"min_bandwidth,omitempty"`
    NumClosids    uint64 `json:"num_closids,omitempty"`
}

type Stats

type Stats struct {
    // The read-only L3 cache information
    L3CacheInfo *L3CacheInfo `json:"l3_cache_info,omitempty"`

    // The read-only L3 cache schema in root
    L3CacheSchemaRoot string `json:"l3_cache_schema_root,omitempty"`

    // The L3 cache schema in 'container_id' group
    L3CacheSchema string `json:"l3_cache_schema,omitempty"`

    // The read-only memory bandwidth information
    MemBwInfo *MemBwInfo `json:"mem_bw_info,omitempty"`

    // The read-only memory bandwidth schema in root
    MemBwSchemaRoot string `json:"mem_bw_schema_root,omitempty"`

    // The memory bandwidth schema in 'container_id' group
    MemBwSchema string `json:"mem_bw_schema,omitempty"`

    // The memory bandwidth monitoring statistics from NUMA nodes in 'container_id' group
    MBMStats *[]MBMNumaNodeStats `json:"mbm_stats,omitempty"`

    // The cache monitoring technology statistics from NUMA nodes in 'container_id' group
    CMTStats *[]CMTNumaNodeStats `json:"cmt_stats,omitempty"`
}