Skip to content

Commit 2296d86

Browse files
committed
Fix cgroup hugetlb size prefix for kB
The hugetlb cgroup control files (introduced here in 2012: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=abb8206cb0773) use "KB" and not "kB" (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/mm/hugetlb_cgroup.c?h=v5.0#n349). The behavior in the kernel has not changed since the introduction, and the current code using "kB" will therefore fail on devices with small amounts of ram (see kubernetes#77169) running a kernel with config flag CONFIG_HUGETLBFS=y As seen from the code in "mem_fmt" inside hugetlb_cgroup.c, only "KB", "MB" and "GB" are used, so the others may be removed as well. Here is a real world example of the files inside the "/sys/kernel/mm/hugepages/" directory: - "hugepages-64kB" - "hugepages-2048kB" - "hugepages-32768kB" - "hugepages-1048576kB" And the corresponding cgroup files: - "hugetlb.64KB._____" - "hugetlb.2MB._____" - "hugetlb.32MB._____" - "hugetlb.1GB._____" This does also require the following changes in runc: opencontainers/runc#2065 Signed-off-by: Odin Ugedal <odin@ugedal.com>
1 parent 88f8c78 commit 2296d86

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

pkg/kubelet/cm/cgroup_manager_linux.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ const (
5151

5252
// hugePageSizeList is useful for converting to the hugetlb canonical unit
5353
// which is what is expected when interacting with libcontainer
54-
var hugePageSizeList = []string{"B", "kB", "MB", "GB", "TB", "PB"}
54+
var hugePageSizeList = []string{"B", "KB", "MB", "GB", "TB", "PB"}
5555

5656
var RootCgroupName = CgroupName([]string{})
5757

0 commit comments

Comments
 (0)