diff --git a/pkg/kubelet/cm/cpumanager/state/state.go b/pkg/kubelet/cm/cpumanager/state/state.go index 96efbcfa472..352fddfb9cd 100644 --- a/pkg/kubelet/cm/cpumanager/state/state.go +++ b/pkg/kubelet/cm/cpumanager/state/state.go @@ -25,9 +25,9 @@ type ContainerCPUAssignments map[string]map[string]cpuset.CPUSet // Clone returns a copy of ContainerCPUAssignments func (as ContainerCPUAssignments) Clone() ContainerCPUAssignments { - ret := make(ContainerCPUAssignments) + ret := make(ContainerCPUAssignments, len(as)) for pod := range as { - ret[pod] = make(map[string]cpuset.CPUSet) + ret[pod] = make(map[string]cpuset.CPUSet, len(as[pod])) for container, cset := range as[pod] { ret[pod][container] = cset } diff --git a/pkg/kubelet/cm/cpumanager/state/state_checkpoint.go b/pkg/kubelet/cm/cpumanager/state/state_checkpoint.go index e6b8fd4718d..f6acc7c42ce 100644 --- a/pkg/kubelet/cm/cpumanager/state/state_checkpoint.go +++ b/pkg/kubelet/cm/cpumanager/state/state_checkpoint.go @@ -121,7 +121,7 @@ func (sc *stateCheckpoint) restoreState() error { var tmpContainerCPUSet cpuset.CPUSet tmpAssignments := ContainerCPUAssignments{} for pod := range checkpointV2.Entries { - tmpAssignments[pod] = make(map[string]cpuset.CPUSet) + tmpAssignments[pod] = make(map[string]cpuset.CPUSet, len(checkpointV2.Entries[pod])) for container, cpuString := range checkpointV2.Entries[pod] { if tmpContainerCPUSet, err = cpuset.Parse(cpuString); err != nil { return fmt.Errorf("could not parse cpuset %q for container %q in pod %q: %v", cpuString, container, pod, err) @@ -147,7 +147,7 @@ func (sc *stateCheckpoint) storeState() error { assignments := sc.cache.GetCPUAssignments() for pod := range assignments { - checkpoint.Entries[pod] = make(map[string]string) + checkpoint.Entries[pod] = make(map[string]string, len(assignments[pod])) for container, cset := range assignments[pod] { checkpoint.Entries[pod][container] = cset.String() }