42 lines
1.4 KiB
Diff
42 lines
1.4 KiB
Diff
From 23ec6c42c22a7bfd4494b15abc9c3303018dec85 Mon Sep 17 00:00:00 2001
|
|
From: Jordan Rife <jrife0@gmail.com>
|
|
Date: Sat, 16 Sep 2023 18:10:00 +0000
|
|
Subject: [PATCH] Handle kmem.limit_in_bytes removal
|
|
|
|
kmem.limit_in_bytes has been removed in upstream linux and this patch
|
|
is queued to be backported to linux 6.1 stable:
|
|
|
|
- https://lore.kernel.org/linux-mm/20230705134434.GA156754@cmpxchg.org/T/
|
|
- https://www.spinics.net/lists/stable-commits/msg316619.html
|
|
|
|
Without this change to libcontainerd, GetStats() will return an error
|
|
on the latest kernel(s). A downstream effect is that Kubernetes's
|
|
kubelet does not start up. This fix was tested by ensuring that it
|
|
unblocks kubelet startup when running on the latest kernel.
|
|
|
|
Signed-off-by: Jordan Rife <jrife0@gmail.com>
|
|
---
|
|
libcontainer/cgroups/fs/memory.go | 6 ++++++
|
|
1 file changed, 6 insertions(+)
|
|
|
|
diff --git a/libcontainer/cgroups/fs/memory.go b/libcontainer/cgroups/fs/memory.go
|
|
index b7c75f94..a0e78074 100644
|
|
--- a/libcontainer/cgroups/fs/memory.go
|
|
+++ b/libcontainer/cgroups/fs/memory.go
|
|
@@ -234,6 +234,12 @@ func getMemoryData(path, name string) (cgroups.MemoryData, error) {
|
|
memoryData.Failcnt = value
|
|
value, err = fscommon.GetCgroupParamUint(path, limit)
|
|
if err != nil {
|
|
+ if name == "kmem" && os.IsNotExist(err) {
|
|
+ // Ignore ENOENT as kmem.limit_in_bytes has
|
|
+ // been removed in newer kernels.
|
|
+ return memoryData, nil
|
|
+ }
|
|
+
|
|
return cgroups.MemoryData{}, err
|
|
}
|
|
memoryData.Limit = value
|
|
--
|
|
2.33.0
|
|
|