• Tejun Heo's avatar
    sched_ext: Use sched_clock_cpu() instead of rq_clock_task() in touch_core_sched() · 62607d03
    Tejun Heo authored
    Since 3cf78c5d ("sched_ext: Unpin and repin rq lock from
    balance_scx()"), sched_ext's balance path terminates rq_pin in the outermost
    function. This is simpler and in line with what other balance functions are
    doing but it loses control over rq->clock_update_flags which makes
    assert_clock_udpated() trigger if other CPUs pins the rq lock.
    
    The only place this matters is touch_core_sched() which uses the timestamp
    to order tasks from sibling rq's. Switch to sched_clock_cpu(). Later, it may
    be better to use per-core dispatch sequence number.
    
    v2: Use sched_clock_cpu() instead of ktime_get_ns() per David.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Fixes: 3cf78c5d ("sched_ext: Unpin and repin rq lock from balance_scx()")
    Acked-by: default avatarDavid Vernet <void@manifault.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    62607d03
ext.c 184 KB