Task Scheduler - Tasks scheduled as 'realtime' aren't accounted for when the kernel is balancing tasks across cores

Solution Verified - Updated -

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 of over 48,000 articles and solutions.

Current Customers and Partners

Log in for full access

Log In