2016-04-08 22:49:18

by Johannes Weiner

[permalink] [raw]
Subject: [PATCH] mm: memcontrol: let v2 cgroups follow changes in system swappiness

Cgroup2 currently doesn't have a per-cgroup swappiness setting. We
might want to add one later - that's a different discussion - but
until we do, the cgroups should always follow the system setting.
Otherwise it will be unchangeably set to whatever the ancestor
inherited from the system setting at the time of cgroup creation.

Signed-off-by: Johannes Weiner <[email protected]>
Cc: [email protected] # 4.5
---
include/linux/swap.h | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/include/linux/swap.h b/include/linux/swap.h
index e58dba3..15d17c8 100644
--- a/include/linux/swap.h
+++ b/include/linux/swap.h
@@ -534,6 +534,10 @@ static inline swp_entry_t get_swap_page(void)
#ifdef CONFIG_MEMCG
static inline int mem_cgroup_swappiness(struct mem_cgroup *memcg)
{
+ /* Cgroup2 doesn't have per-cgroup swappiness */
+ if (cgroup_subsys_on_dfl(memory_cgrp_subsys))
+ return vm_swappiness;
+
/* root ? */
if (mem_cgroup_disabled() || !memcg->css.parent)
return vm_swappiness;
--
2.8.0


2016-04-09 08:58:28

by Vladimir Davydov

[permalink] [raw]
Subject: Re: [PATCH] mm: memcontrol: let v2 cgroups follow changes in system swappiness

On Fri, Apr 08, 2016 at 06:49:04PM -0400, Johannes Weiner wrote:
> Cgroup2 currently doesn't have a per-cgroup swappiness setting. We
> might want to add one later - that's a different discussion - but
> until we do, the cgroups should always follow the system setting.
> Otherwise it will be unchangeably set to whatever the ancestor
> inherited from the system setting at the time of cgroup creation.
>
> Signed-off-by: Johannes Weiner <[email protected]>
> Cc: [email protected] # 4.5

Acked-by: Vladimir Davydov <[email protected]>

2016-04-11 07:31:22

by Michal Hocko

[permalink] [raw]
Subject: Re: [PATCH] mm: memcontrol: let v2 cgroups follow changes in system swappiness

On Fri 08-04-16 18:49:04, Johannes Weiner wrote:
> Cgroup2 currently doesn't have a per-cgroup swappiness setting. We
> might want to add one later - that's a different discussion - but
> until we do, the cgroups should always follow the system setting.
> Otherwise it will be unchangeably set to whatever the ancestor
> inherited from the system setting at the time of cgroup creation.
>
> Signed-off-by: Johannes Weiner <[email protected]>
> Cc: [email protected] # 4.5

Acked-by: Michal Hocko <[email protected]>

> ---
> include/linux/swap.h | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/include/linux/swap.h b/include/linux/swap.h
> index e58dba3..15d17c8 100644
> --- a/include/linux/swap.h
> +++ b/include/linux/swap.h
> @@ -534,6 +534,10 @@ static inline swp_entry_t get_swap_page(void)
> #ifdef CONFIG_MEMCG
> static inline int mem_cgroup_swappiness(struct mem_cgroup *memcg)
> {
> + /* Cgroup2 doesn't have per-cgroup swappiness */
> + if (cgroup_subsys_on_dfl(memory_cgrp_subsys))
> + return vm_swappiness;
> +
> /* root ? */
> if (mem_cgroup_disabled() || !memcg->css.parent)
> return vm_swappiness;
> --
> 2.8.0

--
Michal Hocko
SUSE Labs