It seems that we are not updating is_idle when we find an idle CPU with pick_cpu(), causing unnecessary rescheduling events when select_cpu() is called.
To resolve this, ensure that the is_idle state is correctly set. Additionally, always ensure that the task is dispatched to the local DSQ immediately upon finding (and reserving) an idle CPU.
It seems that we are not updating
is_idle
when we find an idle CPU with pick_cpu(), causing unnecessary rescheduling events when select_cpu() is called.To resolve this, ensure that the is_idle state is correctly set. Additionally, always ensure that the task is dispatched to the local DSQ immediately upon finding (and reserving) an idle CPU.