lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 22 Jun 2020 10:29:29 -0700 From: Shakeel Butt <shakeelb@...gle.com> To: Roman Gushchin <guro@...com> Cc: Andrew Morton <akpm@...ux-foundation.org>, Christoph Lameter <cl@...ux.com>, Johannes Weiner <hannes@...xchg.org>, Michal Hocko <mhocko@...nel.org>, Linux MM <linux-mm@...ck.org>, Vlastimil Babka <vbabka@...e.cz>, Kernel Team <kernel-team@...com>, LKML <linux-kernel@...r.kernel.org> Subject: Re: [PATCH v6 13/19] mm: memcg/slab: simplify memcg cache creation On Mon, Jun 8, 2020 at 4:07 PM Roman Gushchin <guro@...com> wrote: > > 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@...com> > Reviewed-by: Vlastimil Babka <vbabka@...e.cz> Why not pre-allocate the non-root kmem_cache at the kmem_cache creation time? No need for work_struct, queue_work() or cancel_work_sync() at all.
Powered by blists - more mailing lists