summaryrefslogtreecommitdiff
path: root/src/shared
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2015-01-23 02:58:02 +0100
committerLennart Poettering <lennart@poettering.net>2015-01-23 03:00:15 +0100
commit934277fe6a26ff2a4da37059c70d84ab6a700781 (patch)
tree5fbd09d8a0933a565a6c3d393f74897afad49a9a /src/shared
parentda41abc52ca1f5965a22cc481a720328b987b335 (diff)
core: add a property that shows the current memory usage of a unit
This is exposed the memory.usage_in_bytes cgroup property on the bus, and makes "systemctl status" show it in its default output.
Diffstat (limited to 'src/shared')
-rw-r--r--src/shared/cgroup-util.c11
-rw-r--r--src/shared/cgroup-util.h1
2 files changed, 12 insertions, 0 deletions
diff --git a/src/shared/cgroup-util.c b/src/shared/cgroup-util.c
index 86729f14bf..0d3cc53517 100644
--- a/src/shared/cgroup-util.c
+++ b/src/shared/cgroup-util.c
@@ -1592,6 +1592,17 @@ int cg_set_attribute(const char *controller, const char *path, const char *attri
return write_string_file_no_create(p, value);
}
+int cg_get_attribute(const char *controller, const char *path, const char *attribute, char **ret) {
+ _cleanup_free_ char *p = NULL;
+ int r;
+
+ r = cg_get_path(controller, path, attribute, &p);
+ if (r < 0)
+ return r;
+
+ return read_one_line_file(p, ret);
+}
+
static const char mask_names[] =
"cpu\0"
"cpuacct\0"
diff --git a/src/shared/cgroup-util.h b/src/shared/cgroup-util.h
index 89dc2b1135..96a3d3bafa 100644
--- a/src/shared/cgroup-util.h
+++ b/src/shared/cgroup-util.h
@@ -85,6 +85,7 @@ int cg_attach_fallback(const char *controller, const char *path, pid_t pid);
int cg_create_and_attach(const char *controller, const char *path, pid_t pid);
int cg_set_attribute(const char *controller, const char *path, const char *attribute, const char *value);
+int cg_get_attribute(const char *controller, const char *path, const char *attribute, char **ret);
int cg_set_group_access(const char *controller, const char *path, mode_t mode, uid_t uid, gid_t gid);
int cg_set_task_access(const char *controller, const char *path, mode_t mode, uid_t uid, gid_t gid);