Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 13 additions & 11 deletions libcontainer/configs/memorypolicy.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,22 @@ package configs
import "golang.org/x/sys/unix"

// Memory policy modes and flags as defined in /usr/include/linux/mempolicy.h

//
// Deprecated: use constants from [unix] instead.
//
//nolint:revive,staticcheck,nolintlint // ignore ALL_CAPS errors in consts from numaif.h, will match unix.* in the future
const (
MPOL_DEFAULT = 0
MPOL_PREFERRED = 1
MPOL_BIND = 2
MPOL_INTERLEAVE = 3
MPOL_LOCAL = 4
MPOL_PREFERRED_MANY = 5
MPOL_WEIGHTED_INTERLEAVE = 6
MPOL_DEFAULT = unix.MPOL_DEFAULT
MPOL_PREFERRED = unix.MPOL_PREFERRED
MPOL_BIND = unix.MPOL_BIND
MPOL_INTERLEAVE = unix.MPOL_INTERLEAVE
MPOL_LOCAL = unix.MPOL_LOCAL
MPOL_PREFERRED_MANY = unix.MPOL_PREFERRED_MANY
MPOL_WEIGHTED_INTERLEAVE = unix.MPOL_WEIGHTED_INTERLEAVE

MPOL_F_STATIC_NODES = 1 << 15
MPOL_F_RELATIVE_NODES = 1 << 14
MPOL_F_NUMA_BALANCING = 1 << 13
MPOL_F_STATIC_NODES = unix.MPOL_F_STATIC_NODES
MPOL_F_RELATIVE_NODES = unix.MPOL_F_RELATIVE_NODES
MPOL_F_NUMA_BALANCING = unix.MPOL_F_NUMA_BALANCING
)

// LinuxMemoryPolicy contains memory policy configuration.
Expand Down
8 changes: 4 additions & 4 deletions libcontainer/configs/validate/validator.go
Original file line number Diff line number Diff line change
Expand Up @@ -490,16 +490,16 @@ func memoryPolicy(config *configs.Config) error {
return nil
}
switch mpol.Mode {
case configs.MPOL_DEFAULT, configs.MPOL_LOCAL:
case unix.MPOL_DEFAULT, unix.MPOL_LOCAL:
if mpol.Nodes != nil && mpol.Nodes.Count() != 0 {
return fmt.Errorf("memory policy mode requires 0 nodes but got %d", mpol.Nodes.Count())
}
case configs.MPOL_BIND, configs.MPOL_INTERLEAVE,
configs.MPOL_PREFERRED_MANY, configs.MPOL_WEIGHTED_INTERLEAVE:
case unix.MPOL_BIND, unix.MPOL_INTERLEAVE,
unix.MPOL_PREFERRED_MANY, unix.MPOL_WEIGHTED_INTERLEAVE:
if mpol.Nodes == nil || mpol.Nodes.Count() == 0 {
return fmt.Errorf("memory policy mode requires at least one node but got 0")
}
case configs.MPOL_PREFERRED:
case unix.MPOL_PREFERRED:
// Zero or more nodes are allowed by the kernel.
default:
return fmt.Errorf("invalid memory policy mode: %d", mpol.Mode)
Expand Down