81 lines
3.6 KiB
Diff
81 lines
3.6 KiB
Diff
From 5882a762e984ec0091658f458758c44fc63bb9cf Mon Sep 17 00:00:00 2001
|
|
From: zhangsong <zhangsong34@huawei.com>
|
|
Date: Tue, 23 Jun 2020 07:43:33 +0800
|
|
Subject: [PATCH] lxcfs: adapt 4.18 kernel
|
|
|
|
Signed-off-by: zhangsong <zhangsong34@huawei.com>
|
|
---
|
|
bindings.c | 39 ++++++++++++++++++++-------------------
|
|
1 file changed, 20 insertions(+), 19 deletions(-)
|
|
|
|
diff --git a/bindings.c b/bindings.c
|
|
index b2043ec..e3fbf29 100644
|
|
--- a/bindings.c
|
|
+++ b/bindings.c
|
|
@@ -4226,15 +4226,12 @@ static int proc_diskstats_read(char *buf, size_t size, off_t offset,
|
|
if (!(io_serviced_str = cgfs_get_value("blkio", cg, "blkio.throttle.io_serviced_recursive"))
|
|
&& !(io_serviced_str = cgfs_get_value("blkio", cg, "blkio.throttle.io_serviced")))
|
|
goto err;
|
|
- if (!(io_merged_str = cgfs_get_value("blkio", cg, "blkio.io_merged_recursive")))
|
|
- goto err;
|
|
if (!(io_service_bytes_str = cgfs_get_value("blkio", cg, "blkio.throttle.io_service_bytes_recursive"))
|
|
&& !(io_service_bytes_str = cgfs_get_value("blkio", cg, "blkio.throttle.io_service_bytes")))
|
|
goto err;
|
|
- if (!(io_wait_time_str = cgfs_get_value("blkio", cg, "blkio.io_wait_time_recursive")))
|
|
- goto err;
|
|
- if (!(io_service_time_str = cgfs_get_value("blkio", cg, "blkio.io_service_time_recursive")))
|
|
- goto err;
|
|
+ io_merged_str = cgfs_get_value("blkio", cg, "blkio.io_merged_recursive");
|
|
+ io_wait_time_str = cgfs_get_value("blkio", cg, "blkio.io_wait_time_recursive");
|
|
+ io_service_time_str = cgfs_get_value("blkio", cg, "blkio.io_service_time_recursive");
|
|
|
|
|
|
f = fopen("/proc/diskstats", "r");
|
|
@@ -4268,26 +4265,30 @@ static int proc_diskstats_read(char *buf, size_t size, off_t offset,
|
|
|
|
get_blkio_io_value(io_serviced_str, major, minor, "Read", &read);
|
|
get_blkio_io_value(io_serviced_str, major, minor, "Write", &write);
|
|
- get_blkio_io_value(io_merged_str, major, minor, "Read", &read_merged);
|
|
- get_blkio_io_value(io_merged_str, major, minor, "Write", &write_merged);
|
|
+ if (io_merged_str != NULL) {
|
|
+ get_blkio_io_value(io_merged_str, major, minor, "Read", &read_merged);
|
|
+ get_blkio_io_value(io_merged_str, major, minor, "Write", &write_merged);
|
|
+ }
|
|
get_blkio_io_value(io_service_bytes_str, major, minor, "Read", &read_sectors);
|
|
read_sectors = read_sectors/512;
|
|
get_blkio_io_value(io_service_bytes_str, major, minor, "Write", &write_sectors);
|
|
write_sectors = write_sectors/512;
|
|
|
|
- get_blkio_io_value(io_service_time_str, major, minor, "Read", &rd_svctm);
|
|
- rd_svctm = rd_svctm/1000000;
|
|
- get_blkio_io_value(io_wait_time_str, major, minor, "Read", &rd_wait);
|
|
- rd_wait = rd_wait/1000000;
|
|
+ if (io_service_time_str != NULL) {
|
|
+ get_blkio_io_value(io_service_time_str, major, minor, "Read", &rd_svctm);
|
|
+ rd_svctm = rd_svctm/1000000;
|
|
+ get_blkio_io_value(io_service_time_str, major, minor, "Write", &wr_svctm);
|
|
+ wr_svctm = wr_svctm/1000000;
|
|
+ get_blkio_io_value(io_service_time_str, major, minor, "Total", &tot_ticks);
|
|
+ }
|
|
+ if (io_wait_time_str != NULL) {
|
|
+ get_blkio_io_value(io_wait_time_str, major, minor, "Read", &rd_wait);
|
|
+ rd_wait = rd_wait/1000000;
|
|
+ get_blkio_io_value(io_wait_time_str, major, minor, "Write", &wr_wait);
|
|
+ wr_wait = wr_wait/1000000;
|
|
+ }
|
|
read_ticks = rd_svctm + rd_wait;
|
|
-
|
|
- get_blkio_io_value(io_service_time_str, major, minor, "Write", &wr_svctm);
|
|
- wr_svctm = wr_svctm/1000000;
|
|
- get_blkio_io_value(io_wait_time_str, major, minor, "Write", &wr_wait);
|
|
- wr_wait = wr_wait/1000000;
|
|
write_ticks = wr_svctm + wr_wait;
|
|
-
|
|
- get_blkio_io_value(io_service_time_str, major, minor, "Total", &tot_ticks);
|
|
tot_ticks = tot_ticks/1000000;
|
|
|
|
memset(lbuf, 0, 256);
|
|
--
|
|
2.21.0
|
|
|