• Tejun Heo's avatar
    sched_ext, scx_qmap: Add and use SCX_ENQ_CPU_SELECTED · 9b671793
    Tejun Heo authored
    scx_qmap and other schedulers in the SCX repo are using SCX_ENQ_WAKEUP to
    tell whether ops.select_cpu() was called. This is incorrect as
    ops.select_cpu() can be skipped in the wakeup path and leads to e.g.
    incorrectly skipping direct dispatch for tasks that are bound to a single
    CPU.
    
    sched core has been updated to specify ENQUEUE_RQ_SELECTED if
    ->select_task_rq() was called. Map it to SCX_ENQ_CPU_SELECTED and update
    scx_qmap to test it instead of SCX_ENQ_WAKEUP.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Acked-by: default avatarDavid Vernet <void@manifault.com>
    Cc: Daniel Hodges <hodges.daniel.scott@gmail.com>
    Cc: Changwoo Min <multics69@gmail.com>
    Cc: Andrea Righi <andrea.righi@linux.dev>
    Cc: Dan Schatzberg <schatzberg.dan@gmail.com>
    9b671793
ext.c 204 KB