Re: [PATCH 3.12 127/142] cgroup: use an ordered workqueue for cgroup destruction

From: Jiri Slaby
Date: Tue Apr 11 2017 - 02:05:14 EST


On 04/10/2017, 09:30 PM, Hugh Dickins wrote:
> On Mon, 10 Apr 2017, Jiri Slaby wrote:
>
>> From: Hugh Dickins <hughd@xxxxxxxxxx>
>>
>> 3.12-stable review patch. If anyone has any objections, please let me know.
>>
>> ===============
>>
>> commit ab3f5faa6255a0eb4f832675507d9e295ca7e9ba upstream.
>>
>> Sometimes the cleanup after memcg hierarchy testing gets stuck in
>> mem_cgroup_reparent_charges(), unable to bring non-kmem usage down to 0.
>>
>> There may turn out to be several causes, but a major cause is this: the
>> workitem to offline parent can get run before workitem to offline child;
>> parent's mem_cgroup_reparent_charges() circles around waiting for the
>> child's pages to be reparented to its lrus, but it's holding cgroup_mutex
>> which prevents the child from reaching its mem_cgroup_reparent_charges().
>>
>> Just use an ordered workqueue for cgroup_destroy_wq.
>>
>> tj: Committing as the temporary fix until the reverse dependency can
>> be removed from memcg. Comment updated accordingly.
>>
>> Fixes: e5fca243abae ("cgroup: use a dedicated workqueue for cgroup destruction")
>> Suggested-by: Filipe Brandenburger <filbranden@xxxxxxxxxx>
>> Signed-off-by: Hugh Dickins <hughd@xxxxxxxxxx>
>> Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
>> Signed-off-by: Jiri Slaby <jslaby@xxxxxxx>
>
> Deja vu, it won't lie down! See your mailbox of 2016-11-25..28:
>
> No, please drop this one. It was indeed marked for stable at the time,
> but then reverted by 1a11533fbd71792e8c5d36f6763fbce8df0d231d; and you
> already have in 3.12-stable the commit which in the end we used to fix
> the issue, 4fb1a86fb5e4209a7d4426d4e586c58e9edc74ac
> "memcg: reparent charges of children before processing parent".

Hmm, right. If only people stopped asking me to pick it. Dropped and
blacklisted. Thanks!

--
js
suse labs