Files
linux/include/linux
Roman Gushchin d797b7d054 mm: memcg/slab: simplify memcg cache creation
Because the number of non-root kmem_caches doesn't depend on the number of
memory cgroups anymore and is generally not very big, there is no more
need for a dedicated workqueue.

Also, as there is no more need to pass any arguments to the
memcg_create_kmem_cache() except the root kmem_cache, it's possible to
just embed the work structure into the kmem_cache and avoid the dynamic
allocation of the work structure.

This will also simplify the synchronization: for each root kmem_cache
there is only one work.  So there will be no more concurrent attempts to
create a non-root kmem_cache for a root kmem_cache: the second and all
following attempts to queue the work will fail.

On the kmem_cache destruction path there is no more need to call the
expensive flush_workqueue() and wait for all pending works to be finished.
Instead, cancel_work_sync() can be used to cancel/wait for only one work.

Signed-off-by: Roman Gushchin <guro@fb.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Reviewed-by: Vlastimil Babka <vbabka@suse.cz>
Reviewed-by: Shakeel Butt <shakeelb@google.com>
Cc: Christoph Lameter <cl@linux.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Tejun Heo <tj@kernel.org>
Link: http://lkml.kernel.org/r/20200623174037.3951353-14-guro@fb.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2020-08-07 11:33:25 -07:00
..
2020-08-03 18:19:23 -07:00
2020-06-25 22:25:13 -07:00
2020-06-16 14:19:57 +02:00
2020-07-27 14:55:22 +01:00
2020-05-24 20:48:11 +02:00
2020-07-21 08:24:52 -05:00
2020-07-08 10:48:35 -07:00
2020-07-21 13:26:26 -07:00
2020-05-19 09:40:29 -06:00
2020-04-10 15:36:21 -07:00
2020-06-24 17:08:31 +02:00
2020-05-13 08:44:35 -07:00
2020-03-09 11:12:19 +01:00
2020-06-16 19:25:20 +02:00
2020-05-04 11:19:58 -07:00
2020-01-18 09:19:18 -05:00
2020-06-17 00:07:38 +02:00
2020-08-07 11:33:24 -07:00
2020-03-06 11:06:15 +01:00
2020-05-28 07:59:45 -07:00
2020-07-24 17:12:41 -07:00
2020-04-30 12:54:01 -07:00
2020-07-24 17:12:41 -07:00
2020-05-18 10:30:21 +01:00
2020-06-26 10:01:08 -06:00
2020-06-02 15:15:46 +01:00
2020-07-02 15:51:48 +02:00
2020-05-08 18:18:11 +01:00
2020-05-08 00:12:42 +02:00
2020-05-28 10:31:09 +02:00
2020-03-06 11:56:59 +01:00
2020-04-07 10:43:38 -07:00
2020-07-31 18:08:59 +10:00
2020-03-21 16:00:24 +01:00
2020-07-24 15:41:54 -07:00
2020-01-15 10:54:33 -05:00
2020-05-09 13:57:12 +02:00
2020-07-01 10:49:02 +02:00
2020-07-23 17:34:18 +10:00
2020-04-02 09:35:27 -07:00
2020-05-15 13:51:28 -07:00
2020-05-09 13:57:12 +02:00
2020-07-16 23:19:51 +02:00
2020-02-21 10:31:18 +01:00
2020-07-20 09:39:11 +02:00
2020-08-07 11:33:24 -07:00
2020-05-17 14:10:07 -06:00
2020-05-14 16:44:24 +02:00
2020-05-04 09:16:37 -07:00
2020-05-29 14:52:53 +02:00
2020-07-04 09:35:36 -05:00
2020-01-14 12:20:48 +01:00
2020-07-07 11:58:59 -05:00
2020-04-01 12:06:26 -04:00
2020-04-17 06:05:30 -04:00
2020-06-26 00:27:38 -07:00