Lines Matching refs:enq_flags
289 void (*enqueue)(struct task_struct *p, u64 enq_flags);
365 void (*runnable)(struct task_struct *p, u64 enq_flags);
1000 u64 enq_flags; member
1853 u64 enq_flags) in dispatch_enqueue() argument
1873 (enq_flags & SCX_ENQ_DSQ_PRIQ))) { in dispatch_enqueue()
1882 enq_flags &= ~SCX_ENQ_DSQ_PRIQ; in dispatch_enqueue()
1885 if (enq_flags & SCX_ENQ_DSQ_PRIQ) { in dispatch_enqueue()
1920 if (enq_flags & (SCX_ENQ_HEAD | SCX_ENQ_PREEMPT)) in dispatch_enqueue()
1946 if (enq_flags & SCX_ENQ_CLEAR_OPSS) in dispatch_enqueue()
1953 if ((enq_flags & SCX_ENQ_PREEMPT) && p != rq->curr && in dispatch_enqueue()
2066 u64 enq_flags) in mark_direct_dispatch() argument
2091 p->scx.ddsp_enq_flags = enq_flags; in mark_direct_dispatch()
2094 static void direct_dispatch(struct task_struct *p, u64 enq_flags) in direct_dispatch() argument
2102 p->scx.ddsp_enq_flags |= enq_flags; in direct_dispatch()
2154 static void do_enqueue_task(struct rq *rq, struct task_struct *p, u64 enq_flags, in do_enqueue_task() argument
2209 SCX_CALL_OP_TASK(SCX_KF_ENQUEUE, enqueue, rq, p, enq_flags); in do_enqueue_task()
2223 direct_dispatch(p, enq_flags); in do_enqueue_task()
2236 dispatch_enqueue(&rq->scx.local_dsq, p, enq_flags); in do_enqueue_task()
2243 dispatch_enqueue(find_global_dsq(p), p, enq_flags); in do_enqueue_task()
2274 static void enqueue_task_scx(struct rq *rq, struct task_struct *p, int enq_flags) in enqueue_task_scx() argument
2278 if (enq_flags & ENQUEUE_WAKEUP) in enqueue_task_scx()
2281 enq_flags |= rq->scx.extra_enq_flags; in enqueue_task_scx()
2292 if (unlikely(enq_flags & ENQUEUE_RESTORE) && task_current(rq, p)) in enqueue_task_scx()
2306 SCX_CALL_OP_TASK(SCX_KF_REST, runnable, rq, p, enq_flags); in enqueue_task_scx()
2308 if (enq_flags & SCX_ENQ_WAKEUP) in enqueue_task_scx()
2311 do_enqueue_task(rq, p, enq_flags, sticky_cpu); in enqueue_task_scx()
2315 if ((enq_flags & SCX_ENQ_CPU_SELECTED) && in enqueue_task_scx()
2429 static void move_local_task_to_local_dsq(struct task_struct *p, u64 enq_flags, in move_local_task_to_local_dsq() argument
2441 if (enq_flags & (SCX_ENQ_HEAD | SCX_ENQ_PREEMPT)) in move_local_task_to_local_dsq()
2460 static void move_remote_task_to_local_dsq(struct task_struct *p, u64 enq_flags, in move_remote_task_to_local_dsq() argument
2480 dst_rq->scx.extra_enq_flags = enq_flags; in move_remote_task_to_local_dsq()
2616 static inline void move_remote_task_to_local_dsq(struct task_struct *p, u64 enq_flags, struct rq *s… in move_remote_task_to_local_dsq() argument
2636 static struct rq *move_task_between_dsqs(struct task_struct *p, u64 enq_flags, in move_task_between_dsqs() argument
2666 move_local_task_to_local_dsq(p, enq_flags, in move_task_between_dsqs()
2671 move_remote_task_to_local_dsq(p, enq_flags, in move_task_between_dsqs()
2683 dispatch_enqueue(dst_dsq, p, enq_flags); in move_task_between_dsqs()
2783 struct task_struct *p, u64 enq_flags) in dispatch_to_local_dsq() argument
2798 dispatch_enqueue(dst_dsq, p, enq_flags | SCX_ENQ_CLEAR_OPSS); in dispatch_to_local_dsq()
2806 enq_flags | SCX_ENQ_CLEAR_OPSS); in dispatch_to_local_dsq()
2843 dispatch_enqueue(&dst_rq->scx.local_dsq, p, enq_flags); in dispatch_to_local_dsq()
2845 move_remote_task_to_local_dsq(p, enq_flags, in dispatch_to_local_dsq()
2887 u64 dsq_id, u64 enq_flags) in finish_dispatch() argument
2941 dispatch_to_local_dsq(rq, dsq, p, enq_flags); in finish_dispatch()
2943 dispatch_enqueue(dsq, p, enq_flags | SCX_ENQ_CLEAR_OPSS); in finish_dispatch()
2955 ent->enq_flags); in flush_dispatch_buf()
5752 static void sched_ext_ops__enqueue(struct task_struct *p, u64 enq_flags) {} in sched_ext_ops__enqueue() argument
5753 static void sched_ext_ops__dequeue(struct task_struct *p, u64 enq_flags) {} in sched_ext_ops__dequeue() argument
5756 static void sched_ext_ops__runnable(struct task_struct *p, u64 enq_flags) {} in sched_ext_ops__runnable() argument
6104 static bool scx_dsq_insert_preamble(struct task_struct *p, u64 enq_flags) in scx_dsq_insert_preamble() argument
6116 if (unlikely(enq_flags & __SCX_ENQ_INTERNAL_MASK)) { in scx_dsq_insert_preamble()
6117 scx_ops_error("invalid enq_flags 0x%llx", enq_flags); in scx_dsq_insert_preamble()
6125 u64 enq_flags) in scx_dsq_insert_commit() argument
6132 mark_direct_dispatch(ddsp_task, p, dsq_id, enq_flags); in scx_dsq_insert_commit()
6145 .enq_flags = enq_flags, in scx_dsq_insert_commit()
6186 u64 enq_flags) in scx_bpf_dsq_insert() argument
6188 if (!scx_dsq_insert_preamble(p, enq_flags)) in scx_bpf_dsq_insert()
6196 scx_dsq_insert_commit(p, dsq_id, enq_flags); in scx_bpf_dsq_insert()
6201 u64 enq_flags) in scx_bpf_dispatch() argument
6204 scx_bpf_dsq_insert(p, dsq_id, slice, enq_flags); in scx_bpf_dispatch()
6229 u64 slice, u64 vtime, u64 enq_flags) in scx_bpf_dsq_insert_vtime() argument
6231 if (!scx_dsq_insert_preamble(p, enq_flags)) in scx_bpf_dsq_insert_vtime()
6241 scx_dsq_insert_commit(p, dsq_id, enq_flags | SCX_ENQ_DSQ_PRIQ); in scx_bpf_dsq_insert_vtime()
6246 u64 slice, u64 vtime, u64 enq_flags) in scx_bpf_dispatch_vtime() argument
6249 scx_bpf_dsq_insert_vtime(p, dsq_id, slice, vtime, enq_flags); in scx_bpf_dispatch_vtime()
6267 struct task_struct *p, u64 dsq_id, u64 enq_flags) in scx_dsq_move() argument
6334 locked_rq = move_task_between_dsqs(p, enq_flags, src_dsq, dst_dsq); in scx_dsq_move()
6515 u64 enq_flags) in scx_bpf_dsq_move() argument
6518 p, dsq_id, enq_flags); in scx_bpf_dsq_move()
6524 u64 enq_flags) in scx_bpf_dispatch_from_dsq() argument
6527 return scx_bpf_dsq_move(it__iter, p, dsq_id, enq_flags); in scx_bpf_dispatch_from_dsq()
6549 u64 enq_flags) in scx_bpf_dsq_move_vtime() argument
6552 p, dsq_id, enq_flags | SCX_ENQ_DSQ_PRIQ); in scx_bpf_dsq_move_vtime()
6558 u64 enq_flags) in scx_bpf_dispatch_vtime_from_dsq() argument
6561 return scx_bpf_dsq_move_vtime(it__iter, p, dsq_id, enq_flags); in scx_bpf_dispatch_vtime_from_dsq()