sysfs

package
v0.9.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 6, 2024 License: Apache-2.0 Imports: 11 Imported by: 7

Documentation

Index

Constants

View Source
const (
	M = (int64(1) << 20)
	G = (int64(1) << 30)
	T = (int64(1) << 40)
)

unit multipliers

Variables

This section is empty.

Functions

func CPUSetFromIDSet added in v0.6.0

func CPUSetFromIDSet(s idset.IDSet) cpuset.CPUSet

CPUSetFromIDSet returns a cpuset.CPUSet corresponding to an id set.

func IDSetFromCPUSet added in v0.6.0

func IDSetFromCPUSet(cset cpuset.CPUSet) idset.IDSet

IDSetFromCPUSet returns an id set corresponding to a cpuset.CPUSet.

func ParseFileEntries

func ParseFileEntries(path string, values map[string]interface{}, pickFn PickEntryFn) error

ParseFileEntries parses a sysfs files for the given entries.

func SetSysRoot added in v0.8.0

func SetSysRoot(path string)

SetSysRoot sets the sys root directory.

func SysRoot added in v0.9.0

func SysRoot() string

SysRoot returns the sys root directory.

Types

type CPU

type CPU interface {
	ID() idset.ID
	PackageID() idset.ID
	DieID() idset.ID
	NodeID() idset.ID
	CoreID() idset.ID
	ThreadCPUSet() cpuset.CPUSet
	BaseFrequency() uint64
	FrequencyRange() CPUFreq
	EPP() EPP
	Online() bool
	Isolated() bool
	SetFrequencyLimits(min, max uint64) error
	SstClos() int
}

CPU is a CPU core.

type CPUFreq

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

CPUFreq is a CPU frequency scaling range

type CPUPackage

type CPUPackage interface {
	ID() idset.ID
	CPUSet() cpuset.CPUSet
	DieIDs() []idset.ID
	NodeIDs() []idset.ID
	DieNodeIDs(idset.ID) []idset.ID
	DieCPUSet(idset.ID) cpuset.CPUSet
	SstInfo() *sst.SstPackageInfo
}

CPUPackage is a physical package (a collection of CPUs).

type Cache

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

Cache has details about cache.

type CacheType

type CacheType string

CacheType specifies a cache type.

const (
	// DataCache marks data cache.
	DataCache CacheType = "Data"
	// InstructionCache marks instruction cache.
	InstructionCache CacheType = "Instruction"
	// UnifiedCache marks a unified data/instruction cache.
	UnifiedCache CacheType = "Unified"
)

type EPP added in v0.5.0

type EPP int

EPP represents the value of a CPU energy performance profile

const (
	EPPPerformance EPP = iota
	EPPBalancePerformance
	EPPBalancePower
	EPPPower
	EPPUnknown
)

func EPPFromString added in v0.5.0

func EPPFromString(s string) EPP

EPPFromString converts string to EPP value

func (EPP) String added in v0.5.0

func (e EPP) String() string

String returns EPP value as string

type MemInfo

type MemInfo struct {
	MemTotal uint64
	MemFree  uint64
	MemUsed  uint64
}

MemInfo contains data read from a NUMA node meminfo file.

type MemoryType

type MemoryType int

MemoryType is an enum for the Node memory

const (
	// MemoryTypeDRAM means that the node has regular DRAM-type memory
	MemoryTypeDRAM MemoryType = iota
	// MemoryTypePMEM means that the node has persistent memory
	MemoryTypePMEM
	// MemoryTypeHBM means that the node has high bandwidth memory
	MemoryTypeHBM
)

type Node

type Node interface {
	ID() idset.ID
	PackageID() idset.ID
	DieID() idset.ID
	CPUSet() cpuset.CPUSet
	Distance() []int
	DistanceFrom(id idset.ID) int
	MemoryInfo() (*MemInfo, error)
	GetMemoryType() MemoryType
	HasNormalMemory() bool
}

Node represents a NUMA node.

type PickEntryFn

type PickEntryFn func(string) (string, string, error)

PickEntryFn picks a given input line apart into an entry of key and value.

type System

type System interface {
	Discover() error
	SetCpusOnline(online bool, cpus idset.IDSet) (idset.IDSet, error)
	SetCPUFrequencyLimits(min, max uint64, cpus idset.IDSet) error
	PackageIDs() []idset.ID
	NodeIDs() []idset.ID
	CPUIDs() []idset.ID
	PackageCount() int
	SocketCount() int
	CPUCount() int
	NUMANodeCount() int
	ThreadCount() int
	CPUSet() cpuset.CPUSet
	Package(id idset.ID) CPUPackage
	Node(id idset.ID) Node
	NodeDistance(from, to idset.ID) int
	CPU(id idset.ID) CPU
	Offlined() cpuset.CPUSet
	Isolated() cpuset.CPUSet
}

System devices

func DiscoverSystem

func DiscoverSystem() (System, error)

DiscoverSystem performs discovery of the running systems details.

func DiscoverSystemAt

func DiscoverSystemAt(path string) (System, error)

DiscoverSystemAt performs discovery of the running systems details from sysfs mounted at path.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL