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
55655565 int __init workqueue_init_early(void)
55665566 {
55675567 int std_nice[NR_STD_WORKER_POOLS] = { 0, HIGHPRI_NICE_LEVEL };
5568+ int hk_flags = HK_FLAG_DOMAIN | HK_FLAG_WQ;
55685569 int i, cpu;
55695570
55705571 WARN_ON(__alignof__(struct pool_workqueue) < __alignof__(long long));
55715572
55725573 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));
55745575
55755576 pwq_cache = KMEM_CACHE(pool_workqueue, SLAB_PANIC);
55765577