mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 03:24:45 +01:00
mm: add WQ_PERCPU to alloc_workqueue users
This continues the effort to refactor workqueue APIs, which began with the introduction of new workqueues and a new alloc_workqueue flag in: commit128ea9f6cc("workqueue: Add system_percpu_wq and system_dfl_wq") commit930c2ea566("workqueue: Add new WQ_PERCPU flag") The refactoring is going to alter the default behavior of alloc_workqueue() to be unbound by default. With the introduction of the WQ_PERCPU flag (equivalent to !WQ_UNBOUND), any alloc_workqueue() caller that doesn't explicitly specify WQ_UNBOUND must now use WQ_PERCPU. For more details see the Link tag below. In order to keep alloc_workqueue() behavior identical, explicitly request WQ_PERCPU. [akpm@linux-foundation.org: fix mm/slub.c] [akpm@linux-foundation.org: fix kmem_cache_init_late() properly, per Sebastian] Link: https://lore.kernel.org/all/20250221112003.1dSuoGyc@linutronix.de/ Link: https://lkml.kernel.org/r/20260113114630.152942-4-marco.crivellari@suse.com Signed-off-by: Marco Crivellari <marco.crivellari@suse.com> Suggested-by: Tejun Heo <tj@kernel.org> Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Reviewed-by: Frederic Weisbecker <frederic@kernel.org> Cc: Alexander Potapenko <glider@google.com> Cc: David Hildenbrand <david@kernel.org> Cc: Dmitry Vyukov <dvyukov@google.com> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Lai jiangshan <jiangshanlai@gmail.com> Cc: "Liam R. Howlett" <Liam.Howlett@oracle.com> Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com> Cc: Marco Elver <elver@google.com> Cc: Michal Hocko <mhocko@suse.com> Cc: Mike Rapoport <rppt@kernel.org> Cc: Muchun Song <muchun.song@linux.dev> Cc: Roman Gushchin <roman.gushchin@linux.dev> Cc: Shakeel Butt <shakeel.butt@linux.dev> Cc: Suren Baghdasaryan <surenb@google.com> Cc: Vlastimil Babka <vbabka@suse.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
73b2162126
commit
ed0a826ce3
3 changed files with 5 additions and 3 deletions
|
|
@ -974,7 +974,7 @@ static int __init cgwb_init(void)
|
|||
* system_percpu_wq. Put them in a separate wq and limit concurrency.
|
||||
* There's no point in executing many of these in parallel.
|
||||
*/
|
||||
cgwb_release_wq = alloc_workqueue("cgwb_release", 0, 1);
|
||||
cgwb_release_wq = alloc_workqueue("cgwb_release", WQ_PERCPU, 1);
|
||||
if (!cgwb_release_wq)
|
||||
return -ENOMEM;
|
||||
|
||||
|
|
|
|||
|
|
@ -8542,7 +8542,8 @@ void __init kmem_cache_init(void)
|
|||
|
||||
void __init kmem_cache_init_late(void)
|
||||
{
|
||||
flushwq = alloc_workqueue("slub_flushwq", WQ_MEM_RECLAIM, 0);
|
||||
flushwq = alloc_workqueue("slub_flushwq", WQ_MEM_RECLAIM | WQ_PERCPU,
|
||||
0);
|
||||
WARN_ON(!flushwq);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2259,7 +2259,8 @@ void __init init_mm_internals(void)
|
|||
{
|
||||
int ret __maybe_unused;
|
||||
|
||||
mm_percpu_wq = alloc_workqueue("mm_percpu_wq", WQ_MEM_RECLAIM, 0);
|
||||
mm_percpu_wq = alloc_workqueue("mm_percpu_wq",
|
||||
WQ_MEM_RECLAIM | WQ_PERCPU, 0);
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
ret = cpuhp_setup_state_nocalls(CPUHP_MM_VMSTAT_DEAD, "mm/vmstat:dead",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue