!67 upgrade to 5.0.4
From: @vegbir Reviewed-by: @zhangsong234, @jingwoo Signed-off-by: @jingwoo
This commit is contained in:
commit
065619baf9
@ -1,7 +1,7 @@
|
|||||||
From 04c55841409a238f8b12c15395006c5793b4a508 Mon Sep 17 00:00:00 2001
|
From c0a2baa7e79ef6d7a0060611b4244c4946c246b8 Mon Sep 17 00:00:00 2001
|
||||||
From: vegbir <yangjiaqi16@huawei.com>
|
From: vegbir <yangjiaqi16@huawei.com>
|
||||||
Date: Tue, 11 Jul 2023 08:41:53 +0000
|
Date: Tue, 11 Jul 2023 08:41:53 +0000
|
||||||
Subject: [PATCH 01/16] systemd
|
Subject: [PATCH 01/15] systemd
|
||||||
|
|
||||||
append:remove-lxcfs-tools-dependency-for-common-use
|
append:remove-lxcfs-tools-dependency-for-common-use
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
From a6346a7a51385ee588a624775a91ce7ac3fb4dd3 Mon Sep 17 00:00:00 2001
|
From 79d335011ffccfee542ee5068fda6257a9ac1e59 Mon Sep 17 00:00:00 2001
|
||||||
From: vegbir <yangjiaqi16@huawei.com>
|
From: vegbir <yangjiaqi16@huawei.com>
|
||||||
Date: Tue, 11 Jul 2023 09:18:09 +0000
|
Date: Thu, 27 Jul 2023 06:40:47 +0000
|
||||||
Subject: [PATCH 02/16] show dev name in container
|
Subject: [PATCH 02/15] show dev name in container
|
||||||
|
|
||||||
append: fix hang
|
append: fix hang
|
||||||
append: limit-stat-by-quota-period-setting
|
append: limit-stat-by-quota-period-setting
|
||||||
@ -16,7 +16,7 @@ Signed-off-by: vegbir <yangjiaqi16@huawei.com>
|
|||||||
1 file changed, 181 insertions(+), 2 deletions(-)
|
1 file changed, 181 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/src/proc_fuse.c b/src/proc_fuse.c
|
diff --git a/src/proc_fuse.c b/src/proc_fuse.c
|
||||||
index 23e0b43..4503373 100644
|
index 25af10a..cde48ca 100644
|
||||||
--- a/src/proc_fuse.c
|
--- a/src/proc_fuse.c
|
||||||
+++ b/src/proc_fuse.c
|
+++ b/src/proc_fuse.c
|
||||||
@@ -28,6 +28,7 @@
|
@@ -28,6 +28,7 @@
|
||||||
@ -78,7 +78,7 @@ index 23e0b43..4503373 100644
|
|||||||
+ struct dirent *ptr;
|
+ struct dirent *ptr;
|
||||||
+ struct stat dev_stat;
|
+ struct stat dev_stat;
|
||||||
+ struct devinfo *head = NULL, *end;
|
+ struct devinfo *head = NULL, *end;
|
||||||
+ char fpath[261], dev_name[256];
|
+ char fpath[261], dev_name[101];
|
||||||
+ pid_t child_pid;
|
+ pid_t child_pid;
|
||||||
+ int mypipe[2];
|
+ int mypipe[2];
|
||||||
+ int dev_num;
|
+ int dev_num;
|
||||||
@ -156,7 +156,7 @@ index 23e0b43..4503373 100644
|
|||||||
+ wait_for_pid(child_pid);
|
+ wait_for_pid(child_pid);
|
||||||
+ child_pid = 0;
|
+ child_pid = 0;
|
||||||
+ memset(dev_name, 0, sizeof(dev_name));
|
+ memset(dev_name, 0, sizeof(dev_name));
|
||||||
+ while (fscanf(stream, "%255s%d", dev_name, &dev_num) == 2) {
|
+ while (fscanf(stream, "%100s%d", dev_name, &dev_num) == 2) {
|
||||||
+ if (dev_num == 0) {
|
+ if (dev_num == 0) {
|
||||||
+ break;
|
+ break;
|
||||||
+ }
|
+ }
|
||||||
@ -236,8 +236,8 @@ index 23e0b43..4503373 100644
|
|||||||
get_blkio_io_value(io_serviced_str, stats.major, stats.minor, "Read", &stats.read);
|
get_blkio_io_value(io_serviced_str, stats.major, stats.minor, "Read", &stats.read);
|
||||||
get_blkio_io_value(io_serviced_str, stats.major, stats.minor, "Write", &stats.write);
|
get_blkio_io_value(io_serviced_str, stats.major, stats.minor, "Write", &stats.write);
|
||||||
get_blkio_io_value(io_serviced_str, stats.major, stats.minor, "Discard", &stats.discard);
|
get_blkio_io_value(io_serviced_str, stats.major, stats.minor, "Discard", &stats.discard);
|
||||||
@@ -664,10 +838,14 @@ static int proc_diskstats_read(char *buf, size_t size, off_t offset,
|
@@ -672,10 +846,14 @@ static int proc_diskstats_read(char *buf, size_t size, off_t offset,
|
||||||
continue;
|
}
|
||||||
|
|
||||||
l = snprintf(cache, cache_size, "%s", lbuf);
|
l = snprintf(cache, cache_size, "%s", lbuf);
|
||||||
- if (l < 0)
|
- if (l < 0)
|
||||||
@ -253,7 +253,7 @@ index 23e0b43..4503373 100644
|
|||||||
|
|
||||||
cache += l;
|
cache += l;
|
||||||
cache_size -= l;
|
cache_size -= l;
|
||||||
@@ -679,6 +857,7 @@ static int proc_diskstats_read(char *buf, size_t size, off_t offset,
|
@@ -687,6 +865,7 @@ static int proc_diskstats_read(char *buf, size_t size, off_t offset,
|
||||||
if (total_len > size)
|
if (total_len > size)
|
||||||
total_len = size;
|
total_len = size;
|
||||||
memcpy(buf, d->buf, total_len);
|
memcpy(buf, d->buf, total_len);
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
From 2a7730cfc9d7ca747b6ff4c99a1fc6508f667b27 Mon Sep 17 00:00:00 2001
|
From 735d69c8696b5ddc8090ad7906f07fe2fe5f9992 Mon Sep 17 00:00:00 2001
|
||||||
From: vegbir <yangjiaqi16@huawei.com>
|
From: vegbir <yangjiaqi16@huawei.com>
|
||||||
Date: Tue, 11 Jul 2023 09:26:08 +0000
|
Date: Thu, 27 Jul 2023 07:00:28 +0000
|
||||||
Subject: [PATCH 03/16] lxcfs fix cpuinfo print
|
Subject: [PATCH 03/15] lxcfs fix cpuinfo print
|
||||||
|
|
||||||
Signed-off-by: vegbir <yangjiaqi16@huawei.com>
|
Signed-off-by: vegbir <yangjiaqi16@huawei.com>
|
||||||
---
|
---
|
||||||
@ -9,10 +9,10 @@ Signed-off-by: vegbir <yangjiaqi16@huawei.com>
|
|||||||
1 file changed, 11 insertions(+), 1 deletion(-)
|
1 file changed, 11 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/src/proc_cpuview.c b/src/proc_cpuview.c
|
diff --git a/src/proc_cpuview.c b/src/proc_cpuview.c
|
||||||
index 89f3666..0cf37eb 100644
|
index f5464de..76f8089 100644
|
||||||
--- a/src/proc_cpuview.c
|
--- a/src/proc_cpuview.c
|
||||||
+++ b/src/proc_cpuview.c
|
+++ b/src/proc_cpuview.c
|
||||||
@@ -1048,7 +1048,17 @@ int proc_cpuinfo_read(char *buf, size_t size, off_t offset,
|
@@ -1051,7 +1051,17 @@ int proc_cpuinfo_read(char *buf, size_t size, off_t offset,
|
||||||
|
|
||||||
}
|
}
|
||||||
if (am_printing) {
|
if (am_printing) {
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
From b2c83183e7ace5049bab265ec3084335165ff570 Mon Sep 17 00:00:00 2001
|
From 611a0dec7317fa0441a5923a8e825e804060c998 Mon Sep 17 00:00:00 2001
|
||||||
From: vegbir <yangjiaqi16@huawei.com>
|
From: vegbir <yangjiaqi16@huawei.com>
|
||||||
Date: Wed, 12 Jul 2023 07:07:16 +0000
|
Date: Thu, 27 Jul 2023 07:07:55 +0000
|
||||||
Subject: [PATCH 04/16] fix memory leak
|
Subject: [PATCH 04/15] fix memory leak
|
||||||
|
|
||||||
Signed-off-by: vegbir <yangjiaqi16@huawei.com>
|
Signed-off-by: vegbir <yangjiaqi16@huawei.com>
|
||||||
---
|
---
|
||||||
@ -9,7 +9,7 @@ Signed-off-by: vegbir <yangjiaqi16@huawei.com>
|
|||||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/src/proc_fuse.c b/src/proc_fuse.c
|
diff --git a/src/proc_fuse.c b/src/proc_fuse.c
|
||||||
index 4503373..c615e8e 100644
|
index cde48ca..ed70ea7 100644
|
||||||
--- a/src/proc_fuse.c
|
--- a/src/proc_fuse.c
|
||||||
+++ b/src/proc_fuse.c
|
+++ b/src/proc_fuse.c
|
||||||
@@ -304,6 +304,8 @@ static uint64_t get_min_memlimit(const char *cgroup, bool swap)
|
@@ -304,6 +304,8 @@ static uint64_t get_min_memlimit(const char *cgroup, bool swap)
|
||||||
@ -30,7 +30,7 @@ index 4503373..c615e8e 100644
|
|||||||
|
|
||||||
ret = cgroup_ops->get_memory_current(cgroup_ops, cgroup, &memusage_str);
|
ret = cgroup_ops->get_memory_current(cgroup_ops, cgroup, &memusage_str);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
@@ -1442,6 +1446,8 @@ static int proc_meminfo_read(char *buf, size_t size, off_t offset,
|
@@ -1453,6 +1457,8 @@ static int proc_meminfo_read(char *buf, size_t size, off_t offset,
|
||||||
return read_file_fuse("/proc/meminfo", buf, size, d);
|
return read_file_fuse("/proc/meminfo", buf, size, d);
|
||||||
|
|
||||||
memlimit = get_min_memlimit(cgroup, false);
|
memlimit = get_min_memlimit(cgroup, false);
|
||||||
@ -39,7 +39,7 @@ index 4503373..c615e8e 100644
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Following values are allowed to fail, because swapaccount might be
|
* Following values are allowed to fail, because swapaccount might be
|
||||||
@@ -1456,9 +1462,9 @@ static int proc_meminfo_read(char *buf, size_t size, off_t offset,
|
@@ -1467,9 +1473,9 @@ static int proc_meminfo_read(char *buf, size_t size, off_t offset,
|
||||||
|
|
||||||
memusage /= 1024;
|
memusage /= 1024;
|
||||||
memlimit /= 1024;
|
memlimit /= 1024;
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
From fb10b60dd72ba36752978c0740b66b572ded4feb Mon Sep 17 00:00:00 2001
|
From a7f9759ef8ce354ab2ad420d4a8c5b4260d491fc Mon Sep 17 00:00:00 2001
|
||||||
From: vegbir <yangjiaqi16@huawei.com>
|
From: vegbir <yangjiaqi16@huawei.com>
|
||||||
Date: Wed, 12 Jul 2023 07:19:20 +0000
|
Date: Thu, 27 Jul 2023 07:24:18 +0000
|
||||||
Subject: [PATCH 05/16] fix concurrency problem
|
Subject: [PATCH 05/15] fix concurrency problem
|
||||||
|
|
||||||
Signed-off-by: vegbir <yangjiaqi16@huawei.com>
|
Signed-off-by: vegbir <yangjiaqi16@huawei.com>
|
||||||
---
|
---
|
||||||
@ -81,10 +81,10 @@ index f431686..d4c8598 100644
|
|||||||
extern char *readat_file(int fd, const char *path);
|
extern char *readat_file(int fd, const char *path);
|
||||||
extern char *read_file_strip_newline(const char *fnam);
|
extern char *read_file_strip_newline(const char *fnam);
|
||||||
diff --git a/src/proc_fuse.c b/src/proc_fuse.c
|
diff --git a/src/proc_fuse.c b/src/proc_fuse.c
|
||||||
index c615e8e..80db328 100644
|
index ed70ea7..0af559f 100644
|
||||||
--- a/src/proc_fuse.c
|
--- a/src/proc_fuse.c
|
||||||
+++ b/src/proc_fuse.c
|
+++ b/src/proc_fuse.c
|
||||||
@@ -1736,6 +1736,9 @@ __lxcfs_fuse_ops int proc_read(const char *path, char *buf, size_t size,
|
@@ -1747,6 +1747,9 @@ __lxcfs_fuse_ops int proc_read(const char *path, char *buf, size_t size,
|
||||||
{
|
{
|
||||||
struct file_info *f = INTTYPE_TO_PTR(fi->fh);
|
struct file_info *f = INTTYPE_TO_PTR(fi->fh);
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
From 615f5343cd8180308fa4b1a42faf17686c9f7651 Mon Sep 17 00:00:00 2001
|
From 6a744fd9ba541e535e611f066c4038330605fe2b Mon Sep 17 00:00:00 2001
|
||||||
From: vegbir <yangjiaqi16@huawei.com>
|
From: vegbir <yangjiaqi16@huawei.com>
|
||||||
Date: Wed, 12 Jul 2023 07:48:40 +0000
|
Date: Wed, 12 Jul 2023 07:48:40 +0000
|
||||||
Subject: [PATCH 06/16] set null after free
|
Subject: [PATCH 06/15] set null after free
|
||||||
|
|
||||||
Signed-off-by: vegbir <yangjiaqi16@huawei.com>
|
Signed-off-by: vegbir <yangjiaqi16@huawei.com>
|
||||||
---
|
---
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
From ded1a411d27dde558cc3d057cd65909e9cba1974 Mon Sep 17 00:00:00 2001
|
From a6e4ec48f7ad6e64eb95bcd46e8656f1cef95cfd Mon Sep 17 00:00:00 2001
|
||||||
From: vegbir <yangjiaqi16@huawei.com>
|
From: vegbir <yangjiaqi16@huawei.com>
|
||||||
Date: Wed, 12 Jul 2023 08:25:20 +0000
|
Date: Wed, 12 Jul 2023 08:25:20 +0000
|
||||||
Subject: [PATCH 07/16] limit stat by quota period setting
|
Subject: [PATCH 07/15] limit stat by quota period setting
|
||||||
|
|
||||||
Signed-off-by: vegbir <yangjiaqi16@huawei.com>
|
Signed-off-by: vegbir <yangjiaqi16@huawei.com>
|
||||||
---
|
---
|
||||||
@ -9,10 +9,10 @@ Signed-off-by: vegbir <yangjiaqi16@huawei.com>
|
|||||||
1 file changed, 12 insertions(+)
|
1 file changed, 12 insertions(+)
|
||||||
|
|
||||||
diff --git a/src/proc_fuse.c b/src/proc_fuse.c
|
diff --git a/src/proc_fuse.c b/src/proc_fuse.c
|
||||||
index 80db328..dfcd72c 100644
|
index 0af559f..e69e867 100644
|
||||||
--- a/src/proc_fuse.c
|
--- a/src/proc_fuse.c
|
||||||
+++ b/src/proc_fuse.c
|
+++ b/src/proc_fuse.c
|
||||||
@@ -1079,6 +1079,8 @@ static int proc_stat_read(char *buf, size_t size, off_t offset,
|
@@ -1087,6 +1087,8 @@ static int proc_stat_read(char *buf, size_t size, off_t offset,
|
||||||
size_t linelen = 0, total_len = 0;
|
size_t linelen = 0, total_len = 0;
|
||||||
int curcpu = -1; /* cpu numbering starts at 0 */
|
int curcpu = -1; /* cpu numbering starts at 0 */
|
||||||
int physcpu = 0;
|
int physcpu = 0;
|
||||||
@ -21,7 +21,7 @@ index 80db328..dfcd72c 100644
|
|||||||
uint64_t user = 0, nice = 0, system = 0, idle = 0, iowait = 0, irq = 0,
|
uint64_t user = 0, nice = 0, system = 0, idle = 0, iowait = 0, irq = 0,
|
||||||
softirq = 0, steal = 0, guest = 0, guest_nice = 0;
|
softirq = 0, steal = 0, guest = 0, guest_nice = 0;
|
||||||
uint64_t user_sum = 0, nice_sum = 0, system_sum = 0, idle_sum = 0,
|
uint64_t user_sum = 0, nice_sum = 0, system_sum = 0, idle_sum = 0,
|
||||||
@@ -1127,6 +1129,13 @@ static int proc_stat_read(char *buf, size_t size, off_t offset,
|
@@ -1138,6 +1140,13 @@ static int proc_stat_read(char *buf, size_t size, off_t offset,
|
||||||
if (!cpuset)
|
if (!cpuset)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
@ -30,12 +30,12 @@ index 80db328..dfcd72c 100644
|
|||||||
+ else
|
+ else
|
||||||
+ use_view = false;
|
+ use_view = false;
|
||||||
+ if (use_view)
|
+ if (use_view)
|
||||||
+ max_cpus = max_cpu_count(cg);
|
+ max_cpus = max_cpu_count(cg, cpu_cg);
|
||||||
+
|
+
|
||||||
f = fopen_cached("/proc/stat", "re", &fopen_cache);
|
f = fopen_cached("/proc/stat", "re", &fopen_cache);
|
||||||
if (!f)
|
if (!f)
|
||||||
return 0;
|
return 0;
|
||||||
@@ -1175,6 +1184,9 @@ static int proc_stat_read(char *buf, size_t size, off_t offset,
|
@@ -1186,6 +1195,9 @@ static int proc_stat_read(char *buf, size_t size, off_t offset,
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,15 +1,15 @@
|
|||||||
From 21c359672300c687ad9b1f28c4c1be4ca00f590a Mon Sep 17 00:00:00 2001
|
From 0dded445efa7b53886081beab5b74facf0378287 Mon Sep 17 00:00:00 2001
|
||||||
From: vegbir <yangjiaqi16@huawei.com>
|
From: vegbir <yangjiaqi16@huawei.com>
|
||||||
Date: Wed, 12 Jul 2023 08:31:21 +0000
|
Date: Thu, 27 Jul 2023 08:15:49 +0000
|
||||||
Subject: [PATCH 08/16] diskstats support devicemapper device
|
Subject: [PATCH 08/15] diskstats support devicemapper device
|
||||||
|
|
||||||
Signed-off-by: vegbir <yangjiaqi16@huawei.com>
|
Signed-off-by: vegbir <yangjiaqi16@huawei.com>
|
||||||
---
|
---
|
||||||
src/proc_fuse.c | 99 ++++++++++++++++++++++++++++++++++++++-----------
|
src/proc_fuse.c | 133 ++++++++++++++++++++++++++++++++++++++++++------
|
||||||
1 file changed, 77 insertions(+), 22 deletions(-)
|
1 file changed, 117 insertions(+), 16 deletions(-)
|
||||||
|
|
||||||
diff --git a/src/proc_fuse.c b/src/proc_fuse.c
|
diff --git a/src/proc_fuse.c b/src/proc_fuse.c
|
||||||
index dfcd72c..f68212d 100644
|
index e69e867..1f732ff 100644
|
||||||
--- a/src/proc_fuse.c
|
--- a/src/proc_fuse.c
|
||||||
+++ b/src/proc_fuse.c
|
+++ b/src/proc_fuse.c
|
||||||
@@ -638,6 +638,15 @@ void free_devinfo_list(struct devinfo *ptr)
|
@@ -638,6 +638,15 @@ void free_devinfo_list(struct devinfo *ptr)
|
||||||
@ -59,15 +59,99 @@ index dfcd72c..f68212d 100644
|
|||||||
get_blkio_io_value(io_serviced_str, stats.major, stats.minor, "Read", &stats.read);
|
get_blkio_io_value(io_serviced_str, stats.major, stats.minor, "Read", &stats.read);
|
||||||
get_blkio_io_value(io_serviced_str, stats.major, stats.minor, "Write", &stats.write);
|
get_blkio_io_value(io_serviced_str, stats.major, stats.minor, "Write", &stats.write);
|
||||||
get_blkio_io_value(io_serviced_str, stats.major, stats.minor, "Discard", &stats.discard);
|
get_blkio_io_value(io_serviced_str, stats.major, stats.minor, "Discard", &stats.discard);
|
||||||
@@ -800,27 +816,28 @@ static int proc_diskstats_read(char *buf, size_t size, off_t offset,
|
@@ -801,26 +817,111 @@ static int proc_diskstats_read(char *buf, size_t size, off_t offset,
|
||||||
if (stats.read || stats.write || stats.read_merged || stats.write_merged ||
|
|
||||||
stats.read_sectors || stats.write_sectors || stats.read_ticks ||
|
stats.read_sectors || stats.write_sectors || stats.read_ticks ||
|
||||||
stats.write_ticks || stats.ios_pgr || stats.total_ticks || stats.rq_ticks ||
|
stats.write_ticks || stats.ios_pgr || stats.total_ticks || stats.rq_ticks || stats.discard ||
|
||||||
- stats.discard_merged || stats.discard_sectors || stats.discard_ticks)
|
stats.discard_merged || stats.discard_sectors || stats.discard_ticks) {
|
||||||
- snprintf(
|
+ if (need_record_diskstats(stats.major, stats.minor)) {
|
||||||
- lbuf,
|
+ sscanf(line, "%u %u %71s %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu\n",
|
||||||
- 256,
|
+ &stats.major,
|
||||||
- "%u %u" /* major, minor */
|
+ &stats.minor,
|
||||||
|
+ tmp_dev_name,
|
||||||
|
+ &stats.read,
|
||||||
|
+ &stats.read_merged,
|
||||||
|
+ &stats.read_sectors,
|
||||||
|
+ &stats.read_ticks,
|
||||||
|
+ &stats.write,
|
||||||
|
+ &stats.write_merged,
|
||||||
|
+ &stats.write_sectors,
|
||||||
|
+ &stats.write_ticks,
|
||||||
|
+ &stats.ios_pgr,
|
||||||
|
+ &stats.total_ticks,
|
||||||
|
+ &stats.rq_ticks,
|
||||||
|
+ &stats.discard,
|
||||||
|
+ &stats.discard_merged,
|
||||||
|
+ &stats.discard_sectors,
|
||||||
|
+ &stats.discard_ticks);
|
||||||
|
+ }
|
||||||
|
+ ret = strnprintf(
|
||||||
|
+ lbuf,
|
||||||
|
+ sizeof(lbuf),
|
||||||
|
+ "%u %u" /* major, minor */
|
||||||
|
+ " %s" /* dev_name */
|
||||||
|
+ " %" PRIu64 /* read */
|
||||||
|
+ " %" PRIu64 /* read_merged */
|
||||||
|
+ " %" PRIu64 /* read_sectors */
|
||||||
|
+ " %" PRIu64 /* read_ticks */
|
||||||
|
+ " %" PRIu64 /* write */
|
||||||
|
+ " %" PRIu64 /* write_merged */
|
||||||
|
+ " %" PRIu64 /* write_sectors */
|
||||||
|
+ " %" PRIu64 /* write_ticks */
|
||||||
|
+ " %" PRIu64 /* ios_pgr */
|
||||||
|
+ " %" PRIu64 /* total_ticks */
|
||||||
|
+ " %" PRIu64 /* rq_ticks */
|
||||||
|
+ " %" PRIu64 /* discard */
|
||||||
|
+ " %" PRIu64 /* discard_merged */
|
||||||
|
+ " %" PRIu64 /* discard_sectors */
|
||||||
|
+ " %" PRIu64 /* discard_ticks */
|
||||||
|
+ "\n",
|
||||||
|
+ stats.major,
|
||||||
|
+ stats.minor,
|
||||||
|
+ stats.dev_name,
|
||||||
|
+ stats.read,
|
||||||
|
+ stats.read_merged,
|
||||||
|
+ stats.read_sectors,
|
||||||
|
+ stats.read_ticks,
|
||||||
|
+ stats.write,
|
||||||
|
+ stats.write_merged,
|
||||||
|
+ stats.write_sectors,
|
||||||
|
+ stats.write_ticks,
|
||||||
|
+ stats.ios_pgr,
|
||||||
|
+ stats.total_ticks,
|
||||||
|
+ stats.rq_ticks,
|
||||||
|
+ stats.discard,
|
||||||
|
+ stats.discard_merged,
|
||||||
|
+ stats.discard_sectors,
|
||||||
|
+ stats.discard_ticks);
|
||||||
|
+ if (ret < 0) {
|
||||||
|
+ lxcfs_error("Insufficient buffer for %u:%u %s diskstats",
|
||||||
|
+ stats.major, stats.minor, stats.dev_name);
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
+ } else if (need_record_diskstats(stats.major, stats.minor)) {
|
||||||
|
+ sscanf(line, "%u %u %71s %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu\n",
|
||||||
|
+ &stats.major,
|
||||||
|
+ &stats.minor,
|
||||||
|
+ tmp_dev_name,
|
||||||
|
+ &stats.read,
|
||||||
|
+ &stats.read_merged,
|
||||||
|
+ &stats.read_sectors,
|
||||||
|
+ &stats.read_ticks,
|
||||||
|
+ &stats.write,
|
||||||
|
+ &stats.write_merged,
|
||||||
|
+ &stats.write_sectors,
|
||||||
|
+ &stats.write_ticks,
|
||||||
|
+ &stats.ios_pgr,
|
||||||
|
+ &stats.total_ticks,
|
||||||
|
+ &stats.rq_ticks,
|
||||||
|
+ &stats.discard,
|
||||||
|
+ &stats.discard_merged,
|
||||||
|
+ &stats.discard_sectors,
|
||||||
|
+ &stats.discard_ticks);
|
||||||
|
ret = strnprintf(
|
||||||
|
lbuf,
|
||||||
|
sizeof(lbuf),
|
||||||
|
"%u %u" /* major, minor */
|
||||||
- " %s" /* dev_name */
|
- " %s" /* dev_name */
|
||||||
- " %" PRIu64 /* read */
|
- " %" PRIu64 /* read */
|
||||||
- " %" PRIu64 /* read_merged */
|
- " %" PRIu64 /* read_merged */
|
||||||
@ -80,83 +164,29 @@ index dfcd72c..f68212d 100644
|
|||||||
- " %" PRIu64 /* ios_pgr */
|
- " %" PRIu64 /* ios_pgr */
|
||||||
- " %" PRIu64 /* total_ticks */
|
- " %" PRIu64 /* total_ticks */
|
||||||
- " %" PRIu64 /* rq_ticks */
|
- " %" PRIu64 /* rq_ticks */
|
||||||
|
- " %" PRIu64 /* discard */
|
||||||
- " %" PRIu64 /* discard_merged */
|
- " %" PRIu64 /* discard_merged */
|
||||||
- " %" PRIu64 /* discard_sectors */
|
- " %" PRIu64 /* discard_sectors */
|
||||||
- " %" PRIu64 /* discard_ticks */
|
- " %" PRIu64 /* discard_ticks */
|
||||||
- "\n",
|
+ " %s" /* dev_name */
|
||||||
+ stats.discard_merged || stats.discard_sectors || stats.discard_ticks) {
|
+ " %" PRIu64 /* read */
|
||||||
+ if (need_record_diskstats(stats.major, stats.minor)) {
|
+ " %" PRIu64 /* read_merged */
|
||||||
+ sscanf(line, "%u %u %71s %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu\n",
|
+ " %" PRIu64 /* read_sectors */
|
||||||
+ &stats.major,
|
+ " %" PRIu64 /* read_ticks */
|
||||||
+ &stats.minor,
|
+ " %" PRIu64 /* write */
|
||||||
+ tmp_dev_name,
|
+ " %" PRIu64 /* write_merged */
|
||||||
+ &stats.read,
|
+ " %" PRIu64 /* write_sectors */
|
||||||
+ &stats.read_merged,
|
+ " %" PRIu64 /* write_ticks */
|
||||||
+ &stats.read_sectors,
|
+ " %" PRIu64 /* ios_pgr */
|
||||||
+ &stats.read_ticks,
|
+ " %" PRIu64 /* total_ticks */
|
||||||
+ &stats.write,
|
+ " %" PRIu64 /* rq_ticks */
|
||||||
+ &stats.write_merged,
|
+ " %" PRIu64 /* discard */
|
||||||
+ &stats.write_sectors,
|
+ " %" PRIu64 /* discard_merged */
|
||||||
+ &stats.write_ticks,
|
+ " %" PRIu64 /* discard_sectors */
|
||||||
+ &stats.ios_pgr,
|
+ " %" PRIu64 /* discard_ticks */
|
||||||
+ &stats.total_ticks,
|
"\n",
|
||||||
+ &stats.rq_ticks,
|
|
||||||
+ &stats.discard_merged,
|
|
||||||
+ &stats.discard_sectors,
|
|
||||||
+ &stats.discard_ticks);
|
|
||||||
+ }
|
|
||||||
+ snprintf(lbuf, 256, "%u %u %s %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu\n",
|
|
||||||
stats.major,
|
stats.major,
|
||||||
stats.minor,
|
stats.minor,
|
||||||
stats.dev_name,
|
|
||||||
@@ -838,8 +855,46 @@ static int proc_diskstats_read(char *buf, size_t size, off_t offset,
|
|
||||||
stats.discard_merged,
|
|
||||||
stats.discard_sectors,
|
|
||||||
stats.discard_ticks);
|
|
||||||
- else
|
|
||||||
+ } else if (need_record_diskstats(stats.major, stats.minor)) {
|
|
||||||
+ sscanf(line, "%u %u %71s %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu\n",
|
|
||||||
+ &stats.major,
|
|
||||||
+ &stats.minor,
|
|
||||||
+ tmp_dev_name,
|
|
||||||
+ &stats.read,
|
|
||||||
+ &stats.read_merged,
|
|
||||||
+ &stats.read_sectors,
|
|
||||||
+ &stats.read_ticks,
|
|
||||||
+ &stats.write,
|
|
||||||
+ &stats.write_merged,
|
|
||||||
+ &stats.write_sectors,
|
|
||||||
+ &stats.write_ticks,
|
|
||||||
+ &stats.ios_pgr,
|
|
||||||
+ &stats.total_ticks,
|
|
||||||
+ &stats.rq_ticks,
|
|
||||||
+ &stats.discard_merged,
|
|
||||||
+ &stats.discard_sectors,
|
|
||||||
+ &stats.discard_ticks);
|
|
||||||
+ snprintf(lbuf, 256, "%u %u %s %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu\n",
|
|
||||||
+ stats.major,
|
|
||||||
+ stats.minor,
|
|
||||||
+ stats.dev_name,
|
|
||||||
+ stats.read,
|
|
||||||
+ stats.read_merged,
|
|
||||||
+ stats.read_sectors,
|
|
||||||
+ stats.read_ticks,
|
|
||||||
+ stats.write,
|
|
||||||
+ stats.write_merged,
|
|
||||||
+ stats.write_sectors,
|
|
||||||
+ stats.write_ticks,
|
|
||||||
+ stats.ios_pgr,
|
|
||||||
+ stats.total_ticks,
|
|
||||||
+ stats.rq_ticks,
|
|
||||||
+ stats.discard_merged,
|
|
||||||
+ stats.discard_sectors,
|
|
||||||
+ stats.discard_ticks);
|
|
||||||
+ } else {
|
|
||||||
continue;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
l = snprintf(cache, cache_size, "%s", lbuf);
|
|
||||||
if (l < 0) {
|
|
||||||
--
|
--
|
||||||
2.41.0
|
2.41.0
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
From 60b82439ccb656ffe79c6499d251627404fd388c Mon Sep 17 00:00:00 2001
|
From f230a8816877cc803d52661a444cb6d1b9d55f96 Mon Sep 17 00:00:00 2001
|
||||||
From: vegbir <yangjiaqi16@huawei.com>
|
From: vegbir <yangjiaqi16@huawei.com>
|
||||||
Date: Wed, 12 Jul 2023 08:42:05 +0000
|
Date: Thu, 27 Jul 2023 08:28:00 +0000
|
||||||
Subject: [PATCH 09/16] lxcfs add proc partitions
|
Subject: [PATCH 09/15] lxcfs add proc partitions
|
||||||
|
|
||||||
Signed-off-by: vegbir <yangjiaqi16@huawei.com>
|
Signed-off-by: vegbir <yangjiaqi16@huawei.com>
|
||||||
---
|
---
|
||||||
@ -24,7 +24,7 @@ index 8d9d6eb..fcf408a 100644
|
|||||||
LXC_TYPE_SYS_DEVICES,
|
LXC_TYPE_SYS_DEVICES,
|
||||||
LXC_TYPE_SYS_DEVICES_SYSTEM,
|
LXC_TYPE_SYS_DEVICES_SYSTEM,
|
||||||
diff --git a/src/proc_fuse.c b/src/proc_fuse.c
|
diff --git a/src/proc_fuse.c b/src/proc_fuse.c
|
||||||
index f68212d..e1896dd 100644
|
index 1f732ff..0dbbefe 100644
|
||||||
--- a/src/proc_fuse.c
|
--- a/src/proc_fuse.c
|
||||||
+++ b/src/proc_fuse.c
|
+++ b/src/proc_fuse.c
|
||||||
@@ -119,14 +119,15 @@ __lxcfs_fuse_ops int proc_getattr(const char *path, struct stat *sb)
|
@@ -119,14 +119,15 @@ __lxcfs_fuse_ops int proc_getattr(const char *path, struct stat *sb)
|
||||||
@ -70,7 +70,7 @@ index f68212d..e1896dd 100644
|
|||||||
if (type == -1)
|
if (type == -1)
|
||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
|
|
||||||
@@ -921,6 +925,115 @@ static int proc_diskstats_read(char *buf, size_t size, off_t offset,
|
@@ -975,6 +979,115 @@ static int proc_diskstats_read(char *buf, size_t size, off_t offset,
|
||||||
return total_len;
|
return total_len;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -186,7 +186,7 @@ index f68212d..e1896dd 100644
|
|||||||
#ifdef RELOADTEST
|
#ifdef RELOADTEST
|
||||||
static inline void iwashere(void)
|
static inline void iwashere(void)
|
||||||
{
|
{
|
||||||
@@ -1855,6 +1968,12 @@ __lxcfs_fuse_ops int proc_read(const char *path, char *buf, size_t size,
|
@@ -1912,6 +2025,12 @@ __lxcfs_fuse_ops int proc_read(const char *path, char *buf, size_t size,
|
||||||
|
|
||||||
return read_file_fuse_with_offset(LXC_TYPE_PROC_SLABINFO_PATH,
|
return read_file_fuse_with_offset(LXC_TYPE_PROC_SLABINFO_PATH,
|
||||||
buf, size, offset, f);
|
buf, size, offset, f);
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
From b610b5534da182a7618d396da481e22624e5e7cf Mon Sep 17 00:00:00 2001
|
From d7582ba91869e19936c76f4d63b803d82d8e1caf Mon Sep 17 00:00:00 2001
|
||||||
From: vegbir <yangjiaqi16@huawei.com>
|
From: vegbir <yangjiaqi16@huawei.com>
|
||||||
Date: Wed, 12 Jul 2023 08:53:42 +0000
|
Date: Wed, 12 Jul 2023 08:53:42 +0000
|
||||||
Subject: [PATCH 10/16] lxcfs proc_diskstats_read func obtain data from blki
|
Subject: [PATCH 10/15] lxcfs proc_diskstats_read func obtain data from blki
|
||||||
|
|
||||||
Signed-off-by: vegbir <yangjiaqi16@huawei.com>
|
Signed-off-by: vegbir <yangjiaqi16@huawei.com>
|
||||||
---
|
---
|
||||||
|
|||||||
@ -1,13 +1,13 @@
|
|||||||
From 4e468a948874f661a53b498ac1a30012c7860fd1 Mon Sep 17 00:00:00 2001
|
From cd4988df0a9f7140758c0429485322dc6d9467d5 Mon Sep 17 00:00:00 2001
|
||||||
From: vegbir <yangjiaqi16@huawei.com>
|
From: vegbir <yangjiaqi16@huawei.com>
|
||||||
Date: Fri, 14 Jul 2023 07:54:27 +0000
|
Date: Fri, 14 Jul 2023 07:54:27 +0000
|
||||||
Subject: [PATCH 11/16] add secure compile option in meson
|
Subject: [PATCH 11/15] add secure compile option in meson
|
||||||
|
|
||||||
Signed-off-by: vegbir <yangjiaqi16@huawei.com>
|
Signed-off-by: vegbir <yangjiaqi16@huawei.com>
|
||||||
---
|
---
|
||||||
Makefile | 2 +-
|
Makefile | 2 +-
|
||||||
meson.build | 3 +++
|
meson.build | 4 ++++
|
||||||
2 files changed, 4 insertions(+), 1 deletion(-)
|
2 files changed, 5 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/Makefile b/Makefile
|
diff --git a/Makefile b/Makefile
|
||||||
index 94f2021..38fbe04 100644
|
index 94f2021..38fbe04 100644
|
||||||
@ -23,16 +23,24 @@ index 94f2021..38fbe04 100644
|
|||||||
.PHONY: meson
|
.PHONY: meson
|
||||||
meson:
|
meson:
|
||||||
diff --git a/meson.build b/meson.build
|
diff --git a/meson.build b/meson.build
|
||||||
index 379757f..56338b6 100644
|
index a0289ad..7eb1f06 100644
|
||||||
--- a/meson.build
|
--- a/meson.build
|
||||||
+++ b/meson.build
|
+++ b/meson.build
|
||||||
@@ -109,6 +109,9 @@ possible_cc_flags = [
|
@@ -12,6 +12,7 @@ project(
|
||||||
|
'b_pie=true',
|
||||||
|
'c_std=gnu11',
|
||||||
|
'warning_level=2',
|
||||||
|
+ 'optimization=2',
|
||||||
|
],
|
||||||
|
meson_version: '>= 0.50')
|
||||||
|
|
||||||
|
@@ -109,6 +110,9 @@ possible_cc_flags = [
|
||||||
'-Wreturn-local-addr',
|
'-Wreturn-local-addr',
|
||||||
'-fsanitize=cfi',
|
'-fsanitize=cfi',
|
||||||
'-Wstringop-overflow',
|
'-Wstringop-overflow',
|
||||||
+ '-ftrapv',
|
+ '-ftrapv',
|
||||||
+ '-fPIC',
|
+ '-fPIC',
|
||||||
+ '-O2 -D_FORTIFY_SOURCE=2',
|
+ '-D_FORTIFY_SOURCE=2',
|
||||||
]
|
]
|
||||||
|
|
||||||
possible_link_flags = [
|
possible_link_flags = [
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
From 390636cc3246ecaaea6903ae4f97552248b663c5 Mon Sep 17 00:00:00 2001
|
From 60eefa396251acebd02f06538ccee1081dcdcd0d Mon Sep 17 00:00:00 2001
|
||||||
From: vegbir <yangjiaqi16@huawei.com>
|
From: vegbir <yangjiaqi16@huawei.com>
|
||||||
Date: Fri, 14 Jul 2023 09:02:39 +0000
|
Date: Thu, 27 Jul 2023 09:10:52 +0000
|
||||||
Subject: [PATCH 12/16] lxcfs adapt 4.18 kernel
|
Subject: [PATCH 12/15] lxcfs adapt 4.18 kernel
|
||||||
|
|
||||||
Signed-off-by: vegbir <yangjiaqi16@huawei.com>
|
Signed-off-by: vegbir <yangjiaqi16@huawei.com>
|
||||||
---
|
---
|
||||||
@ -9,7 +9,7 @@ Signed-off-by: vegbir <yangjiaqi16@huawei.com>
|
|||||||
1 file changed, 30 insertions(+), 39 deletions(-)
|
1 file changed, 30 insertions(+), 39 deletions(-)
|
||||||
|
|
||||||
diff --git a/src/proc_fuse.c b/src/proc_fuse.c
|
diff --git a/src/proc_fuse.c b/src/proc_fuse.c
|
||||||
index e1896dd..fa5b055 100644
|
index 0dbbefe..392115c 100644
|
||||||
--- a/src/proc_fuse.c
|
--- a/src/proc_fuse.c
|
||||||
+++ b/src/proc_fuse.c
|
+++ b/src/proc_fuse.c
|
||||||
@@ -686,8 +686,8 @@ static int proc_diskstats_read(char *buf, size_t size, off_t offset,
|
@@ -686,8 +686,8 @@ static int proc_diskstats_read(char *buf, size_t size, off_t offset,
|
||||||
@ -116,7 +116,7 @@ index e1896dd..fa5b055 100644
|
|||||||
- stats.total_ticks = stats.total_ticks / 1000000;
|
- stats.total_ticks = stats.total_ticks / 1000000;
|
||||||
+ stats.total_ticks = total_ticks / 1000000;
|
+ stats.total_ticks = total_ticks / 1000000;
|
||||||
|
|
||||||
memset(lbuf, 0, 256);
|
memset(lbuf, 0, sizeof(lbuf));
|
||||||
if (stats.read || stats.write || stats.read_merged || stats.write_merged ||
|
if (stats.read || stats.write || stats.read_merged || stats.write_merged ||
|
||||||
--
|
--
|
||||||
2.41.0
|
2.41.0
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
From 9b853f8d16f08e837ec330c5906e918ebac70d78 Mon Sep 17 00:00:00 2001
|
From 30f3e8cf0c6e34c5a8e4dd9d599c6c96646bd2ba Mon Sep 17 00:00:00 2001
|
||||||
From: vegbir <yangjiaqi16@huawei.com>
|
From: vegbir <yangjiaqi16@huawei.com>
|
||||||
Date: Sat, 15 Jul 2023 03:43:12 +0000
|
Date: Sat, 15 Jul 2023 03:43:12 +0000
|
||||||
Subject: [PATCH 13/16] enable cfs option to show correct proc cpuinfo view
|
Subject: [PATCH 13/15] enable cfs option to show correct proc cpuinfo view
|
||||||
|
|
||||||
Signed-off-by: vegbir <yangjiaqi16@huawei.com>
|
Signed-off-by: vegbir <yangjiaqi16@huawei.com>
|
||||||
---
|
---
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
From 35b8b46aeea72d27d931b0bc767ce1e8d3b32db4 Mon Sep 17 00:00:00 2001
|
From 2c07195cd633c270ddcc6ef5349dbbc7063302d5 Mon Sep 17 00:00:00 2001
|
||||||
From: vegbir <yangjiaqi16@huawei.com>
|
From: vegbir <yangjiaqi16@huawei.com>
|
||||||
Date: Sat, 15 Jul 2023 04:25:53 +0000
|
Date: Sat, 15 Jul 2023 04:25:53 +0000
|
||||||
Subject: [PATCH 14/16] fix pidfd_open pidfd_send_signal function compilation
|
Subject: [PATCH 14/15] fix pidfd_open pidfd_send_signal function compilation
|
||||||
|
|
||||||
Signed-off-by: vegbir <yangjiaqi16@huawei.com>
|
Signed-off-by: vegbir <yangjiaqi16@huawei.com>
|
||||||
---
|
---
|
||||||
|
|||||||
@ -1,13 +1,13 @@
|
|||||||
From 4dadabe36fb3277996870869c62d5cffab72f781 Mon Sep 17 00:00:00 2001
|
From c79ce840026f83a8582d31e5e80529f0c230126c Mon Sep 17 00:00:00 2001
|
||||||
From: vegbir <yangjiaqi16@huawei.com>
|
From: vegbir <yangjiaqi16@huawei.com>
|
||||||
Date: Mon, 17 Jul 2023 08:36:34 +0000
|
Date: Thu, 27 Jul 2023 09:18:15 +0000
|
||||||
Subject: [PATCH 16/16] adapt meson build & install
|
Subject: [PATCH 15/15] adapt meson build & install
|
||||||
|
|
||||||
Signed-off-by: vegbir <yangjiaqi16@huawei.com>
|
Signed-off-by: vegbir <yangjiaqi16@huawei.com>
|
||||||
---
|
---
|
||||||
Makefile | 2 +-
|
Makefile | 2 +-
|
||||||
config/init/meson.build | 3 ++-
|
config/init/meson.build | 1 +
|
||||||
2 files changed, 3 insertions(+), 2 deletions(-)
|
2 files changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/Makefile b/Makefile
|
diff --git a/Makefile b/Makefile
|
||||||
index 38fbe04..891d7ad 100644
|
index 38fbe04..891d7ad 100644
|
||||||
@ -23,18 +23,9 @@ index 38fbe04..891d7ad 100644
|
|||||||
.PHONY: dist
|
.PHONY: dist
|
||||||
dist: meson
|
dist: meson
|
||||||
diff --git a/config/init/meson.build b/config/init/meson.build
|
diff --git a/config/init/meson.build b/config/init/meson.build
|
||||||
index 8445955..c781b59 100644
|
index 5200570..c781b59 100644
|
||||||
--- a/config/init/meson.build
|
--- a/config/init/meson.build
|
||||||
+++ b/config/init/meson.build
|
+++ b/config/init/meson.build
|
||||||
@@ -2,7 +2,7 @@
|
|
||||||
|
|
||||||
if 'systemd' in init_script
|
|
||||||
systemd = dependency('systemd')
|
|
||||||
- systemd_system_unit_dir = get_option('prefix') + systemd.get_pkgconfig_variable('systemdsystemunitdir')
|
|
||||||
+ systemd_system_unit_dir = systemd.get_pkgconfig_variable('systemdsystemunitdir')
|
|
||||||
systemd_service = custom_target(
|
|
||||||
'lxcfs.service',
|
|
||||||
input: 'systemd/lxcfs.service.in',
|
|
||||||
@@ -14,6 +14,7 @@ if 'systemd' in init_script
|
@@ -14,6 +14,7 @@ if 'systemd' in init_script
|
||||||
'@OUTPUT@',
|
'@OUTPUT@',
|
||||||
],
|
],
|
||||||
@ -1,92 +0,0 @@
|
|||||||
From 19bedb98bf93ac67d78cc0606d66e03217e15cbb Mon Sep 17 00:00:00 2001
|
|
||||||
From: vegbir <yangjiaqi16@huawei.com>
|
|
||||||
Date: Sat, 15 Jul 2023 08:15:57 +0000
|
|
||||||
Subject: [PATCH 15/16] proc fix proc diskstats output format
|
|
||||||
|
|
||||||
Signed-off-by: vegbir <yangjiaqi16@huawei.com>
|
|
||||||
---
|
|
||||||
src/proc_fuse.c | 24 +++++++++++++++++++-----
|
|
||||||
1 file changed, 19 insertions(+), 5 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/proc_fuse.c b/src/proc_fuse.c
|
|
||||||
index fa5b055..97bfff8 100644
|
|
||||||
--- a/src/proc_fuse.c
|
|
||||||
+++ b/src/proc_fuse.c
|
|
||||||
@@ -810,10 +810,10 @@ static int proc_diskstats_read(char *buf, size_t size, off_t offset,
|
|
||||||
memset(lbuf, 0, 256);
|
|
||||||
if (stats.read || stats.write || stats.read_merged || stats.write_merged ||
|
|
||||||
stats.read_sectors || stats.write_sectors || stats.read_ticks ||
|
|
||||||
- stats.write_ticks || stats.ios_pgr || stats.total_ticks || stats.rq_ticks ||
|
|
||||||
+ stats.write_ticks || stats.ios_pgr || stats.total_ticks || stats.rq_ticks || stats.discard ||
|
|
||||||
stats.discard_merged || stats.discard_sectors || stats.discard_ticks) {
|
|
||||||
if (need_record_diskstats(stats.major, stats.minor)) {
|
|
||||||
- sscanf(line, "%u %u %71s %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu\n",
|
|
||||||
+ sscanf(line, "%u %u %71s %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu\n",
|
|
||||||
&stats.major,
|
|
||||||
&stats.minor,
|
|
||||||
tmp_dev_name,
|
|
||||||
@@ -828,11 +828,12 @@ static int proc_diskstats_read(char *buf, size_t size, off_t offset,
|
|
||||||
&stats.ios_pgr,
|
|
||||||
&stats.total_ticks,
|
|
||||||
&stats.rq_ticks,
|
|
||||||
+ &stats.discard,
|
|
||||||
&stats.discard_merged,
|
|
||||||
&stats.discard_sectors,
|
|
||||||
&stats.discard_ticks);
|
|
||||||
}
|
|
||||||
- snprintf(lbuf, 256, "%u %u %s %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu\n",
|
|
||||||
+ ret = snprintf(lbuf, 256, "%u %u %s %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu\n",
|
|
||||||
stats.major,
|
|
||||||
stats.minor,
|
|
||||||
stats.dev_name,
|
|
||||||
@@ -847,11 +848,17 @@ static int proc_diskstats_read(char *buf, size_t size, off_t offset,
|
|
||||||
stats.ios_pgr,
|
|
||||||
stats.total_ticks,
|
|
||||||
stats.rq_ticks,
|
|
||||||
+ stats.discard,
|
|
||||||
stats.discard_merged,
|
|
||||||
stats.discard_sectors,
|
|
||||||
stats.discard_ticks);
|
|
||||||
+ if(ret >= 256) {
|
|
||||||
+ lxcfs_error("Insufficient buffer for %u:%u %s diskstats",
|
|
||||||
+ stats.major, stats.minor, stats.dev_name);
|
|
||||||
+ continue;
|
|
||||||
+ }
|
|
||||||
} else if (need_record_diskstats(stats.major, stats.minor)) {
|
|
||||||
- sscanf(line, "%u %u %71s %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu\n",
|
|
||||||
+ sscanf(line, "%u %u %71s %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu\n",
|
|
||||||
&stats.major,
|
|
||||||
&stats.minor,
|
|
||||||
tmp_dev_name,
|
|
||||||
@@ -866,10 +873,11 @@ static int proc_diskstats_read(char *buf, size_t size, off_t offset,
|
|
||||||
&stats.ios_pgr,
|
|
||||||
&stats.total_ticks,
|
|
||||||
&stats.rq_ticks,
|
|
||||||
+ &stats.discard,
|
|
||||||
&stats.discard_merged,
|
|
||||||
&stats.discard_sectors,
|
|
||||||
&stats.discard_ticks);
|
|
||||||
- snprintf(lbuf, 256, "%u %u %s %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu\n",
|
|
||||||
+ ret = snprintf(lbuf, 256, "%u %u %s %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu\n",
|
|
||||||
stats.major,
|
|
||||||
stats.minor,
|
|
||||||
stats.dev_name,
|
|
||||||
@@ -884,9 +892,15 @@ static int proc_diskstats_read(char *buf, size_t size, off_t offset,
|
|
||||||
stats.ios_pgr,
|
|
||||||
stats.total_ticks,
|
|
||||||
stats.rq_ticks,
|
|
||||||
+ stats.discard,
|
|
||||||
stats.discard_merged,
|
|
||||||
stats.discard_sectors,
|
|
||||||
stats.discard_ticks);
|
|
||||||
+ if(ret >= 256) {
|
|
||||||
+ lxcfs_error("Insufficient buffer for %u:%u %s diskstats",
|
|
||||||
+ stats.major, stats.minor, stats.dev_name);
|
|
||||||
+ continue;
|
|
||||||
+ }
|
|
||||||
} else {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
--
|
|
||||||
2.41.0
|
|
||||||
|
|
||||||
Binary file not shown.
BIN
lxcfs-5.0.4.tar.gz
Normal file
BIN
lxcfs-5.0.4.tar.gz
Normal file
Binary file not shown.
11
lxcfs.spec
11
lxcfs.spec
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
#Basic Information
|
#Basic Information
|
||||||
Name: lxcfs
|
Name: lxcfs
|
||||||
Version: 5.0.3
|
Version: 5.0.4
|
||||||
Release: 1
|
Release: 1
|
||||||
Summary: FUSE filesystem for LXC
|
Summary: FUSE filesystem for LXC
|
||||||
License: LGPL 2.1+
|
License: LGPL 2.1+
|
||||||
@ -24,8 +24,7 @@ Patch9011: 0011-add-secure-compile-option-in-meson.patch
|
|||||||
Patch9012: 0012-lxcfs-adapt-4.18-kernel.patch
|
Patch9012: 0012-lxcfs-adapt-4.18-kernel.patch
|
||||||
Patch9013: 0013-enable-cfs-option-to-show-correct-proc-cpuinfo-view.patch
|
Patch9013: 0013-enable-cfs-option-to-show-correct-proc-cpuinfo-view.patch
|
||||||
Patch9014: 0014-fix-pidfd_open-pidfd_send_signal-function-compilatio.patch
|
Patch9014: 0014-fix-pidfd_open-pidfd_send_signal-function-compilatio.patch
|
||||||
Patch9015: 0015-proc-fix-proc-diskstats-output-format.patch
|
Patch9015: 0015-adapt-meson-build-install.patch
|
||||||
Patch9016: 0016-adapt-meson-build-install.patch
|
|
||||||
|
|
||||||
#Dependency
|
#Dependency
|
||||||
BuildRequires: meson python3-jinja2 help2man
|
BuildRequires: meson python3-jinja2 help2man
|
||||||
@ -82,6 +81,12 @@ fi
|
|||||||
%{_unitdir}/*
|
%{_unitdir}/*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu July 27 2023 yangjiaqi <yangjiaqi16@huawei.com> - 5.0.4-1
|
||||||
|
- Type:bugfix
|
||||||
|
- CVE:NA
|
||||||
|
- SUG:NA
|
||||||
|
- DESC:upgrade to 5.0.4
|
||||||
|
|
||||||
* Mon July 17 2023 yangjiaqi <yangjiaqi16@huawei.com> - 5.0.3-1
|
* Mon July 17 2023 yangjiaqi <yangjiaqi16@huawei.com> - 5.0.3-1
|
||||||
- Type:bugfix
|
- Type:bugfix
|
||||||
- CVE:NA
|
- CVE:NA
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user