Task Scheduler - Tasks scheduled as 'realtime' aren't accounted for when the kernel is balancing tasks across cores
Issue
The SCHED_OTHER load balance function checks the load of the rq of each
CPU in order to define the idlest CPU to migrate a task. However, the
SCHED_FIFO and SCHED_RR threads does not contributes to the load of its
rq. So, it is possible that a CPU running a real-time task be selected
as the idlest CPU, even in the presence of other idle CPUs.
For example, it is possible that a CPU running a CPU intensive real-time
task be selected as the idlest CPU, and a fair thread be migrated to
this CPU. This will cause a long delay to the fair task. It will reflect
as loss of performance, and in the worst case it could impact system responsiveness.
Environment
Red Hat Enterprise Linux 6
Red Hat Enterprise Linux 7
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.