]> git.proxmox.com Git - lxcfs.git/blame - debian/patches/0001-Limit-memswlimit-by-TotalSwap.patch
bump version to 2.0.6-pve500 for stretch
[lxcfs.git] / debian / patches / 0001-Limit-memswlimit-by-TotalSwap.patch
CommitLineData
affff430
WB
1From f4f2e7852fab28ec01b0634f6f2063a6e321e5e6 Mon Sep 17 00:00:00 2001
2From: Wolfgang Bumiller <w.bumiller@proxmox.com>
3Date: Thu, 2 Feb 2017 09:36:46 +0100
4Subject: [PATCH lxcfs] Limit memswlimit by TotalSwap
5
6We do this for the memlimit when hitting MemTotal which
7means if neither is limited we end up subtracting the
8hosts's total memory from the 'unlimited' swap value in the
9SwapTotal and SwapFree lines.
10
11Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
12---
13 bindings.c | 8 ++++++--
14 1 file changed, 6 insertions(+), 2 deletions(-)
15
16diff --git a/bindings.c b/bindings.c
17index 2d4c36a..e116ff6 100644
18--- a/bindings.c
19+++ b/bindings.c
20@@ -3086,7 +3086,8 @@ static int proc_meminfo_read(char *buf, size_t size, off_t offset,
21 *memswlimit_str = NULL, *memswusage_str = NULL;
22 unsigned long memlimit = 0, memusage = 0, memswlimit = 0, memswusage = 0,
23 cached = 0, hosttotal = 0, active_anon = 0, inactive_anon = 0,
24- active_file = 0, inactive_file = 0, unevictable = 0;
25+ active_file = 0, inactive_file = 0, unevictable = 0,
26+ hostswtotal = 0;
27 char *line = NULL;
28 size_t linelen = 0, total_len = 0, rv = 0;
29 char *cache = d->buf;
30@@ -3148,7 +3149,7 @@ static int proc_meminfo_read(char *buf, size_t size, off_t offset,
31
32 memset(lbuf, 0, 100);
33 if (startswith(line, "MemTotal:")) {
34- sscanf(line+14, "%lu", &hosttotal);
35+ sscanf(line+sizeof("MemTotal:")-1, "%lu", &hosttotal);
36 if (hosttotal < memlimit)
37 memlimit = hosttotal;
38 snprintf(lbuf, 100, "MemTotal: %8lu kB\n", memlimit);
39@@ -3160,6 +3161,9 @@ static int proc_meminfo_read(char *buf, size_t size, off_t offset,
40 snprintf(lbuf, 100, "MemAvailable: %8lu kB\n", memlimit - memusage);
41 printme = lbuf;
42 } else if (startswith(line, "SwapTotal:") && memswlimit > 0) {
43+ sscanf(line+sizeof("SwapTotal:")-1, "%lu", &hostswtotal);
44+ if (hostswtotal < memswlimit - memlimit)
45+ memswlimit = hostswtotal + memlimit;
46 snprintf(lbuf, 100, "SwapTotal: %8lu kB\n", memswlimit - memlimit);
47 printme = lbuf;
48 } else if (startswith(line, "SwapFree:") && memswlimit > 0 && memswusage > 0) {
49--
502.1.4
51