From fb73bf6ccd3206b2d33d6b1753b9f4baad2d5a2a Mon Sep 17 00:00:00 2001 From: Kir Kolyshkin Date: Thu, 4 Dec 2025 17:21:11 -0800 Subject: [PATCH] libct/configs: mark MPOL_* constants as deprecated Alas, these new constants are already in v1.4.0 release so we can't remove those right away, but we can mark them as deprecated now and target removal for v1.5.0. So, - mark them as deprecated; - redefine via unix.MPOL_* counterparts; - fix the validator code to use unix.MPOL_* directly. This amends commit a0e809a8. Signed-off-by: Kir Kolyshkin --- libcontainer/configs/memorypolicy.go | 24 ++++++++++++---------- libcontainer/configs/validate/validator.go | 8 ++++---- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/libcontainer/configs/memorypolicy.go b/libcontainer/configs/memorypolicy.go index 36de853bbab..b7b9c6bce1a 100644 --- a/libcontainer/configs/memorypolicy.go +++ b/libcontainer/configs/memorypolicy.go @@ -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. diff --git a/libcontainer/configs/validate/validator.go b/libcontainer/configs/validate/validator.go index 9851e4057d3..085e1cacd8c 100644 --- a/libcontainer/configs/validate/validator.go +++ b/libcontainer/configs/validate/validator.go @@ -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)