commit | ac070cd90c0d45b7a554366f235262fa5c566435 | [log] [tgz] |
---|---|---|
author | Alexey Gladkov <legion@kernel.org> | Mon May 24 15:38:06 2021 +0200 |
committer | Alexey Gladkov <legion@kernel.org> | Thu Jun 03 09:44:38 2021 +0200 |
tree | 35648f785eb5739e831767424cc855782db05933 | |
parent | 8124c8a6b35386f73523d27eacb71b5364a68c4c [diff] |
proc: Implement /proc/self/meminfo The /proc/meminfo contains information regardless of the cgroups restrictions. This file is still widely used [1]. This means that all these programs will not work correctly inside container [2][3][4]. Some programs try to respect the cgroups limits, but not all of them implement support for all cgroup versions [5]. Correct information can be obtained from cgroups, but this requires the cgroups to be available inside container and the correct version of cgroups to be supported. There is lxcfs [6] that emulates /proc/meminfo using fuse to provide information regarding cgroups. This patch can help them. This patch adds /proc/self/meminfo that contains a subset of /proc/meminfo respecting cgroup restrictions. We cannot just create /proc/self/meminfo and make a symlink at the old location because this will break the existing apparmor rules [7]. Therefore, the patch adds a separate file with the same format. [1] https://codesearch.debian.net/search?q=%2Fproc%2Fmeminfo [2] https://sources.debian.org/src/erlang/1:23.2.6+dfsg-1/lib/os_mon/c_src/memsup.c#L300 [3] https://sources.debian.org/src/p7zip/16.02+dfsg-8/CPP/Windows/System.cpp/#L103 [4] https://sources.debian.org/src/systemd/247.3-5/src/oom/oomd.c/#L138 [5] https://sources.debian.org/src/nodejs/12.21.0%7Edfsg-4/deps/uv/src/unix/linux-core.c/#L1059 [6] https://linuxcontainers.org/lxcfs/ [7] https://gitlab.com/apparmor/apparmor/-/blob/master/profiles/apparmor.d/abstractions/base#L98 Signed-off-by: Alexey Gladkov <legion@kernel.org>