Lines Matching defs:dst_rq
2394 u64 enq_flags, struct rq *dst_rq)
2396 struct scx_dispatch_q *dst_dsq = scx_resolve_local_dsq(sch, dst_rq, p, &enq_flags);
2398 lockdep_assert_rq_held(dst_rq);
2410 rq_owned_post_enq(sch, dst_rq, dst_dsq, p, enq_flags);
2419 * @dst_rq: rq to move the task into, locked on return
2421 * Move @p which is currently on @src_rq to @dst_rq's local DSQ.
2425 struct rq *src_rq, struct rq *dst_rq)
2433 p->scx.sticky_cpu = cpu_of(dst_rq);
2435 set_task_cpu(p, cpu_of(dst_rq));
2437 switch_rq_lock(src_rq, dst_rq);
2445 WARN_ON_ONCE(!cpumask_test_cpu(cpu_of(dst_rq), p->cpus_ptr));
2446 WARN_ON_ONCE(dst_rq->scx.remote_activate_enq_flags ||
2447 dst_rq->scx.remote_activate_sch);
2448 dst_rq->scx.remote_activate_enq_flags = enq_flags;
2449 dst_rq->scx.remote_activate_sch = sch;
2450 activate_task(dst_rq, p, 0);
2451 dst_rq->scx.remote_activate_enq_flags = 0;
2452 dst_rq->scx.remote_activate_sch = NULL;
2618 struct rq *src_rq = task_rq(p), *dst_rq;
2625 dst_rq = container_of(dst_dsq, struct rq, scx.local_dsq);
2626 if (src_rq != dst_rq &&
2627 unlikely(!task_can_run_on_remote_rq(sch, p, dst_rq, true))) {
2629 dst_rq = src_rq;
2634 dst_rq = src_rq;
2643 if (src_rq == dst_rq) {
2646 scx_move_local_task_to_local_dsq(sch, p, enq_flags, dst_rq);
2649 move_remote_task_to_local_dsq(sch, p, enq_flags, src_rq, dst_rq);
2659 scx_dispatch_enqueue(sch, dst_rq, dst_dsq, p, 0, 0, enq_flags);
2662 return dst_rq;
2741 struct rq *dst_rq = container_of(dst_dsq, struct rq, scx.local_dsq);
2750 if (rq == src_rq && rq == dst_rq) {
2787 if (src_rq == dst_rq) {
2789 scx_dispatch_enqueue(sch, dst_rq, &dst_rq->scx.local_dsq, p,
2791 } else if (unlikely(!task_can_run_on_remote_rq(sch, p, dst_rq, true))) {
2800 move_remote_task_to_local_dsq(sch, p, enq_flags, src_rq, dst_rq);
2801 /* task has been moved to dst_rq, which is now locked */
2802 locked_rq = dst_rq;
2806 if (!fallback && sched_class_above(p->sched_class, dst_rq->curr->sched_class))
2807 resched_curr(dst_rq);