From: Tejun Heo <tj@kernel.org>
To: Hugh Dickins <hughd@google.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>,
Filipe Brandenburger <filbranden@google.com>,
Li Zefan <lizefan@huawei.com>,
Andrew Morton <akpm@linux-foundation.org>,
Michal Hocko <mhocko@suse.cz>, Greg Thelen <gthelen@google.com>,
Michel Lespinasse <walken@google.com>,
Markus Blank-Burian <burian@muenster.de>,
Shawn Bohrer <shawn.bohrer@gmail.com>,
cgroups@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-mm@kvack.org
Subject: [PATCH] Revert "cgroup: use an ordered workqueue for cgroup destruction"
Date: Wed, 12 Feb 2014 19:09:39 -0500 [thread overview]
Message-ID: <20140213000939.GA2916@htj.dyndns.org> (raw)
In-Reply-To: <alpine.LSU.2.11.1402121417230.5029@eggly.anvils>
From 1a11533fbd71792e8c5d36f6763fbce8df0d231d Mon Sep 17 00:00:00 2001
From: Tejun Heo <tj@kernel.org>
Date: Wed, 12 Feb 2014 19:06:19 -0500
This reverts commit ab3f5faa6255a0eb4f832675507d9e295ca7e9ba.
Explanation from Hugh:
It's because more thorough testing, by others here, found that it
wasn't always solving the problem: so I asked Tejun privately to
hold off from sending it in, until we'd worked out why not.
Most of our testing being on a v3,11-based kernel, it was perfectly
possible that the problem was merely our own e.g. missing Tejun's
8a2b75384444 ("workqueue: fix ordered workqueues in NUMA setups").
But that turned out not to be enough to fix it either. Then Filipe
pointed out how percpu_ref_kill_and_confirm() uses call_rcu_sched()
before we ever get to put the offline on to the workqueue: by the
time we get to the workqueue, the ordering has already been lost.
So, thanks for the Acks, but I'm afraid that this ordered workqueue
solution is just not good enough: we should simply forget that patch
and provide a different answer."
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Hugh Dickins <hughd@google.com>
---
Queued to cgroup/for-3.14-fixes.
Thanks.
kernel/cgroup.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/kernel/cgroup.c b/kernel/cgroup.c
index 52719ce..68d8710 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
@@ -4844,16 +4844,12 @@ static int __init cgroup_wq_init(void)
/*
* There isn't much point in executing destruction path in
* parallel. Good chunk is serialized with cgroup_mutex anyway.
- *
- * XXX: Must be ordered to make sure parent is offlined after
- * children. The ordering requirement is for memcg where a
- * parent's offline may wait for a child's leading to deadlock. In
- * the long term, this should be fixed from memcg side.
+ * Use 1 for @max_active.
*
* We would prefer to do this in cgroup_init() above, but that
* is called before init_workqueues(): so leave this until after.
*/
- cgroup_destroy_wq = alloc_ordered_workqueue("cgroup_destroy", 0);
+ cgroup_destroy_wq = alloc_workqueue("cgroup_destroy", 0, 1);
BUG_ON(!cgroup_destroy_wq);
/*
--
1.8.5.3
--
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>
WARNING: multiple messages have this Message-ID (diff)
From: Tejun Heo <tj@kernel.org>
To: Hugh Dickins <hughd@google.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>,
Filipe Brandenburger <filbranden@google.com>,
Li Zefan <lizefan@huawei.com>,
Andrew Morton <akpm@linux-foundation.org>,
Michal Hocko <mhocko@suse.cz>, Greg Thelen <gthelen@google.com>,
Michel Lespinasse <walken@google.com>,
Markus Blank-Burian <burian@muenster.de>,
Shawn Bohrer <shawn.bohrer@gmail.com>,
cgroups@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-mm@kvack.org
Subject: [PATCH] Revert "cgroup: use an ordered workqueue for cgroup destruction"
Date: Wed, 12 Feb 2014 19:09:39 -0500 [thread overview]
Message-ID: <20140213000939.GA2916@htj.dyndns.org> (raw)
In-Reply-To: <alpine.LSU.2.11.1402121417230.5029@eggly.anvils>
WARNING: multiple messages have this Message-ID (diff)
From: Tejun Heo <tj@kernel.org>
To: Hugh Dickins <hughd@google.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>,
Filipe Brandenburger <filbranden@google.com>,
Li Zefan <lizefan@huawei.com>,
Andrew Morton <akpm@linux-foundation.org>,
Michal Hocko <mhocko@suse.cz>, Greg Thelen <gthelen@google.com>,
Michel Lespinasse <walken@google.com>,
Markus Blank-Burian <burian@muenster.de>,
Shawn Bohrer <shawn.bohrer@gmail.com>,
cgroups@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-mm@kvack.org
Subject: [PATCH] Revert "cgroup: use an ordered workqueue for cgroup destruction"
Date: Wed, 12 Feb 2014 19:09:39 -0500 [thread overview]
Message-ID: <20140213000939.GA2916@htj.dyndns.org> (raw)
In-Reply-To: <alpine.LSU.2.11.1402121417230.5029@eggly.anvils>
>From 1a11533fbd71792e8c5d36f6763fbce8df0d231d Mon Sep 17 00:00:00 2001
From: Tejun Heo <tj@kernel.org>
Date: Wed, 12 Feb 2014 19:06:19 -0500
This reverts commit ab3f5faa6255a0eb4f832675507d9e295ca7e9ba.
Explanation from Hugh:
It's because more thorough testing, by others here, found that it
wasn't always solving the problem: so I asked Tejun privately to
hold off from sending it in, until we'd worked out why not.
Most of our testing being on a v3,11-based kernel, it was perfectly
possible that the problem was merely our own e.g. missing Tejun's
8a2b75384444 ("workqueue: fix ordered workqueues in NUMA setups").
But that turned out not to be enough to fix it either. Then Filipe
pointed out how percpu_ref_kill_and_confirm() uses call_rcu_sched()
before we ever get to put the offline on to the workqueue: by the
time we get to the workqueue, the ordering has already been lost.
So, thanks for the Acks, but I'm afraid that this ordered workqueue
solution is just not good enough: we should simply forget that patch
and provide a different answer."
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Hugh Dickins <hughd@google.com>
---
Queued to cgroup/for-3.14-fixes.
Thanks.
kernel/cgroup.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/kernel/cgroup.c b/kernel/cgroup.c
index 52719ce..68d8710 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
@@ -4844,16 +4844,12 @@ static int __init cgroup_wq_init(void)
/*
* There isn't much point in executing destruction path in
* parallel. Good chunk is serialized with cgroup_mutex anyway.
- *
- * XXX: Must be ordered to make sure parent is offlined after
- * children. The ordering requirement is for memcg where a
- * parent's offline may wait for a child's leading to deadlock. In
- * the long term, this should be fixed from memcg side.
+ * Use 1 for @max_active.
*
* We would prefer to do this in cgroup_init() above, but that
* is called before init_workqueues(): so leave this until after.
*/
- cgroup_destroy_wq = alloc_ordered_workqueue("cgroup_destroy", 0);
+ cgroup_destroy_wq = alloc_workqueue("cgroup_destroy", 0, 1);
BUG_ON(!cgroup_destroy_wq);
/*
--
1.8.5.3
next prev parent reply other threads:[~2014-02-13 0:09 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-06 23:56 [PATCH] cgroup: use an ordered workqueue for cgroup destruction Hugh Dickins
2014-02-06 23:56 ` Hugh Dickins
2014-02-06 23:56 ` Hugh Dickins
2014-02-07 14:04 ` Tejun Heo
2014-02-07 14:04 ` Tejun Heo
2014-02-07 14:37 ` Michal Hocko
2014-02-07 14:37 ` Michal Hocko
[not found] ` <20140207143740.GD5121-2MMpYkNvuYDjFM9bn6wA6Q@public.gmane.org>
2014-02-07 15:13 ` Tejun Heo
2014-02-07 15:13 ` Tejun Heo
2014-02-07 15:13 ` Tejun Heo
2014-02-07 15:28 ` Michal Hocko
2014-02-07 15:28 ` Michal Hocko
[not found] ` <20140207140402.GA3304-Gd/HAXX7CRxy/B6EtB590w@public.gmane.org>
2014-02-07 20:20 ` Hugh Dickins
2014-02-07 20:20 ` Hugh Dickins
2014-02-07 20:20 ` Hugh Dickins
2014-02-07 20:35 ` Tejun Heo
2014-02-07 20:35 ` Tejun Heo
2014-02-07 21:06 ` Hugh Dickins
2014-02-07 21:06 ` Hugh Dickins
2014-02-07 15:21 ` Tejun Heo
2014-02-07 15:21 ` Tejun Heo
[not found] ` <alpine.LSU.2.11.1402061541560.31342-fupSdm12i1nKWymIFiNcPA@public.gmane.org>
2014-02-07 13:45 ` Michal Hocko
2014-02-07 13:45 ` Michal Hocko
2014-02-07 13:45 ` Michal Hocko
2014-02-07 16:43 ` Johannes Weiner
2014-02-07 16:43 ` Johannes Weiner
2014-02-07 16:43 ` Johannes Weiner
[not found] ` <20140207164321.GE6963-druUgvl0LCNAfugRpC6u6w@public.gmane.org>
2014-02-10 15:46 ` Michal Hocko
2014-02-10 15:46 ` Michal Hocko
2014-02-10 15:46 ` Michal Hocko
2014-02-12 22:59 ` Hugh Dickins
2014-02-12 22:59 ` Hugh Dickins
2014-02-12 22:59 ` Hugh Dickins
[not found] ` <alpine.LSU.2.11.1402121417230.5029-fupSdm12i1nKWymIFiNcPA@public.gmane.org>
2014-02-12 23:06 ` [PATCH 2/2] cgroup: bring back kill_cnt to order css destruction Hugh Dickins
2014-02-12 23:06 ` Hugh Dickins
2014-02-12 23:06 ` Hugh Dickins
2014-02-13 0:28 ` Tejun Heo
2014-02-13 0:28 ` Tejun Heo
2014-02-13 0:38 ` Hugh Dickins
2014-02-13 0:38 ` Hugh Dickins
2014-02-13 0:09 ` Tejun Heo [this message]
2014-02-13 0:09 ` [PATCH] Revert "cgroup: use an ordered workqueue for cgroup destruction" Tejun Heo
2014-02-13 0:09 ` Tejun Heo
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=20140213000939.GA2916@htj.dyndns.org \
--to=tj@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=burian@muenster.de \
--cc=cgroups@vger.kernel.org \
--cc=filbranden@google.com \
--cc=gthelen@google.com \
--cc=hannes@cmpxchg.org \
--cc=hughd@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lizefan@huawei.com \
--cc=mhocko@suse.cz \
--cc=shawn.bohrer@gmail.com \
--cc=walken@google.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.