From 7f52ad4a74a812bb7989e92dfc8055f1db73809e Mon Sep 17 00:00:00 2001 From: "ilya.kuksenok" Date: Mon, 27 Feb 2023 12:15:10 +0300 Subject: [PATCH 1/2] Rebase --- lxc.spec | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/lxc.spec b/lxc.spec index 339bd88..8615aca 100644 --- a/lxc.spec +++ b/lxc.spec @@ -1,4 +1,4 @@ -%global _release 2022102410 +%global _release 2022102413 Name: lxc Version: 4.0.3 @@ -15,7 +15,6 @@ Patch0004: 0004-refactor-patch-code-of-lxccontianer-and-so-on.patch Patch0005: 0005-refactor-patch-code-of-attach-and-seccomp.patch Patch0006: 0006-refactor-patch-about-namespace-log-terminal.patch Patch0007: 0007-refactor-patches-on-terminal.c-start.c-and-so-on.patch -Patch0008: 0008-refactor-patch-code-of-json.patch Patch0009: 0009-fix-HOME-env-of-container-unset-error.patch Patch0010: 0010-check-yajl-only-when-have-isulad.patch Patch0011: 0011-drop-security_context_t.patch @@ -32,11 +31,16 @@ Patch0021: 0021-change-the-suffi-parameter-in-lxc-attach-help-output.patch Patch0022: 0022-fix-cve-CVE-2022-47952-log-leaks-root-information.patch Patch0023: 0023-fix-lxc-write-error-message.patch Patch0024: 0024-remove-process-inheritable-capability.patch +Patch0025: 0025-fix-ops-hierarchies-cause-coredump.patch +Patch0026: 0026-meminfo-cri-1.25.patch BuildRequires: systemd-units git libtool graphviz docbook2X doxygen chrpath BuildRequires: pkgconfig(libseccomp) BuildRequires: libcap libcap-devel libselinux-devel yajl yajl-devel BuildRequires: pkgconfig(bash-completion) +%ifarch riscv64 +BuildRequires: libatomic_ops +%endif Requires: lxc-libs = 4.0.3-%{release} @@ -89,6 +93,9 @@ This package contains documentation for lxc for creating containers. %autosetup -n lxc-4.0.3 -Sgit -p1 %build +%ifarch riscv64 +export LDFLAGS="%{build_ldflags} -latomic -pthread" +%endif %configure --enable-doc --enable-api-docs \ --disable-silent-rules --docdir=%{_pkgdocdir} --disable-rpath \ --disable-static --disable-apparmor --enable-selinux \ @@ -212,6 +219,24 @@ rm -rf %{buildroot}%{_sysconfdir}/default/%{name} %endif %changelog +* Wed Feb 26 2023 Ilya.kuksenok - 4.0.3-2022102413 +- Type:enhancement +- ID:NA +- SUG:NA +- DESC: Add meminfo required for CRI-1.25 + +* Wed Feb 22 2023 wangrunze - 4.0.3-2022102412 +- Type:bugfix +- ID:NA +- SUG:NA +- DESC: fix ops hierarchies cause coredump + +* Wed Feb 22 2023 misaka00251 - 4.0.3-2022102411 +- Type:enhancement +- ID:NA +- SUG:NA +- DESC: fix RISC-V build errors + * Fri Feb 17 2023 zhangxiaoyu - 4.0.3-2022102410 - Type:bugfix - ID:NA -- Gitee From 27aadf4d052a522cb4418921b763f010e0e6f573 Mon Sep 17 00:00:00 2001 From: "ilya.kuksenok" Date: Mon, 20 Feb 2023 11:45:48 +0300 Subject: [PATCH 2/2] Remove series.conf --- .gitignore | 3 ++ 0023-meminfo-cri-1.25.patch | 41 +++++++++++++++++++ 0025-fix-ops-hierarchies-cause-coredump.patch | 32 +++++++++++++++ 0026-meminfo-cri-1.25.patch | 41 +++++++++++++++++++ 4 files changed, 117 insertions(+) create mode 100644 .gitignore create mode 100644 0023-meminfo-cri-1.25.patch create mode 100644 0025-fix-ops-hierarchies-cause-coredump.patch create mode 100644 0026-meminfo-cri-1.25.patch diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2e35ae4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +*.swp +.vscode +.idea diff --git a/0023-meminfo-cri-1.25.patch b/0023-meminfo-cri-1.25.patch new file mode 100644 index 0000000..cb0b74a --- /dev/null +++ b/0023-meminfo-cri-1.25.patch @@ -0,0 +1,41 @@ +diff --git a/src/lxc/lxccontainer.c b/src/lxc/lxccontainer.c +index 4b669bb..387dc8c 100644 +--- a/src/lxc/lxccontainer.c ++++ b/src/lxc/lxccontainer.c +@@ -6052,7 +6052,19 @@ static bool do_lxcapi_get_container_metrics(struct lxc_container *c, struct lxc + + metrics->cpu_use_nanos = metrics_get_ull(c, cgroup_ops, "cpuacct.usage"); + metrics->pids_current = metrics_get_ull(c, cgroup_ops, "pids.current"); +- ++ uint64_t usage_bytes; ++ uint64_t workingset; ++ usage_bytes = metrics_match_get_ull(c,cgroup_ops, "memory.stat", "rss", 1) + ++ metrics_match_get_ull(c, cgroup_ops, "memory.stat", "cache", 1) + ++ metrics_match_get_ull(c, cgroup_ops, "memory.stat", "swap", 1); ++ // workingset = usage - inactive_file ++ workingset = usage_bytes - metrics_match_get_ull(c, cgroup_ops, "memory.stat", "total_inactive_file", 1); ++ // Avaliable bytes = limit - workingset ++ metrics->avaliable_bytes = metrics_get_ull(c, cgroup_ops, "memory.limit_in_bytes") - workingset; ++ metrics->usage_bytes = usage_bytes; ++ metrics->rss_bytes = metrics_match_get_ull(c,cgroup_ops, "memory.stat", "rss", 1); ++ metrics->page_faults = metrics_match_get_ull(c,cgroup_ops, "memory.stat", "pgfault", 1); ++ metrics->major_page_faults = metrics_match_get_ull(c,cgroup_ops, "memory.stat", "pgmajfault", 1); + metrics->cpu_use_user = metrics_match_get_ull(c, cgroup_ops, "cpuacct.stat", "user", 1); + metrics->cpu_use_sys = metrics_match_get_ull(c, cgroup_ops, "cpuacct.stat", "system", 1); + +diff --git a/src/lxc/lxccontainer.h b/src/lxc/lxccontainer.h +index 3680ade..371b313 100644 +--- a/src/lxc/lxccontainer.h ++++ b/src/lxc/lxccontainer.h +@@ -68,6 +68,11 @@ struct lxc_container_metrics { + /* Memory usage */ + uint64_t mem_used; + uint64_t mem_limit; ++ uint64_t avaliable_bytes; ++ uint64_t usage_bytes; ++ uint64_t rss_bytes; ++ uint64_t page_faults; ++ uint64_t major_page_faults; + /* Kernel Memory usage */ + uint64_t kmem_used; + uint64_t kmem_limit; diff --git a/0025-fix-ops-hierarchies-cause-coredump.patch b/0025-fix-ops-hierarchies-cause-coredump.patch new file mode 100644 index 0000000..e162e3b --- /dev/null +++ b/0025-fix-ops-hierarchies-cause-coredump.patch @@ -0,0 +1,32 @@ +From 636f30e34dd33a0b888faa9675fe33fb5aa0ad7a Mon Sep 17 00:00:00 2001 +From: "Neil.wrz" +Date: Tue, 21 Feb 2023 22:48:44 -0800 +Subject: [PATCH] may cause coredump + +--- + src/lxc/cgroups/isulad_cgfsng.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/src/lxc/cgroups/isulad_cgfsng.c b/src/lxc/cgroups/isulad_cgfsng.c +index 6ccff63..dcaa229 100644 +--- a/src/lxc/cgroups/isulad_cgfsng.c ++++ b/src/lxc/cgroups/isulad_cgfsng.c +@@ -938,8 +938,15 @@ __cgfsng_ops static inline bool isulad_cgfsng_payload_create(struct cgroup_ops * + struct lxc_handler *handler) + { + int i; ++ ++ if (!ops) ++ return ret_set_errno(false, ENOENT); ++ + char *container_cgroup = ops->container_cgroup; + ++ if (!ops->hierarchies) ++ return true; ++ + #ifdef HAVE_ISULAD + if (ops->no_controller) { + DEBUG("no controller found, isgnore isulad_cgfsng_payload_create"); +-- +2.25.1 + diff --git a/0026-meminfo-cri-1.25.patch b/0026-meminfo-cri-1.25.patch new file mode 100644 index 0000000..3bf1e95 --- /dev/null +++ b/0026-meminfo-cri-1.25.patch @@ -0,0 +1,41 @@ +diff --git a/src/lxc/lxccontainer.c b/src/lxc/lxccontainer.c +index 4b669bb..387dc8c 100644 +--- a/src/lxc/lxccontainer.c ++++ b/src/lxc/lxccontainer.c +@@ -6052,7 +6052,19 @@ static bool do_lxcapi_get_container_metrics(struct lxc_container *c, struct lxc + + metrics->cpu_use_nanos = metrics_get_ull(c, cgroup_ops, "cpuacct.usage"); + metrics->pids_current = metrics_get_ull(c, cgroup_ops, "pids.current"); +- ++ uint64_t usage_bytes; ++ uint64_t workingset; ++ usage_bytes = metrics_match_get_ull(c,cgroup_ops, "memory.stat", "rss", 1) + ++ metrics_match_get_ull(c, cgroup_ops, "memory.stat", "cache", 1) + ++ metrics_match_get_ull(c, cgroup_ops, "memory.stat", "swap", 1); ++ // workingset = usage - inactive_file ++ workingset = usage_bytes - metrics_match_get_ull(c, cgroup_ops, "memory.stat", "total_inactive_file", 1); ++ // Avaliable bytes = limit - workingset ++ metrics->avaliable_bytes = metrics_get_ull(c, cgroup_ops, "memory.limit_in_bytes") - workingset; ++ metrics->usage_bytes = usage_bytes; ++ metrics->rss_bytes = metrics_match_get_ull(c,cgroup_ops, "memory.stat", "rss", 1); ++ metrics->page_faults = metrics_match_get_ull(c,cgroup_ops, "memory.stat", "pgfault", 1); ++ metrics->major_page_faults = metrics_match_get_ull(c,cgroup_ops, "memory.stat", "pgmajfault", 1); + metrics->cpu_use_user = metrics_match_get_ull(c, cgroup_ops, "cpuacct.stat", "user", 1); + metrics->cpu_use_sys = metrics_match_get_ull(c, cgroup_ops, "cpuacct.stat", "system", 1); + +diff --git a/src/lxc/lxccontainer.h b/src/lxc/lxccontainer.h +index 3680ade..371b313 100644 +--- a/src/lxc/lxccontainer.h ++++ b/src/lxc/lxccontainer.h +@@ -68,6 +68,11 @@ struct lxc_container_metrics { + /* Memory usage */ + uint64_t mem_used; + uint64_t mem_limit; ++ uint64_t avaliable_bytes; ++ uint64_t usage_bytes; ++ uint64_t rss_bytes; ++ uint64_t page_faults; ++ uint64_t major_page_faults; + /* Kernel Memory usage */ + uint64_t kmem_used; + uint64_t kmem_limit; -- Gitee