Lines Matching defs:src_dsq
611 * @p could have already left $src_dsq, got re-enqueud, or be in the
2623 * @src_dsq: DSQ @p is currently on, must not be a local DSQ
2626 * Must be called with @p's task_rq and @src_dsq locked. If @dst_dsq is a local
2631 * On return, @src_dsq is unlocked and only @p's new task_rq, which is the
2636 struct scx_dispatch_q *src_dsq,
2641 BUG_ON(src_dsq->id == SCX_DSQ_LOCAL);
2642 lockdep_assert_held(&src_dsq->lock);
2667 scx_task_unlink_from_dsq(p, src_dsq);
2668 raw_spin_unlock(&src_dsq->lock);
2671 raw_spin_unlock(&src_dsq->lock);
2677 * $src_dsq is already locked, do an abbreviated dequeue.
2679 dispatch_dequeue_locked(p, src_dsq);
2680 raw_spin_unlock(&src_dsq->lock);
9158 struct scx_dispatch_q *src_dsq = kit->dsq, *dst_dsq;
9169 if (unlikely(!src_dsq))
9172 sch = src_dsq->sched;
9211 raw_spin_lock(&src_dsq->lock);
9214 if (nldsq_cursor_lost_task(&kit->cursor, src_rq, src_dsq, p)) {
9215 raw_spin_unlock(&src_dsq->lock);
9220 * @p has been on $src_dsq and can't move anymore. If @p is not on @sch,
9226 raw_spin_unlock(&src_dsq->lock);
9230 /* @p is still on $src_dsq and stable, determine the destination */
9234 * Apply vtime and slice updates before moving. @p is still on $src_dsq
9235 * with both $src_dsq and its task_rq locked, satisfying the write
9244 p_rq = move_task_between_dsqs(sch, p, enq_flags, src_dsq, dst_dsq);