summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2024-07-25 13:58:04 +0200
committerNatanael Copa <ncopa@alpinelinux.org>2024-07-25 13:58:04 +0200
commit22f419b54ba38f9c6dd917e842729e3e187e7b57 (patch)
treed10a3545f5fe73fa4f2186e0d855924342f844d9
parent6a3067bc1e4508ef38823525081076e41c2a21d6 (diff)
downloadaports-22f419b54ba38f9c6dd917e842729e3e187e7b57.zip
main/lxc: more fixes for lxc-top
- add kernel mem stat - fix typo in IO error message - fix -b to ignore TTY rows
-rw-r--r--main/lxc/APKBUILD4
-rw-r--r--main/lxc/lxc-top-cgroupv2.patch86
2 files changed, 78 insertions, 12 deletions
diff --git a/main/lxc/APKBUILD b/main/lxc/APKBUILD
index 8a6406d1073..a8e9fb28fdd 100644
--- a/main/lxc/APKBUILD
+++ b/main/lxc/APKBUILD
@@ -4,7 +4,7 @@
pkgname=lxc
pkgver=6.0.1
_pkgver=${pkgver/_rc/.rc}
-pkgrel=6
+pkgrel=7
pkgdesc="Userspace interface for the Linux kernel containment features"
url="https://linuxcontainers.org/lxc/"
arch="all"
@@ -177,7 +177,7 @@ _user_nic() {
sha512sums="
7e8b9740178ae46a2ad3ba3f1e509f69f978d0a2a1f7e1938213ae9cb9a80f496d01be64958cad4aa6f01a73f1d8c3759c3e9df9df4f67c77e603ea0809d79c2 lxc-6.0.1.tar.gz
-3619a16604683d5cfa4b9d997cb8435232c016b71d0d7be2a0553d8136fa1914f916ef89d7092d3f51ff2e56714c918fef4e4e42bab89054fc92aec617228bec lxc-top-cgroupv2.patch
+d24a1226f37f575de5d85a850d74fa5a59623e1ec9fc8be30bacf1c874426213be3b6c4aa70a35d7df93fb2a95a573290768b92d0256c09d91fc629c8dc930e8 lxc-top-cgroupv2.patch
43299891779b0c8737b811e16d356e211d797d003af85d97ab969b3d47212e6c33ff5fbd36579534be9e84a2caa3cca8fd39f11a37cc54ec3e2344423e348499 lxc-info-cgroups-v2.patch
db71783366277a68a5c8116604cf845da4780fe4aebdb5820ae2c4fe028cfe52a9c94246db362476f2f195be6a9c2b835edbe521423f116fc66eb50023d6daab lxc.initd
91de43db5369a9e10102933514d674e9c875218a1ff2910dd882e5b9c308f9e430deacb13d1d7e0b2ed1ef682d0bb035aa6f8a6738f54fa2ca3a05acce04e467 lxc.confd
diff --git a/main/lxc/lxc-top-cgroupv2.patch b/main/lxc/lxc-top-cgroupv2.patch
index 5e6098aa9c1..c48ddcac508 100644
--- a/main/lxc/lxc-top-cgroupv2.patch
+++ b/main/lxc/lxc-top-cgroupv2.patch
@@ -1,7 +1,7 @@
From 40857b9de3714b3314f5c22e924d5993c458acbe Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Wed, 24 Jul 2024 15:23:11 +0200
-Subject: [PATCH 1/5] tools: lxc-top: refactor lxc-top stat structs
+Subject: [PATCH 1/7] tools: lxc-top: refactor lxc-top stat structs
Create separate structs for each controller class. This will make it
easier to add cgroupv2 support.
@@ -247,7 +247,7 @@ index aa6e7209e..bcc695b3e 100644
From ec11c2dad1ccf5fd6dd9a57e2812c4551f8a710f Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Wed, 24 Jul 2024 15:47:55 +0200
-Subject: [PATCH 2/5] tools: lxc-top: get memory stats from cgroups2
+Subject: [PATCH 2/7] tools: lxc-top: get memory stats from cgroups2
Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
---
@@ -316,7 +316,7 @@ index bcc695b3e..29d81563f 100644
From df219e84ca11294ba29ff9e85d09f4190942b30c Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Wed, 24 Jul 2024 16:32:30 +0200
-Subject: [PATCH 3/5] lxc-top: CPU stats for cgroups2
+Subject: [PATCH 3/7] lxc-top: CPU stats for cgroups2
Recalculate the usec to nanoseconds and USER_HZ
@@ -382,7 +382,7 @@ index 29d81563f..3a6c49e82 100644
From 094f05141db5968f8e3a855e4230579b12721a65 Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Wed, 24 Jul 2024 16:54:00 +0200
-Subject: [PATCH 4/5] tools: lxc-top: get the user HZ at runtime
+Subject: [PATCH 4/7] tools: lxc-top: get the user HZ at runtime
The USER_HZ depends on the kernel configuration. Get it run-time instead
of assume it is 100 HZ.
@@ -450,10 +450,10 @@ index 3a6c49e82..deea1b41d 100644
2.45.2
-From cf8f1e067f9be356f9879566ddfa31333929af22 Mon Sep 17 00:00:00 2001
+From ebf0bbb3585330bf80bdd01aa7597672cca07aba Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Wed, 24 Jul 2024 17:29:10 +0200
-Subject: [PATCH 5/5] tools: lxc-top: add cgroups2 IO stats
+Subject: [PATCH 5/7] tools: lxc-top: add cgroups2 IO stats
Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
---
@@ -461,7 +461,7 @@ Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
1 file changed, 53 insertions(+), 7 deletions(-)
diff --git a/src/lxc/tools/lxc_top.c b/src/lxc/tools/lxc_top.c
-index deea1b41d..6cc54988d 100644
+index deea1b41d..15cf75a9a 100644
--- a/src/lxc/tools/lxc_top.c
+++ b/src/lxc/tools/lxc_top.c
@@ -281,21 +281,21 @@ examples:
@@ -506,7 +506,7 @@ index deea1b41d..6cc54988d 100644
+ int i, j, len;
+ char **lines, **cols;
+ int ret = -1;
-+
+
+ len = c->get_cgroup_item(c, item, buf, sizeof(buf));
+ if (len <= 0 || (size_t)len >= sizeof(buf)) {
+ return ret;
@@ -522,7 +522,7 @@ index deea1b41d..6cc54988d 100644
+ cols = lxc_string_split_and_trim(lines[i], ' ');
+ if (!cols)
+ goto out;
-
++
+ for (j = 0; cols[j]; j++) {
+ if (strncmp(cols[j], "rbytes=", 7) == 0) {
+ stats->read += strtoull(&cols[j][7], NULL, 0);
@@ -550,7 +550,7 @@ index deea1b41d..6cc54988d 100644
- stat_get_blk_stats(c, "blkio.throttle.io_serviced", &ct->stats->io_serviced);
+ if (cg1_get_blk_stats(c, "blkio.throttle.io_service_bytes", &ct->stats->io_service_bytes) < 0) {
+ if (cg2_get_blk_stats(c, "io.stat", &ct->stats->io_service_bytes) < 0) {
-+ fprintf(stderr, "Unable to read CPU stats\n");
++ fprintf(stderr, "Unable to read IO stats\n");
+ }
+ } else {
+ /* only with cgroups v1 */
@@ -562,3 +562,69 @@ index deea1b41d..6cc54988d 100644
--
2.45.2
+
+From 54e8ff395303f0d121cdb603a0ea5c01dd134dc3 Mon Sep 17 00:00:00 2001
+From: Devon Schwartz <devon.s.schwartz@gmail.com>
+Date: Wed, 24 Jul 2024 22:17:32 -0500
+Subject: [PATCH 6/7] lxc-top: added kernel memory usage for cgroup2
+
+---
+ src/lxc/tools/lxc_top.c | 13 ++++++-------
+ 1 file changed, 6 insertions(+), 7 deletions(-)
+
+diff --git a/src/lxc/tools/lxc_top.c b/src/lxc/tools/lxc_top.c
+index 15cf75a9a..6cb38bb90 100644
+--- a/src/lxc/tools/lxc_top.c
++++ b/src/lxc/tools/lxc_top.c
+@@ -373,14 +373,13 @@ static int cg1_mem_stats(struct lxc_container *c, struct mem_stats *mem)
+
+ static int cg2_mem_stats(struct lxc_container *c, struct mem_stats *mem)
+ {
+- mem->used = stat_get_int(c, "memory.current");
+- mem->limit = stat_get_int(c, "memory.max");
+- mem->swap_used = stat_get_int(c, "memory.swap.current");
+- mem->swap_limit = stat_get_int(c, "memory.swap.max");
+- /* TODO: find the kernel usage */
+- mem->kmem_used = 0;
++ mem->used = stat_get_int(c, "memory.current");
++ mem->limit = stat_get_int(c, "memory.max");
++ mem->swap_used = stat_get_int(c, "memory.swap.current");
++ mem->swap_limit = stat_get_int(c, "memory.swap.max");
++ mem->kmem_used = stat_match_get_int(c, "memory.stat", "kernel", 1);
+ /* does not exist in cgroup v2 */
+- mem->kmem_limit = 0;
++ // mem->kmem_limit = 0;
+ return mem->used > 0 ? 0 : -1;
+ }
+
+--
+2.45.2
+
+
+From 9a7c15337202a00ae7d0a87906b3529f3ab9b84b Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Thu, 25 Jul 2024 13:52:27 +0200
+Subject: [PATCH 7/7] tools: lxc-top: fix print in batch mode
+
+We should not care about the number of rows when printing stats in batch
+mode.
+---
+ src/lxc/tools/lxc_top.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/lxc/tools/lxc_top.c b/src/lxc/tools/lxc_top.c
+index 6cb38bb90..7498331ee 100644
+--- a/src/lxc/tools/lxc_top.c
++++ b/src/lxc/tools/lxc_top.c
+@@ -732,7 +732,7 @@ int lxc_top_main(int argc, char *argv[])
+ stats_print_header(&total);
+ }
+
+- for (i = 0; i < active_cnt && i < ct_print_cnt; i++) {
++ for (i = 0; i < active_cnt && (i < ct_print_cnt || batch); i++) {
+ stats_print(container_stats[i].c->name, container_stats[i].stats, &total);
+ printf("\n");
+ }
+--
+2.45.2
+