History

sched/isolation: Isolate workqueues when "nohz_full=" is set

As we prepare for offloading the residual 1hz scheduler ticks to workqueue, let's affine those to housekeepers so that they don't interrupt the CPUs that don't want to be disturbed.

Frederic Weisbecker committed 8 years ago

Commit 1bda3f81 parent 22ab8bc3 files · +5 −2Browse files

Showing the changes to kernel/workqueue.c (1 of 3 files). Show all

Unified · Split

kernel/workqueue.c+2−1
@@ -5565,12 +5565,13 @@ static void __init wq_numa_init(void) · 5564 unmodified lines
5565int __init workqueue_init_early(void)5565int __init workqueue_init_early(void)
5566{5566{
5567 int std_nice[NR_STD_WORKER_POOLS] = { 0, HIGHPRI_NICE_LEVEL };5567 int std_nice[NR_STD_WORKER_POOLS] = { 0, HIGHPRI_NICE_LEVEL };
5568 int hk_flags = HK_FLAG_DOMAIN | HK_FLAG_WQ;
5568 int i, cpu;5569 int i, cpu;
5569 5570
5570 WARN_ON(__alignof__(struct pool_workqueue) < __alignof__(long long));5571 WARN_ON(__alignof__(struct pool_workqueue) < __alignof__(long long));
5571 5572
5572 BUG_ON(!alloc_cpumask_var(&wq_unbound_cpumask, GFP_KERNEL));5573 BUG_ON(!alloc_cpumask_var(&wq_unbound_cpumask, GFP_KERNEL));
5573 cpumask_copy(wq_unbound_cpumask, housekeeping_cpumask(HK_FLAG_DOMAIN));5574 cpumask_copy(wq_unbound_cpumask, housekeeping_cpumask(hk_flags));
5574 5575
5575 pwq_cache = KMEM_CACHE(pool_workqueue, SLAB_PANIC);5576 pwq_cache = KMEM_CACHE(pool_workqueue, SLAB_PANIC);
5576 5577