Lines Matching refs:enq_flags
299 void (*enqueue)(struct task_struct *p, u64 enq_flags);
375 void (*runnable)(struct task_struct *p, u64 enq_flags);
1129 u64 enq_flags; member
1952 struct task_struct *p, u64 enq_flags) in dispatch_enqueue() argument
1972 (enq_flags & SCX_ENQ_DSQ_PRIQ))) { in dispatch_enqueue()
1981 enq_flags &= ~SCX_ENQ_DSQ_PRIQ; in dispatch_enqueue()
1984 if (enq_flags & SCX_ENQ_DSQ_PRIQ) { in dispatch_enqueue()
2019 if (enq_flags & (SCX_ENQ_HEAD | SCX_ENQ_PREEMPT)) in dispatch_enqueue()
2045 if (enq_flags & SCX_ENQ_CLEAR_OPSS) in dispatch_enqueue()
2052 if ((enq_flags & SCX_ENQ_PREEMPT) && p != rq->curr && in dispatch_enqueue()
2166 u64 enq_flags) in mark_direct_dispatch() argument
2191 p->scx.ddsp_enq_flags = enq_flags; in mark_direct_dispatch()
2195 u64 enq_flags) in direct_dispatch() argument
2203 p->scx.ddsp_enq_flags |= enq_flags; in direct_dispatch()
2256 static void do_enqueue_task(struct rq *rq, struct task_struct *p, u64 enq_flags, in do_enqueue_task() argument
2312 SCX_CALL_OP_TASK(sch, SCX_KF_ENQUEUE, enqueue, rq, p, enq_flags); in do_enqueue_task()
2326 direct_dispatch(sch, p, enq_flags); in do_enqueue_task()
2338 dispatch_enqueue(sch, &rq->scx.local_dsq, p, enq_flags); in do_enqueue_task()
2344 dispatch_enqueue(sch, find_global_dsq(p), p, enq_flags); in do_enqueue_task()
2375 static void enqueue_task_scx(struct rq *rq, struct task_struct *p, int enq_flags) in enqueue_task_scx() argument
2380 if (enq_flags & ENQUEUE_WAKEUP) in enqueue_task_scx()
2383 enq_flags |= rq->scx.extra_enq_flags; in enqueue_task_scx()
2394 if (unlikely(enq_flags & ENQUEUE_RESTORE) && task_current(rq, p)) in enqueue_task_scx()
2408 SCX_CALL_OP_TASK(sch, SCX_KF_REST, runnable, rq, p, enq_flags); in enqueue_task_scx()
2410 if (enq_flags & SCX_ENQ_WAKEUP) in enqueue_task_scx()
2413 do_enqueue_task(rq, p, enq_flags, sticky_cpu); in enqueue_task_scx()
2417 if ((enq_flags & SCX_ENQ_CPU_SELECTED) && in enqueue_task_scx()
2538 static void move_local_task_to_local_dsq(struct task_struct *p, u64 enq_flags, in move_local_task_to_local_dsq() argument
2550 if (enq_flags & (SCX_ENQ_HEAD | SCX_ENQ_PREEMPT)) in move_local_task_to_local_dsq()
2568 static void move_remote_task_to_local_dsq(struct task_struct *p, u64 enq_flags, in move_remote_task_to_local_dsq() argument
2588 dst_rq->scx.extra_enq_flags = enq_flags; in move_remote_task_to_local_dsq()
2743 struct task_struct *p, u64 enq_flags, in move_task_between_dsqs() argument
2773 move_local_task_to_local_dsq(p, enq_flags, in move_task_between_dsqs()
2778 move_remote_task_to_local_dsq(p, enq_flags, in move_task_between_dsqs()
2790 dispatch_enqueue(sch, dst_dsq, p, enq_flags); in move_task_between_dsqs()
2893 struct task_struct *p, u64 enq_flags) in dispatch_to_local_dsq() argument
2907 enq_flags | SCX_ENQ_CLEAR_OPSS); in dispatch_to_local_dsq()
2914 enq_flags | SCX_ENQ_CLEAR_OPSS); in dispatch_to_local_dsq()
2952 enq_flags); in dispatch_to_local_dsq()
2954 move_remote_task_to_local_dsq(p, enq_flags, in dispatch_to_local_dsq()
2994 u64 dsq_id, u64 enq_flags) in finish_dispatch() argument
3048 dispatch_to_local_dsq(sch, rq, dsq, p, enq_flags); in finish_dispatch()
3050 dispatch_enqueue(sch, dsq, p, enq_flags | SCX_ENQ_CLEAR_OPSS); in finish_dispatch()
3062 ent->enq_flags); in flush_dispatch_buf()
5980 static void sched_ext_ops__enqueue(struct task_struct *p, u64 enq_flags) {} in sched_ext_ops__enqueue() argument
5981 static void sched_ext_ops__dequeue(struct task_struct *p, u64 enq_flags) {} in sched_ext_ops__dequeue() argument
5984 static void sched_ext_ops__runnable(struct task_struct *p, u64 enq_flags) {} in sched_ext_ops__runnable() argument
6331 static bool scx_dsq_insert_preamble(struct task_struct *p, u64 enq_flags) in scx_dsq_insert_preamble() argument
6343 if (unlikely(enq_flags & __SCX_ENQ_INTERNAL_MASK)) { in scx_dsq_insert_preamble()
6344 scx_kf_error("invalid enq_flags 0x%llx", enq_flags); in scx_dsq_insert_preamble()
6352 u64 enq_flags) in scx_dsq_insert_commit() argument
6359 mark_direct_dispatch(ddsp_task, p, dsq_id, enq_flags); in scx_dsq_insert_commit()
6372 .enq_flags = enq_flags, in scx_dsq_insert_commit()
6414 u64 enq_flags) in scx_bpf_dsq_insert() argument
6416 if (!scx_dsq_insert_preamble(p, enq_flags)) in scx_bpf_dsq_insert()
6424 scx_dsq_insert_commit(p, dsq_id, enq_flags); in scx_bpf_dsq_insert()
6449 u64 slice, u64 vtime, u64 enq_flags) in scx_bpf_dsq_insert_vtime() argument
6451 if (!scx_dsq_insert_preamble(p, enq_flags)) in scx_bpf_dsq_insert_vtime()
6461 scx_dsq_insert_commit(p, dsq_id, enq_flags | SCX_ENQ_DSQ_PRIQ); in scx_bpf_dsq_insert_vtime()
6477 struct task_struct *p, u64 dsq_id, u64 enq_flags) in scx_dsq_move() argument
6545 locked_rq = move_task_between_dsqs(sch, p, enq_flags, src_dsq, dst_dsq); in scx_dsq_move()
6704 u64 enq_flags) in scx_bpf_dsq_move() argument
6707 p, dsq_id, enq_flags); in scx_bpf_dsq_move()
6729 u64 enq_flags) in scx_bpf_dsq_move_vtime() argument
6732 p, dsq_id, enq_flags | SCX_ENQ_DSQ_PRIQ); in scx_bpf_dsq_move_vtime()