Roman Gushchin
4e4d5cea79
cgroup: protect cgroup->nr_(dying_)descendants by css_set_lock
...
[ Upstream commit 4dcabece4c ]
The number of descendant cgroups and the number of dying
descendant cgroups are currently synchronized using the cgroup_mutex.
The number of descendant cgroups will be required by the cgroup v2
freezer, which will use it to determine if a cgroup is frozen
(depending on total number of descendants and number of frozen
descendants). It's not always acceptable to grab the cgroup_mutex,
especially from quite hot paths (e.g. exit()).
To avoid this, let's additionally synchronize these counters using
the css_set_lock.
So, it's safe to read these counters with either cgroup_mutex or
css_set_lock locked, and for changing both locks should be acquired.
Signed-off-by: Roman Gushchin <guro@fb.com >
Signed-off-by: Tejun Heo <tj@kernel.org >
Cc: kernel-team@fb.com
Signed-off-by: Sasha Levin <sashal@kernel.org >
2019-05-31 06:46:19 -07:00
..
2019-05-31 06:46:04 -07:00
2019-05-31 06:46:19 -07:00
2018-06-15 07:15:28 +09:00
2019-02-12 19:47:19 +01:00
2019-01-13 09:51:05 +01:00
2019-05-10 17:54:09 +02:00
2018-06-08 18:56:02 +09:00
2019-05-10 17:54:10 +02:00
2018-08-20 18:33:50 +02:00
2019-05-22 07:37:34 +02:00
2018-10-12 12:35:02 +02:00
2018-11-13 11:08:48 -08:00
2019-04-05 22:33:08 +02:00
2019-05-31 06:46:14 -07:00
2019-04-27 09:36:38 +02:00
2019-05-25 18:23:32 +02:00
2019-05-31 06:46:05 -07:00
2018-02-06 18:32:44 -08:00
2018-05-18 14:58:22 +02:00
2018-08-17 09:41:28 -07:00
2018-07-18 11:43:36 -04:00
2018-07-17 14:45:08 -04:00
2018-02-23 11:22:22 -05:00
2019-05-31 06:46:17 -07:00
2018-08-15 10:46:54 -07:00
2018-11-13 11:08:47 -08:00
2017-11-02 11:10:55 +01:00
2018-06-24 14:39:47 +02:00
2016-12-24 11:46:01 -08:00
2017-07-31 13:09:49 +02:00
2019-05-14 19:17:59 +02:00
2018-08-22 10:52:47 -07:00
2017-05-18 10:30:19 -06:00
2018-04-27 14:34:51 +02:00
2018-05-16 07:23:35 +02:00
2017-11-02 11:10:55 +01:00
2018-05-16 07:23:35 +02:00
2019-04-05 22:33:13 +02:00
2018-02-21 16:54:06 +01:00
2018-06-21 12:33:19 +02:00
2019-05-22 07:37:41 +02:00
2018-08-06 12:35:20 +02:00
2017-11-02 11:10:55 +01:00
2019-05-10 17:54:11 +02:00
2017-12-14 16:00:49 -08:00
2019-04-20 09:16:02 +02:00
2018-05-15 23:08:33 -07:00
2018-01-08 19:43:15 +01:00
2018-09-10 10:15:48 +02:00
2018-08-14 19:12:29 -03:00
2017-11-02 11:10:55 +01:00
2018-08-02 08:06:54 +09:00
2019-02-12 19:47:20 +01:00
2018-06-15 07:55:24 +09:00
2018-06-12 16:19:22 -07:00
2017-11-02 11:10:55 +01:00
2018-07-16 12:31:57 -07:00
2017-09-08 18:26:51 -07:00
2019-04-27 09:36:37 +02:00
2017-07-12 16:25:59 -07:00
2018-08-13 11:25:07 -07:00
2017-03-02 08:42:39 +01:00
2018-07-18 01:18:05 +09:00
2019-01-13 09:51:04 +01:00
2018-07-02 11:36:17 +02:00
2018-07-02 11:36:17 +02:00
2019-05-31 06:46:12 -07:00
2017-02-24 17:46:56 -08:00
2017-03-13 15:57:41 -03:00
2018-01-05 18:43:00 +11:00
2018-12-29 13:37:57 +01:00
2018-04-11 10:28:37 -07:00
2018-04-03 19:15:32 -07:00
2019-01-13 09:51:06 +01:00
2017-03-02 08:42:39 +01:00
2019-05-04 09:20:22 +02:00
2017-11-02 11:10:55 +01:00
2018-08-06 12:35:20 +02:00
2019-03-13 14:02:35 -07:00
2018-06-08 17:21:52 -07:00
2018-07-10 22:18:52 +02:00
2018-06-06 16:34:00 -07:00
2019-02-20 10:25:48 +01:00
2019-02-12 19:47:25 +01:00
2018-07-03 09:20:44 +02:00
2017-11-02 11:10:55 +01:00
2018-08-03 15:52:10 +02:00
2017-03-08 09:18:02 +01:00
2018-08-13 11:25:07 -07:00
2018-06-10 10:17:09 -07:00
2018-09-20 22:01:11 +02:00
2018-04-16 11:26:49 +02:00
2019-04-27 09:36:41 +02:00
2017-12-17 13:57:15 +01:00
2018-02-06 18:32:46 -08:00
2018-06-21 12:33:05 +02:00
2018-06-25 11:30:10 -07:00
2018-10-17 15:35:29 -04:00
2017-03-02 08:42:39 +01:00
2018-04-05 21:36:27 -07:00
2018-04-02 20:15:59 +02:00
2018-04-02 20:15:30 +02:00
2018-06-07 16:56:28 -04:00
2017-08-29 15:14:38 +02:00
2018-11-13 11:09:00 -08:00
2018-08-22 10:52:47 -07:00
2018-08-11 02:05:53 -05:00
2018-04-11 10:28:35 -07:00
2018-08-30 12:56:40 +02:00
2019-04-03 06:26:29 +02:00
2018-05-18 08:47:13 -07:00
2019-05-02 09:58:56 +02:00