From: Kamezawa Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
To: Vladimir Davydov <vdavydov@virtuozzo.com>,
Andrew Morton <akpm@linux-foundation.org>
Cc: Johannes Weiner <hannes@cmpxchg.org>,
Michal Hocko <mhocko@kernel.org>,
linux-mm@kvack.org, cgroups@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 7/7] Documentation: cgroup: add memory.swap.{current,max} description
Date: Fri, 18 Dec 2015 11:51:23 +0900 [thread overview]
Message-ID: <567374AB.3010101@jp.fujitsu.com> (raw)
In-Reply-To: <dbb4bf6bc071997982855c8f7d403c22cea60ffb.1450352792.git.vdavydov@virtuozzo.com>
On 2015/12/17 21:30, Vladimir Davydov wrote:
> The rationale of separate swap counter is given by Johannes Weiner.
>
> Signed-off-by: Vladimir Davydov <vdavydov@virtuozzo.com>
> ---
> Changes in v2:
> - Add rationale of separate swap counter provided by Johannes.
>
> Documentation/cgroup.txt | 33 +++++++++++++++++++++++++++++++++
> 1 file changed, 33 insertions(+)
>
> diff --git a/Documentation/cgroup.txt b/Documentation/cgroup.txt
> index 31d1f7bf12a1..f441564023e1 100644
> --- a/Documentation/cgroup.txt
> +++ b/Documentation/cgroup.txt
> @@ -819,6 +819,22 @@ PAGE_SIZE multiple when read back.
> the cgroup. This may not exactly match the number of
> processes killed but should generally be close.
>
> + memory.swap.current
> +
> + A read-only single value file which exists on non-root
> + cgroups.
> +
> + The total amount of swap currently being used by the cgroup
> + and its descendants.
> +
> + memory.swap.max
> +
> + A read-write single value file which exists on non-root
> + cgroups. The default is "max".
> +
> + Swap usage hard limit. If a cgroup's swap usage reaches this
> + limit, anonymous meomry of the cgroup will not be swapped out.
> +
>
> 5-2-2. General Usage
>
> @@ -1291,3 +1307,20 @@ allocation from the slack available in other groups or the rest of the
> system than killing the group. Otherwise, memory.max is there to
> limit this type of spillover and ultimately contain buggy or even
> malicious applications.
> +
> +The combined memory+swap accounting and limiting is replaced by real
> +control over swap space.
> +
> +The main argument for a combined memory+swap facility in the original
> +cgroup design was that global or parental pressure would always be
> +able to swap all anonymous memory of a child group, regardless of the
> +child's own (possibly untrusted) configuration. However, untrusted
> +groups can sabotage swapping by other means - such as referencing its
> +anonymous memory in a tight loop - and an admin can not assume full
> +swappability when overcommitting untrusted jobs.
> +
> +For trusted jobs, on the other hand, a combined counter is not an
> +intuitive userspace interface, and it flies in the face of the idea
> +that cgroup controllers should account and limit specific physical
> +resources. Swap space is a resource like all others in the system,
> +and that's why unified hierarchy allows distributing it separately.
>
Could you give here a hint how to calculate amount of swapcache,
counted both in memory.current and swap.current ?
Thanks,
-Kame
WARNING: multiple messages have this Message-ID (diff)
From: Kamezawa Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
To: Vladimir Davydov <vdavydov@virtuozzo.com>,
Andrew Morton <akpm@linux-foundation.org>
Cc: Johannes Weiner <hannes@cmpxchg.org>,
Michal Hocko <mhocko@kernel.org>,
linux-mm@kvack.org, cgroups@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 7/7] Documentation: cgroup: add memory.swap.{current,max} description
Date: Fri, 18 Dec 2015 11:51:23 +0900 [thread overview]
Message-ID: <567374AB.3010101@jp.fujitsu.com> (raw)
In-Reply-To: <dbb4bf6bc071997982855c8f7d403c22cea60ffb.1450352792.git.vdavydov@virtuozzo.com>
On 2015/12/17 21:30, Vladimir Davydov wrote:
> The rationale of separate swap counter is given by Johannes Weiner.
>
> Signed-off-by: Vladimir Davydov <vdavydov@virtuozzo.com>
> ---
> Changes in v2:
> - Add rationale of separate swap counter provided by Johannes.
>
> Documentation/cgroup.txt | 33 +++++++++++++++++++++++++++++++++
> 1 file changed, 33 insertions(+)
>
> diff --git a/Documentation/cgroup.txt b/Documentation/cgroup.txt
> index 31d1f7bf12a1..f441564023e1 100644
> --- a/Documentation/cgroup.txt
> +++ b/Documentation/cgroup.txt
> @@ -819,6 +819,22 @@ PAGE_SIZE multiple when read back.
> the cgroup. This may not exactly match the number of
> processes killed but should generally be close.
>
> + memory.swap.current
> +
> + A read-only single value file which exists on non-root
> + cgroups.
> +
> + The total amount of swap currently being used by the cgroup
> + and its descendants.
> +
> + memory.swap.max
> +
> + A read-write single value file which exists on non-root
> + cgroups. The default is "max".
> +
> + Swap usage hard limit. If a cgroup's swap usage reaches this
> + limit, anonymous meomry of the cgroup will not be swapped out.
> +
>
> 5-2-2. General Usage
>
> @@ -1291,3 +1307,20 @@ allocation from the slack available in other groups or the rest of the
> system than killing the group. Otherwise, memory.max is there to
> limit this type of spillover and ultimately contain buggy or even
> malicious applications.
> +
> +The combined memory+swap accounting and limiting is replaced by real
> +control over swap space.
> +
> +The main argument for a combined memory+swap facility in the original
> +cgroup design was that global or parental pressure would always be
> +able to swap all anonymous memory of a child group, regardless of the
> +child's own (possibly untrusted) configuration. However, untrusted
> +groups can sabotage swapping by other means - such as referencing its
> +anonymous memory in a tight loop - and an admin can not assume full
> +swappability when overcommitting untrusted jobs.
> +
> +For trusted jobs, on the other hand, a combined counter is not an
> +intuitive userspace interface, and it flies in the face of the idea
> +that cgroup controllers should account and limit specific physical
> +resources. Swap space is a resource like all others in the system,
> +and that's why unified hierarchy allows distributing it separately.
>
Could you give here a hint how to calculate amount of swapcache,
counted both in memory.current and swap.current ?
Thanks,
-Kame
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2015-12-18 2:51 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-17 12:29 [PATCH v2 0/7] Add swap accounting to cgroup2 Vladimir Davydov
2015-12-17 12:29 ` Vladimir Davydov
2015-12-17 12:29 ` Vladimir Davydov
2015-12-17 12:29 ` [PATCH v2 1/7] mm: memcontrol: charge swap " Vladimir Davydov
2015-12-17 12:29 ` Vladimir Davydov
2015-12-17 16:09 ` Johannes Weiner
2015-12-17 16:09 ` Johannes Weiner
2016-01-13 16:44 ` Michal Hocko
2016-01-13 16:44 ` Michal Hocko
2015-12-17 12:29 ` [PATCH v2 2/7] mm: vmscan: pass memcg to get_scan_count() Vladimir Davydov
2015-12-17 12:29 ` Vladimir Davydov
[not found] ` <daacf7e0dbe2ba11ed44facc36ac2fed3546ffe0.1450352792.git.vdavydov-5HdwGun5lf+gSpxsJD1C4w@public.gmane.org>
2016-01-13 16:47 ` Michal Hocko
2016-01-13 16:47 ` Michal Hocko
2016-01-13 16:47 ` Michal Hocko
2015-12-17 12:29 ` [PATCH v2 3/7] mm: memcontrol: replace mem_cgroup_lruvec_online with mem_cgroup_online Vladimir Davydov
2015-12-17 12:29 ` Vladimir Davydov
2016-01-13 16:47 ` Michal Hocko
2016-01-13 16:47 ` Michal Hocko
2015-12-17 12:29 ` [PATCH v2 4/7] swap.h: move memcg related stuff to the end of the file Vladimir Davydov
2015-12-17 12:29 ` Vladimir Davydov
[not found] ` <77dd7375cd8360829093b4c347db2e557334da21.1450352792.git.vdavydov-5HdwGun5lf+gSpxsJD1C4w@public.gmane.org>
2016-01-13 16:48 ` Michal Hocko
2016-01-13 16:48 ` Michal Hocko
2016-01-13 16:48 ` Michal Hocko
2015-12-17 12:29 ` [PATCH v2 5/7] mm: vmscan: do not scan anon pages if memcg swap limit is hit Vladimir Davydov
2015-12-17 12:29 ` Vladimir Davydov
[not found] ` <6f6fa6cbfe005917911f89b2b12d5fbfa0b071e4.1450352792.git.vdavydov-5HdwGun5lf+gSpxsJD1C4w@public.gmane.org>
2016-01-13 16:54 ` Michal Hocko
2016-01-13 16:54 ` Michal Hocko
2016-01-13 16:54 ` Michal Hocko
2015-12-17 12:29 ` [PATCH v2 6/7] mm: free swap cache aggressively if memcg swap is full Vladimir Davydov
2015-12-17 12:29 ` Vladimir Davydov
[not found] ` <83c9cff28990636841b966f8d6e4a43c1fd342e7.1450352792.git.vdavydov-5HdwGun5lf+gSpxsJD1C4w@public.gmane.org>
2016-01-13 16:59 ` Michal Hocko
2016-01-13 16:59 ` Michal Hocko
2016-01-13 16:59 ` Michal Hocko
2015-12-17 12:30 ` [PATCH v2 7/7] Documentation: cgroup: add memory.swap.{current,max} description Vladimir Davydov
2015-12-17 12:30 ` Vladimir Davydov
[not found] ` <dbb4bf6bc071997982855c8f7d403c22cea60ffb.1450352792.git.vdavydov-5HdwGun5lf+gSpxsJD1C4w@public.gmane.org>
2015-12-17 16:16 ` Johannes Weiner
2015-12-17 16:16 ` Johannes Weiner
2015-12-17 16:16 ` Johannes Weiner
2016-01-13 17:02 ` Michal Hocko
2016-01-13 17:02 ` Michal Hocko
2016-01-13 17:02 ` Michal Hocko
2015-12-18 2:51 ` Kamezawa Hiroyuki [this message]
2015-12-18 2:51 ` Kamezawa Hiroyuki
2015-12-18 15:39 ` Vladimir Davydov
2015-12-18 15:39 ` Vladimir Davydov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=567374AB.3010101@jp.fujitsu.com \
--to=kamezawa.hiroyu@jp.fujitsu.com \
--cc=akpm@linux-foundation.org \
--cc=cgroups@vger.kernel.org \
--cc=hannes@cmpxchg.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@kernel.org \
--cc=vdavydov@virtuozzo.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.