runc/patch/0113-runc-modify-files-cgroup-info-reading-path.patch
openeuler-iSula 5904ba4dcf runc: package init
Signed-off-by: openeuler-iSula <isula@huawei.com>
2019-12-29 15:34:20 +08:00

80 lines
2.8 KiB
Diff

From 6c40c8e9d74a61bbca97b1c98efaa5e1f75a02e1 Mon Sep 17 00:00:00 2001
From: xiadanni1 <xiadanni1@huawei.com>
Date: Fri, 1 Nov 2019 00:46:28 +0800
Subject: [PATCH] runc: modify files cgroup info reading path
reason: modify files crgoup info reading path in case user sets --cgroup-parent.
Change-Id: If33fe87cafe813d2e40b664c52c31416c16e4587
Signed-off-by: xiadanni1 <xiadanni1@huawei.com>
---
libcontainer/container_linux.go | 2 +-
libcontainer/standard_init_linux.go | 30 ++++++++++--------------------
2 files changed, 11 insertions(+), 21 deletions(-)
diff --git a/libcontainer/container_linux.go b/libcontainer/container_linux.go
index 3ee7d5f..e7c178b 100644
--- a/libcontainer/container_linux.go
+++ b/libcontainer/container_linux.go
@@ -310,7 +310,7 @@ func (c *linuxContainer) start(process *Process) error {
return newSystemErrorWithCause(err, "creating new parent process")
}
if err := parent.start(); err != nil {
- printFilesInfo(c.id)
+ printFilesInfo(c.config.Cgroups.Path)
// terminate the process to ensure that it properly is reaped.
if err := parent.terminate(); err != nil {
logrus.Warn(err)
diff --git a/libcontainer/standard_init_linux.go b/libcontainer/standard_init_linux.go
index ac6b3bf..96901ef 100644
--- a/libcontainer/standard_init_linux.go
+++ b/libcontainer/standard_init_linux.go
@@ -7,6 +7,7 @@ import (
"io/ioutil"
"os"
"os/exec"
+ "path/filepath"
"strings"
"syscall"
"time"
@@ -222,27 +223,16 @@ func (l *linuxStandardInit) Init() error {
}
func printMemoryInfo() {
- output, err := ioutil.ReadFile("/proc/meminfo")
- if err != nil {
- logrus.Errorf("Failed to read /proc/meminfo, %v", err)
- } else {
- logrus.Infof("print memory info (/proc/meminfo): %s", string(output))
- }
+ printFileContent("/proc/meminfo")
+ printFileContent("/sys/fs/cgroup/memory/memory.stat")
+}
- output, err = ioutil.ReadFile("/sys/fs/cgroup/memory/memory.stat")
- if err != nil {
- logrus.Errorf("Failed to read /sys/fs/cgroup/memory/memory.stat, %v", err)
- } else {
- logrus.Infof("print memory info (cgroup memory.stat): %s", string(output))
- }
+func printFilesInfo(path string) {
+ printFileContent(filepath.Join("/sys/fs/cgroup/files", path, "/files.limit"))
+ printFileContent(filepath.Join("/sys/fs/cgroup/files", path, "/files.usage"))
}
-func printFilesInfo(id string) {
- if id != "" {
- id = "docker/" + id + "/"
- }
- output, err := ioutil.ReadFile("/sys/fs/cgroup/files/" + id + "files.limit")
- logrus.Errorf("cgroup files.limit: %s, err: %v", string(output), err)
- output, err = ioutil.ReadFile("/sys/fs/cgroup/files/" + id + "files.usage")
- logrus.Errorf("cgroup files.usage: %s, err: %v", string(output), err)
+func printFileContent(path string) {
+ output, err := ioutil.ReadFile(path)
+ logrus.Infof("content read from %s: %s, err: %v", path, string(output), err)
}
--
1.8.3.1