 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Block ¶
type Block struct {
	// NUMAAffinity contains the string that represents NUMA affinity bitmask
	NUMAAffinity []int           `json:"numaAffinity"`
	Type         v1.ResourceName `json:"type"`
	Size         uint64          `json:"size"`
}
    Block is a data structure used to represent a certain amount of memory
type ContainerMemoryAssignments ¶
ContainerMemoryAssignments stores memory assignments of containers
func (ContainerMemoryAssignments) Clone ¶
func (as ContainerMemoryAssignments) Clone() ContainerMemoryAssignments
Clone returns a copy of ContainerMemoryAssignments
type MemoryManagerCheckpoint ¶
type MemoryManagerCheckpoint struct {
	PolicyName   string                     `json:"policyName"`
	MachineState NUMANodeMap                `json:"machineState"`
	Entries      ContainerMemoryAssignments `json:"entries,omitempty"`
	Checksum     checksum.Checksum          `json:"checksum"`
}
    MemoryManagerCheckpoint struct is used to store memory/pod assignments in a checkpoint
func NewMemoryManagerCheckpoint ¶
func NewMemoryManagerCheckpoint() *MemoryManagerCheckpoint
NewMemoryManagerCheckpoint returns an instance of Checkpoint
func (*MemoryManagerCheckpoint) MarshalCheckpoint ¶
func (mp *MemoryManagerCheckpoint) MarshalCheckpoint() ([]byte, error)
MarshalCheckpoint returns marshalled checkpoint
func (*MemoryManagerCheckpoint) UnmarshalCheckpoint ¶
func (mp *MemoryManagerCheckpoint) UnmarshalCheckpoint(blob []byte) error
UnmarshalCheckpoint tries to unmarshal passed bytes to checkpoint
func (*MemoryManagerCheckpoint) VerifyChecksum ¶
func (mp *MemoryManagerCheckpoint) VerifyChecksum() error
VerifyChecksum verifies that current checksum of checkpoint is valid
type MemoryTable ¶
type MemoryTable struct {
	TotalMemSize   uint64 `json:"total"`
	SystemReserved uint64 `json:"systemReserved"`
	Allocatable    uint64 `json:"allocatable"`
	Reserved       uint64 `json:"reserved"`
	Free           uint64 `json:"free"`
}
    MemoryTable contains memory information
type NUMANodeMap ¶
type NUMANodeMap map[int]*NUMANodeState
NUMANodeMap contains memory information for each NUMA node.
func (NUMANodeMap) Clone ¶
func (nm NUMANodeMap) Clone() NUMANodeMap
Clone returns a copy of NUMANodeMap
type NUMANodeState ¶
type NUMANodeState struct {
	// NumberOfAssignments contains a number memory assignments from this node
	// When the container requires memory and hugepages it will increase number of assignments by two
	NumberOfAssignments int `json:"numberOfAssignments"`
	// MemoryTable contains NUMA node memory related information
	MemoryMap map[v1.ResourceName]*MemoryTable `json:"memoryMap"`
	// Cells contains the current NUMA node and all other nodes that are in a group with current NUMA node
	// This parameter indicates if the current node is used for the multiple NUMA node memory allocation
	// For example if some container has pinning 0,1,2, NUMA nodes 0,1,2 under the state will have
	// this parameter equals to [0, 1, 2]
	Cells []int `json:"cells"`
}
    NUMANodeState contains NUMA node related information
type Reader ¶
type Reader interface {
	// GetMachineState returns Memory Map stored in the State
	GetMachineState() NUMANodeMap
	// GetMemoryBlocks returns memory assignments of a container
	GetMemoryBlocks(podUID string, containerName string) []Block
	// GetMemoryAssignments returns ContainerMemoryAssignments
	GetMemoryAssignments() ContainerMemoryAssignments
}
    Reader interface used to read current memory/pod assignment state
type State ¶
type State interface {
	Reader
	// contains filtered or unexported methods
}
    State interface provides methods for tracking and setting memory/pod assignment
func NewCheckpointState ¶
NewCheckpointState creates new State for keeping track of memory/pod assignment with checkpoint backend
func NewMemoryState ¶
func NewMemoryState() State
NewMemoryState creates new State for keeping track of cpu/pod assignment