With these patches, a kernel build on a 104-cpu machine took around 75% less wall time and 85% less system time. Note that there is a difference in v5.2-rt compared to v5.0-rt. The performance with these patches is similar in both cases, but without these patches v5.2-rt is substantially slower. In v5.0-rt with a previous version of these patches, lazy migrate disable reduced kernel build time by around 15-20% wall and 70-75% system. Scott Wood (8): sched: migrate_enable: Use sleeping_lock to indicate involuntary sleep sched: __set_cpus_allowed_ptr: Check cpus_mask, not cpus_ptr sched: Remove dead __migrate_disabled() check sched: migrate disable: Protect cpus_ptr with lock sched/deadline: Reclaim cpuset bandwidth in .migrate_task_rq() sched: migrate_enable: Set state to TASK_RUNNING sched: migrate_enable: Use select_fallback_rq() sched: Lazy migrate_disable processing include/linux/cpu.h | 4 - include/linux/sched.h | 15 ++-- init/init_task.c | 4 + kernel/cpu.c | 97 ++++++++--------------- kernel/rcu/tree_plugin.h | 2 +- kernel/sched/core.c | 200 +++++++++++++++++++---------------------------- kernel/sched/deadline.c | 67 ++++++++-------- kernel/sched/sched.h | 4 + lib/smp_processor_id.c | 3 + 9 files changed, 166 insertions(+), 230 deletions(-) -- 1.8.3.1