Colin Cross
befae2f2c9
cgroup: Remove call to synchronize_rcu in cgroup_attach_task
...
synchronize_rcu can be very expensive, averaging 100 ms in
some cases. In cgroup_attach_task, it is used to prevent
a task->cgroups pointer dereferenced in an RCU read side
critical section from being invalidated, by delaying the
call to put_css_set until after an RCU grace period.
To avoid the call to synchronize_rcu, make the put_css_set
call rcu-safe by moving the deletion of the css_set links
into free_css_set_work, scheduled by the rcu callback
free_css_set_rcu.
The decrement of the cgroup refcount is no longer
synchronous with the call to put_css_set, which can result
in the cgroup refcount staying positive after the last call
to cgroup_attach_task returns. To allow the cgroup to be
deleted with cgroup_rmdir synchronously after
cgroup_attach_task, have rmdir check the refcount of all
associated css_sets. If cgroup_rmdir is called on a cgroup
for which the css_sets all have refcount zero but the
cgroup refcount is nonzero, reuse the rmdir waitqueue to
block the rmdir until free_css_set_work is called.
Signed-off-by: Colin Cross <ccross@android.com >
Conflicts:
kernel/cgroup.c
Change-Id: I3b3f245c8f5e2e5d33f1e54178b2bb6ef10a0817
2012-04-09 13:53:12 -07:00
..
2012-03-29 15:34:57 -07:00
2012-03-28 10:01:29 -07:00
2012-03-27 00:37:23 +01:00
2012-03-28 13:56:35 -07:00
2012-03-17 12:20:44 -07:00
2012-03-30 16:09:02 -07:00
2012-03-24 10:41:37 -07:00
2012-03-28 20:59:45 -07:00
2012-03-30 17:31:56 -07:00
2012-03-26 21:06:30 +02:00
2012-03-26 11:49:47 -04:00
2012-04-02 14:41:25 -07:00
2012-03-26 20:41:01 +04:00
2012-04-04 10:09:30 -07:00
2012-03-28 12:34:33 -07:00
2012-03-24 10:08:39 -07:00
2012-03-26 11:48:54 -04:00
2012-03-15 12:42:07 -07:00
2012-03-16 10:38:24 -04:00
2012-03-30 16:45:39 -07:00
2012-03-22 09:31:55 -04:00
2012-03-24 10:41:37 -07:00
2012-03-16 10:38:24 -04:00
2012-03-20 21:29:40 -04:00
2012-03-20 21:29:46 -04:00
2012-03-24 10:08:39 -07:00
2012-03-23 16:58:34 -07:00
2012-03-16 10:38:24 -04:00
2012-03-24 10:41:37 -07:00
2012-04-09 13:53:12 -07:00
2012-03-16 20:35:02 +00:00
2012-03-16 20:35:02 +00:00
2012-03-16 20:35:01 +00:00
2012-03-28 18:30:03 +01:00
2012-03-21 17:54:56 -07:00
2012-03-29 18:12:23 -07:00
2012-03-23 16:58:36 -07:00
2012-03-24 10:41:37 -07:00
2012-03-24 10:41:37 -07:00
2012-03-30 03:23:30 -04:00
2012-03-29 15:38:31 +10:30
2012-03-29 14:46:05 -07:00
2012-03-16 10:38:24 -04:00
2012-03-23 16:58:38 -07:00
2012-03-24 10:08:39 -07:00
2012-03-29 19:52:48 +08:00
2012-03-20 21:29:37 -04:00
2012-03-28 15:58:21 -07:00
2012-03-20 21:29:53 -04:00
2012-03-17 21:51:34 +01:00
2012-03-21 18:55:10 -07:00
2012-03-28 16:36:44 +02:00
2012-03-28 15:02:41 -07:00
2012-04-04 17:13:43 -07:00
2012-03-29 15:34:57 -07:00
2012-03-28 14:24:40 -07:00
2012-03-28 18:30:03 +01:00
2012-04-06 02:43:12 -04:00
2012-03-31 16:03:16 -04:00
2012-03-24 10:41:37 -07:00
2012-03-20 21:29:32 -04:00
2012-03-18 22:15:39 +01:00
2012-04-02 14:41:27 -07:00
2012-04-05 15:30:34 -07:00
2012-03-19 17:56:18 -07:00
2012-03-28 14:08:46 -07:00
2012-03-24 10:08:39 -07:00
2012-03-21 17:55:02 -07:00
2012-03-21 17:54:59 -07:00
2012-03-16 10:38:24 -04:00
2012-03-16 10:38:24 -04:00
2012-03-16 10:38:24 -04:00
2012-03-16 13:36:04 -07:00
2012-03-26 21:47:19 +02:00
2012-03-26 21:47:19 +02:00
2012-03-26 21:47:19 +02:00
2012-03-26 21:47:19 +02:00
2012-03-26 21:47:19 +02:00
2012-03-26 21:47:19 +02:00
2012-03-28 15:58:21 -07:00
2012-03-27 22:45:26 -04:00
2012-03-24 10:08:39 -07:00
2012-03-16 23:00:20 -07:00
2012-03-21 17:54:59 -07:00
2012-03-28 18:30:03 +01:00
2012-03-16 10:38:24 -04:00
2012-03-16 10:38:24 -04:00
2012-03-16 10:38:24 -04:00
2012-04-02 09:50:40 -07:00
2012-03-21 17:54:57 -07:00
2012-04-09 13:53:09 -07:00
2012-03-23 08:53:47 -07:00
2012-03-29 17:41:25 -05:00
2012-03-28 23:30:28 +02:00
2012-03-28 14:35:31 -07:00
2012-03-23 16:58:35 -07:00
2012-03-23 16:58:34 -07:00
2012-03-28 18:30:03 +01:00
2012-03-23 16:58:33 -07:00
2012-03-26 20:40:59 +04:00
2012-04-03 09:49:59 -07:00
2012-03-23 16:58:31 -07:00
2012-03-16 10:38:24 -04:00
2012-03-15 21:41:34 +01:00
2012-03-21 17:55:02 -07:00
2012-03-21 17:54:57 -07:00
2012-03-28 17:19:28 -07:00
2012-03-21 17:54:56 -07:00
2012-03-27 16:30:09 -07:00
2012-03-26 12:50:52 +10:30
2012-03-26 12:50:51 +10:30
2012-03-27 08:26:34 +01:00
2012-04-03 17:23:23 -04:00
2012-03-26 11:48:54 -04:00
2012-03-21 09:31:44 -04:00
2012-03-17 11:09:33 -04:00
2012-03-21 09:31:46 -04:00
2012-03-23 16:58:31 -07:00
2012-03-24 10:41:37 -07:00
2012-03-28 14:41:36 -07:00
2012-03-21 17:54:58 -07:00
2012-03-16 10:38:24 -04:00
2012-03-21 17:55:01 -07:00
2012-03-24 10:08:39 -07:00
2012-03-28 18:30:03 +01:00
2012-03-23 14:02:12 -07:00
2012-03-24 08:46:59 +01:00
2012-03-16 10:38:24 -04:00
2012-03-28 17:14:36 -07:00
2012-03-23 16:58:31 -07:00
2012-03-24 10:41:37 -07:00
2012-03-28 23:31:24 +02:00
2012-03-16 21:49:24 +01:00
2012-03-23 16:58:38 -07:00
2012-03-16 10:38:24 -04:00
2012-03-23 16:58:32 -07:00
2012-03-20 11:16:20 -07:00
2012-03-24 10:08:39 -07:00
2012-03-20 21:29:38 -04:00
2012-03-28 17:14:37 -07:00
2012-03-24 10:08:39 -07:00
2012-03-24 10:41:37 -07:00
2012-03-24 10:08:39 -07:00
2012-03-20 21:29:43 -04:00
2012-03-20 21:29:42 -04:00
2012-03-16 10:38:24 -04:00
2012-03-16 10:38:24 -04:00
2012-03-21 17:54:57 -07:00
2012-03-15 18:23:10 -07:00
2012-03-28 18:30:03 +01:00
2012-03-28 15:58:21 -07:00
2012-03-21 13:25:04 -07:00
2012-03-24 10:08:39 -07:00
2012-03-16 10:38:24 -04:00
2012-03-28 15:58:21 -07:00
2012-03-28 15:04:26 -07:00
2012-03-28 17:14:35 -07:00
2012-03-19 16:53:08 -04:00
2012-04-05 19:04:27 -04:00
2012-03-23 13:18:57 +01:00
2012-03-28 15:58:21 -07:00
2012-03-28 18:30:03 +01:00
2012-04-05 15:25:51 -07:00
2012-03-29 18:12:23 -07:00
2012-03-22 19:43:43 -07:00
2012-03-20 21:29:40 -04:00
2012-03-23 16:58:40 -07:00
2012-03-28 18:30:03 +01:00
2012-03-19 15:33:24 -03:00
2012-03-27 16:30:09 -07:00
2012-03-31 08:09:50 +05:30
2012-03-28 18:30:03 +01:00
2012-03-27 20:15:37 +02:00