linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] mm, memcg: fix mem_cgroup_swapout() for THPs
@ 2017-11-28 16:19 Shakeel Butt
  2017-11-28 20:00 ` Michal Hocko
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Shakeel Butt @ 2017-11-28 16:19 UTC (permalink / raw)
  To: Huang Ying, Vladimir Davydov, Michal Hocko, Greg Thelen,
	Johannes Weiner, Andrew Morton
  Cc: linux-mm, linux-kernel, cgroups, Shakeel Butt, stable

The commit d6810d730022 ("memcg, THP, swap: make mem_cgroup_swapout()
support THP") changed mem_cgroup_swapout() to support transparent huge
page (THP). However the patch missed one location which should be
changed for correctly handling THPs. The resulting bug will cause the
memory cgroups whose THPs were swapped out to become zombies on
deletion.

Fixes: d6810d730022 ("memcg, THP, swap: make mem_cgroup_swapout() support THP")
Signed-off-by: Shakeel Butt <shakeelb@google.com>
Cc: stable@vger.kernel.org
---
 mm/memcontrol.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index 50e6906314f8..ac2ffd5e02b9 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -6044,7 +6044,7 @@ void mem_cgroup_swapout(struct page *page, swp_entry_t entry)
 	memcg_check_events(memcg, page);
 
 	if (!mem_cgroup_is_root(memcg))
-		css_put(&memcg->css);
+		css_put_many(&memcg->css, nr_entries);
 }
 
 /**
-- 
2.15.0.417.g466bffb3ac-goog

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] mm, memcg: fix mem_cgroup_swapout() for THPs
  2017-11-28 16:19 [PATCH] mm, memcg: fix mem_cgroup_swapout() for THPs Shakeel Butt
@ 2017-11-28 20:00 ` Michal Hocko
  2017-11-28 20:09   ` Shakeel Butt
  2017-11-29  0:38 ` Huang, Ying
  2017-11-29 10:17 ` Johannes Weiner
  2 siblings, 1 reply; 5+ messages in thread
From: Michal Hocko @ 2017-11-28 20:00 UTC (permalink / raw)
  To: Shakeel Butt
  Cc: Huang Ying, Vladimir Davydov, Greg Thelen, Johannes Weiner,
	Andrew Morton, linux-mm, linux-kernel, cgroups, stable

On Tue 28-11-17 08:19:41, Shakeel Butt wrote:
> The commit d6810d730022 ("memcg, THP, swap: make mem_cgroup_swapout()
> support THP") changed mem_cgroup_swapout() to support transparent huge
> page (THP). However the patch missed one location which should be
> changed for correctly handling THPs. The resulting bug will cause the
> memory cgroups whose THPs were swapped out to become zombies on
> deletion.

Very well spotted! Have you seen this triggering or you found it by the
code inspection?

> Fixes: d6810d730022 ("memcg, THP, swap: make mem_cgroup_swapout() support THP")

To be honest I am not really happy how the whole THP swapout thing has
been rushed in without a proper review. I am partly guildy for not find
time for the proper review but this is not something that really had to
be merged without a single ack or reviewed-by.

> Signed-off-by: Shakeel Butt <shakeelb@google.com>
> Cc: stable@vger.kernel.org

Acked-by: Michal Hocko <mhocko@suse.com>

Thanks!

> ---
>  mm/memcontrol.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/mm/memcontrol.c b/mm/memcontrol.c
> index 50e6906314f8..ac2ffd5e02b9 100644
> --- a/mm/memcontrol.c
> +++ b/mm/memcontrol.c
> @@ -6044,7 +6044,7 @@ void mem_cgroup_swapout(struct page *page, swp_entry_t entry)
>  	memcg_check_events(memcg, page);
>  
>  	if (!mem_cgroup_is_root(memcg))
> -		css_put(&memcg->css);
> +		css_put_many(&memcg->css, nr_entries);
>  }
>  
>  /**
> -- 
> 2.15.0.417.g466bffb3ac-goog

-- 
Michal Hocko
SUSE Labs

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] mm, memcg: fix mem_cgroup_swapout() for THPs
  2017-11-28 20:00 ` Michal Hocko
@ 2017-11-28 20:09   ` Shakeel Butt
  0 siblings, 0 replies; 5+ messages in thread
From: Shakeel Butt @ 2017-11-28 20:09 UTC (permalink / raw)
  To: Michal Hocko
  Cc: Huang Ying, Vladimir Davydov, Greg Thelen, Johannes Weiner,
	Andrew Morton, Linux MM, LKML, Cgroups, stable

On Tue, Nov 28, 2017 at 12:00 PM, Michal Hocko <mhocko@kernel.org> wrote:
> On Tue 28-11-17 08:19:41, Shakeel Butt wrote:
>> The commit d6810d730022 ("memcg, THP, swap: make mem_cgroup_swapout()
>> support THP") changed mem_cgroup_swapout() to support transparent huge
>> page (THP). However the patch missed one location which should be
>> changed for correctly handling THPs. The resulting bug will cause the
>> memory cgroups whose THPs were swapped out to become zombies on
>> deletion.
>
> Very well spotted! Have you seen this triggering or you found it by the
> code inspection?
>

By code inspection.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] mm, memcg: fix mem_cgroup_swapout() for THPs
  2017-11-28 16:19 [PATCH] mm, memcg: fix mem_cgroup_swapout() for THPs Shakeel Butt
  2017-11-28 20:00 ` Michal Hocko
@ 2017-11-29  0:38 ` Huang, Ying
  2017-11-29 10:17 ` Johannes Weiner
  2 siblings, 0 replies; 5+ messages in thread
From: Huang, Ying @ 2017-11-29  0:38 UTC (permalink / raw)
  To: Shakeel Butt
  Cc: Huang Ying, Vladimir Davydov, Michal Hocko, Greg Thelen,
	Johannes Weiner, Andrew Morton, linux-mm, linux-kernel, cgroups,
	stable

Shakeel Butt <shakeelb@google.com> writes:

> The commit d6810d730022 ("memcg, THP, swap: make mem_cgroup_swapout()
> support THP") changed mem_cgroup_swapout() to support transparent huge
> page (THP). However the patch missed one location which should be
> changed for correctly handling THPs. The resulting bug will cause the
> memory cgroups whose THPs were swapped out to become zombies on
> deletion.

Good catch!  Thanks a lot for fixing!

Best Regards,
Huang, Ying

> Fixes: d6810d730022 ("memcg, THP, swap: make mem_cgroup_swapout() support THP")
> Signed-off-by: Shakeel Butt <shakeelb@google.com>
> Cc: stable@vger.kernel.org
> ---
>  mm/memcontrol.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/mm/memcontrol.c b/mm/memcontrol.c
> index 50e6906314f8..ac2ffd5e02b9 100644
> --- a/mm/memcontrol.c
> +++ b/mm/memcontrol.c
> @@ -6044,7 +6044,7 @@ void mem_cgroup_swapout(struct page *page, swp_entry_t entry)
>  	memcg_check_events(memcg, page);
>  
>  	if (!mem_cgroup_is_root(memcg))
> -		css_put(&memcg->css);
> +		css_put_many(&memcg->css, nr_entries);
>  }
>  
>  /**

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] mm, memcg: fix mem_cgroup_swapout() for THPs
  2017-11-28 16:19 [PATCH] mm, memcg: fix mem_cgroup_swapout() for THPs Shakeel Butt
  2017-11-28 20:00 ` Michal Hocko
  2017-11-29  0:38 ` Huang, Ying
@ 2017-11-29 10:17 ` Johannes Weiner
  2 siblings, 0 replies; 5+ messages in thread
From: Johannes Weiner @ 2017-11-29 10:17 UTC (permalink / raw)
  To: Shakeel Butt
  Cc: Huang Ying, Vladimir Davydov, Michal Hocko, Greg Thelen,
	Andrew Morton, linux-mm, linux-kernel, cgroups, stable

On Tue, Nov 28, 2017 at 08:19:41AM -0800, Shakeel Butt wrote:
> The commit d6810d730022 ("memcg, THP, swap: make mem_cgroup_swapout()
> support THP") changed mem_cgroup_swapout() to support transparent huge
> page (THP). However the patch missed one location which should be
> changed for correctly handling THPs. The resulting bug will cause the
> memory cgroups whose THPs were swapped out to become zombies on
> deletion.
> 
> Fixes: d6810d730022 ("memcg, THP, swap: make mem_cgroup_swapout() support THP")
> Signed-off-by: Shakeel Butt <shakeelb@google.com>
> Cc: stable@vger.kernel.org

Acked-by: Johannes Weiner <hannes@cmpxchg.org>

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2017-11-29 10:17 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-28 16:19 [PATCH] mm, memcg: fix mem_cgroup_swapout() for THPs Shakeel Butt
2017-11-28 20:00 ` Michal Hocko
2017-11-28 20:09   ` Shakeel Butt
2017-11-29  0:38 ` Huang, Ying
2017-11-29 10:17 ` Johannes Weiner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).