Home
last modified time | relevance | path

Searched refs:enq_flags (Results 1 – 24 of 24) sorted by relevance

/linux/tools/sched_ext/include/scx/
H A Dcompat.bpf.h34 bool scx_bpf_dsq_move_to_local___v2___compat(u64 dsq_id, u64 enq_flags) __ksym __weak;
38 …struct bpf_iter_scx_dsq *it__iter, struct task_struct *p, u64 dsq_id, u64 enq_flags) __ksym __weak;
39 …struct bpf_iter_scx_dsq *it__iter, struct task_struct *p, u64 dsq_id, u64 enq_flags) __ksym __weak;
44 …struct bpf_iter_scx_dsq *it__iter, struct task_struct *p, u64 dsq_id, u64 enq_flags) __ksym __weak;
45 …struct bpf_iter_scx_dsq *it__iter, struct task_struct *p, u64 dsq_id, u64 enq_flags) __ksym __weak;
47 #define scx_bpf_dsq_move_to_local(dsq_id, enq_flags) \ argument
49 scx_bpf_dsq_move_to_local___v2___compat((dsq_id), (enq_flags)) : \
68 #define scx_bpf_dsq_move(it__iter, p, dsq_id, enq_flags) \ argument
70 scx_bpf_dsq_move___new((it__iter), (p), (dsq_id), (enq_flags)) : \
72 scx_bpf_dispatch_from_dsq___old((it__iter), (p), (dsq_id), (enq_flags)) : \
[all …]
/linux/kernel/sched/ext/
H A Dsub.h38 struct task_struct *p, u64 *enq_flags);
94 …l_dsq(struct scx_sched *sch, struct rq *rq, struct task_struct *p, u64 *enq_flags) { return &rq->s… in scx_resolve_local_dsq() argument
154 static inline u64 scx_caps_for_enq(u64 enq_flags) in scx_caps_for_enq() argument
157 if (unlikely(enq_flags & SCX_ENQ_IGNORE_CAPS)) in scx_caps_for_enq()
159 if (enq_flags & SCX_ENQ_IMMED) in scx_caps_for_enq()
173 static inline u64 scx_caps_for_preempt(struct scx_sched *sch, struct rq *rq, u64 enq_flags) in scx_caps_for_preempt() argument
178 if (unlikely(enq_flags & SCX_ENQ_IGNORE_CAPS)) in scx_caps_for_preempt()
226 static inline u64 scx_caps_for_preempt(struct scx_sched *sch, struct rq *rq, u64 enq_flags) { retur… in scx_caps_for_preempt() argument
H A Dext.c347 * @enq_flags: optional %SCX_ENQ_* of the task being enqueued
354 static bool rq_is_open(struct rq *rq, u64 enq_flags) in rq_is_open() argument
390 if (enq_flags & SCX_ENQ_PREEMPT) { in rq_is_open()
1381 static void apply_slice_vtime(struct task_struct *p, u64 slice, u64 vtime, u64 enq_flags) in apply_slice_vtime() argument
1389 if (!(enq_flags & SCX_ENQ_SLICE_DFL)) in apply_slice_vtime()
1395 if (enq_flags & SCX_ENQ_DSQ_PRIQ) in apply_slice_vtime()
1431 static void dsq_inc_nr(struct scx_dispatch_q *dsq, struct task_struct *p, u64 enq_flags) in dsq_inc_nr() argument
1444 if (enq_flags & SCX_ENQ_IMMED) { in dsq_inc_nr()
1446 WARN_ON_ONCE(!(enq_flags & SCX_ENQ_GDSQ_FALLBACK)); in dsq_inc_nr()
1464 if (unlikely(dsq->nr > 1 || !rq_is_open(rq, enq_flags))) in dsq_inc_nr()
1522 rq_owned_post_enq(struct scx_sched * sch,struct rq * rq,struct scx_dispatch_q * dsq,struct task_struct * p,u64 enq_flags) rq_owned_post_enq() argument
1594 scx_dispatch_enqueue(struct scx_sched * sch,struct rq * rq,struct scx_dispatch_q * dsq,struct task_struct * p,u64 slice,u64 vtime,u64 enq_flags) scx_dispatch_enqueue() argument
1869 mark_direct_dispatch(struct scx_sched * sch,struct task_struct * ddsp_task,struct task_struct * p,u64 dsq_id,u64 slice,u64 vtime,u64 enq_flags) mark_direct_dispatch() argument
1921 direct_dispatch(struct scx_sched * sch,struct task_struct * p,u64 enq_flags) direct_dispatch() argument
1986 scx_do_enqueue_task(struct rq * rq,struct task_struct * p,u64 enq_flags,int sticky_cpu) scx_do_enqueue_task() argument
2153 u64 enq_flags = core_enq_flags | rq->scx.remote_activate_enq_flags; enqueue_task_scx() local
2394 scx_move_local_task_to_local_dsq(struct scx_sched * sch,struct task_struct * p,u64 enq_flags,struct rq * dst_rq) scx_move_local_task_to_local_dsq() argument
2424 move_remote_task_to_local_dsq(struct scx_sched * sch,struct task_struct * p,u64 enq_flags,struct rq * src_rq,struct rq * dst_rq) move_remote_task_to_local_dsq() argument
2585 consume_remote_task(struct scx_sched * sch,struct rq * this_rq,struct task_struct * p,u64 enq_flags,struct scx_dispatch_q * dsq,struct rq * src_rq) consume_remote_task() argument
2614 move_task_between_dsqs(struct scx_sched * sch,struct task_struct * p,u64 enq_flags,struct scx_dispatch_q * src_dsq,struct scx_dispatch_q * dst_dsq) move_task_between_dsqs() argument
2666 scx_consume_dispatch_q(struct scx_sched * sch,struct rq * rq,struct scx_dispatch_q * dsq,u64 enq_flags) scx_consume_dispatch_q() argument
2738 dispatch_to_local_dsq(struct scx_sched * sch,struct rq * rq,struct scx_dispatch_q * dst_dsq,struct task_struct * p,u64 slice,u64 vtime,u64 enq_flags) dispatch_to_local_dsq() argument
2839 finish_dispatch(struct scx_sched * sch,struct rq * rq,struct task_struct * p,unsigned long qseq_at_dispatch,u64 dsq_id,u64 slice,u64 vtime,u64 enq_flags) finish_dispatch() argument
3182 u64 enq_flags = 0; put_prev_task_scx() local
4379 u64 enq_flags = p->scx.ddsp_enq_flags; process_ddsp_deferred_locals() local
8309 sched_ext_ops__enqueue(struct task_struct * p,u64 enq_flags) sched_ext_ops__enqueue() argument
8310 sched_ext_ops__dequeue(struct task_struct * p,u64 enq_flags) sched_ext_ops__dequeue() argument
8313 sched_ext_ops__runnable(struct task_struct * p,u64 enq_flags) sched_ext_ops__runnable() argument
8809 scx_vet_enq_flags(struct scx_sched * sch,u64 dsq_id,u64 * enq_flags) scx_vet_enq_flags() argument
8837 scx_dsq_insert_preamble(struct scx_sched * sch,struct task_struct * p,u64 dsq_id,u64 * enq_flags) scx_dsq_insert_preamble() argument
8859 scx_dsq_insert_commit(struct scx_sched * sch,struct task_struct * p,u64 dsq_id,u64 slice,u64 vtime,u64 enq_flags) scx_dsq_insert_commit() argument
8928 scx_bpf_dsq_insert___v2(struct task_struct * p,u64 dsq_id,u64 slice,u64 enq_flags,const struct bpf_prog_aux * aux) scx_bpf_dsq_insert___v2() argument
8950 scx_bpf_dsq_insert(struct task_struct * p,u64 dsq_id,u64 slice,u64 enq_flags,const struct bpf_prog_aux * aux) scx_bpf_dsq_insert() argument
8957 scx_dsq_insert_vtime(struct scx_sched * sch,struct task_struct * p,u64 dsq_id,u64 slice,u64 vtime,u64 enq_flags) scx_dsq_insert_vtime() argument
8972 u64 enq_flags; global() member
9027 scx_bpf_dsq_insert_vtime(struct task_struct * p,u64 dsq_id,u64 slice,u64 vtime,u64 enq_flags) scx_bpf_dsq_insert_vtime() argument
9074 scx_dsq_move(struct bpf_iter_scx_dsq_kern * kit,struct task_struct * p,u64 dsq_id,u64 enq_flags,bool priq) scx_dsq_move() argument
9251 scx_bpf_dsq_move_to_local___v2(u64 dsq_id,u64 enq_flags,const struct bpf_prog_aux * aux) scx_bpf_dsq_move_to_local___v2() argument
9363 scx_bpf_dsq_move(struct bpf_iter_scx_dsq * it__iter,struct task_struct * p,u64 dsq_id,u64 enq_flags) scx_bpf_dsq_move() argument
9388 scx_bpf_dsq_move_vtime(struct bpf_iter_scx_dsq * it__iter,struct task_struct * p,u64 dsq_id,u64 enq_flags) scx_bpf_dsq_move_vtime() argument
[all...]
H A Dinternal.h378 * @enq_flags: %SCX_ENQ_*
388 void (*enqueue)(struct task_struct *p, u64 enq_flags);
443 * @enq_flags: %SCX_ENQ_*
465 void (*runnable)(struct task_struct *p, u64 enq_flags);
1080 void (*enqueue)(struct task_struct *p, u64 enq_flags);
1084 void (*runnable)(struct task_struct *p, u64 enq_flags);
1333 u64 enq_flags; member
2110 void scx_do_enqueue_task(struct rq *rq, struct task_struct *p, u64 enq_flags,
2113 u64 enq_flags, struct rq *dst_rq);
2115 struct scx_dispatch_q *dsq, u64 enq_flags);
[all...]
H A Dsub.c678 * @enq_flags: in/out, unhonored flags are cleared
694 struct task_struct *p, u64 *enq_flags)
701 u64 needed = scx_caps_for_enq(*enq_flags); in scx_resolve_local_dsq()
708 if (*enq_flags & SCX_ENQ_PREEMPT) in scx_resolve_local_dsq()
709 needed |= scx_caps_for_preempt(asch, rq, *enq_flags); in scx_resolve_local_dsq()
725 *enq_flags &= ~SCX_ENQ_PREEMPT; in scx_resolve_local_dsq()
734 *enq_flags &= ~(SCX_ENQ_IMMED | SCX_ENQ_PREEMPT | SCX_ENQ_HEAD | in scx_resolve_local_dsq()
739 if ((*enq_flags & SCX_ENQ_RESCUE) && likely(scx_rescue_bw_1024)) { in scx_resolve_local_dsq()
698 scx_resolve_local_dsq(struct scx_sched * sch,struct rq * rq,struct task_struct * p,u64 * enq_flags) scx_resolve_local_dsq() argument
/linux/tools/testing/selftests/sched_ext/
H A Dcyclic_kick_wait.bpf.c34 u64 enq_flags) in BPF_STRUCT_OPS() argument
43 enq_flags | SCX_ENQ_PREEMPT); in BPF_STRUCT_OPS()
47 scx_bpf_dsq_insert(p, SCX_DSQ_GLOBAL, SCX_SLICE_DFL, enq_flags); in BPF_STRUCT_OPS()
H A Dnohz_tick.bpf.c25 void BPF_STRUCT_OPS(nohz_tick_enqueue, struct task_struct *p, u64 enq_flags) in BPF_STRUCT_OPS() argument
29 scx_bpf_dsq_insert(p, SCX_DSQ_GLOBAL, slice, enq_flags); in BPF_STRUCT_OPS()
30 if (enq_flags & SCX_ENQ_LAST) in BPF_STRUCT_OPS()
H A Dpeek_dsq.bpf.c108 void BPF_STRUCT_OPS(peek_dsq_enqueue, struct task_struct *p, u64 enq_flags) in BPF_STRUCT_OPS() argument
127 scx_bpf_dsq_insert(p, test_dsq_id, 0, enq_flags); in BPF_STRUCT_OPS()
131 scx_bpf_dsq_insert(p, real_dsq_id, 0, enq_flags); in BPF_STRUCT_OPS()
136 scx_bpf_dsq_insert(p, random_dsq_id, 0, enq_flags); in BPF_STRUCT_OPS()
H A Dselect_cpu_dfl.bpf.c23 u64 enq_flags) in BPF_STRUCT_OPS() argument
33 scx_bpf_dsq_insert(p, SCX_DSQ_GLOBAL, SCX_SLICE_DFL, enq_flags); in BPF_STRUCT_OPS()
H A Denq_select_cpu_fails.bpf.c
H A Dmaximal.bpf.c23 void BPF_STRUCT_OPS(maximal_enqueue, struct task_struct *p, u64 enq_flags) in BPF_STRUCT_OPS() argument
25 scx_bpf_dsq_insert(p, DSQ_ID, SCX_SLICE_DFL, enq_flags); in BPF_STRUCT_OPS()
36 void BPF_STRUCT_OPS(maximal_runnable, struct task_struct *p, u64 enq_flags) in BPF_STRUCT_OPS() argument
H A Ddequeue_iter.bpf.c33 void BPF_STRUCT_OPS(dequeue_iter_enqueue, struct task_struct *p, u64 enq_flags) in BPF_STRUCT_OPS() argument
35 scx_bpf_dsq_insert(p, TEST_DSQ_ID, SCX_SLICE_DFL, enq_flags); in BPF_STRUCT_OPS()
H A Dexit.bpf.c31 void BPF_STRUCT_OPS(exit_enqueue, struct task_struct *p, u64 enq_flags) in BPF_STRUCT_OPS() argument
36 scx_bpf_dsq_insert(p, DSQ_ID, SCX_SLICE_DFL, enq_flags); in BPF_STRUCT_OPS()
H A Dselect_cpu_dfl_nodispatch.bpf.c53 u64 enq_flags) in BPF_STRUCT_OPS() argument
70 scx_bpf_dsq_insert(p, dsq_id, SCX_SLICE_DFL, enq_flags); in BPF_STRUCT_OPS()
H A Dnuma.bpf.c85 void BPF_STRUCT_OPS(numa_enqueue, struct task_struct *p, u64 enq_flags) in BPF_STRUCT_OPS() argument
89 scx_bpf_dsq_insert(p, node, SCX_SLICE_DFL, enq_flags); in BPF_STRUCT_OPS()
H A Ddsp_local_on.bpf.c26 u64 enq_flags) in BPF_STRUCT_OPS() argument
H A Dallowed_cpus.bpf.c89 void BPF_STRUCT_OPS(allowed_cpus_enqueue, struct task_struct *p, u64 enq_flags) in BPF_STRUCT_OPS() argument
H A Denable_cmask.bpf.c178 void BPF_STRUCT_OPS(enable_cmask_runnable, struct task_struct *p, u64 enq_flags) in BPF_STRUCT_OPS() argument
/linux/tools/sched_ext/
H A Dscx_cpu0.bpf.c48 void BPF_STRUCT_OPS(cpu0_enqueue, struct task_struct *p, u64 enq_flags) in BPF_STRUCT_OPS()
61 scx_bpf_dsq_insert(p, DSQ_CPU0, SCX_SLICE_DFL, enq_flags); in BPF_STRUCT_OPS()
50 BPF_STRUCT_OPS(cpu0_enqueue,struct task_struct * p,u64 enq_flags) BPF_STRUCT_OPS() argument
H A Dscx_central.bpf.c103 void BPF_STRUCT_OPS(central_enqueue, struct task_struct *p, u64 enq_flags) in BPF_STRUCT_OPS() argument
118 enq_flags | SCX_ENQ_PREEMPT); in BPF_STRUCT_OPS()
124 scx_bpf_dsq_insert(p, FALLBACK_DSQ_ID, SCX_SLICE_INF, enq_flags); in BPF_STRUCT_OPS()
H A Dscx_qmap.bpf.c405 void BPF_STRUCT_OPS(qmap_enqueue, struct task_struct *p, u64 enq_flags) in BPF_STRUCT_OPS() argument
412 if (enq_flags & SCX_ENQ_REENQ) { in BPF_STRUCT_OPS()
463 enq_flags | SCX_ENQ_RESCUE); in BPF_STRUCT_OPS()
477 !(enq_flags & SCX_ENQ_REENQ)) { in BPF_STRUCT_OPS()
487 enq_flags | SCX_ENQ_RESCUE); in BPF_STRUCT_OPS()
498 if (immed_stress_nth && !(enq_flags & SCX_ENQ_REENQ)) { in BPF_STRUCT_OPS()
504 slice_ns, enq_flags); in BPF_STRUCT_OPS()
516 enq_flags | needs_immed(scx_bpf_task_cid(p))); in BPF_STRUCT_OPS()
522 p->scx.weight < 2 && !(p->flags & PF_KTHREAD) && !(enq_flags & SCX_ENQ_REENQ)) { in BPF_STRUCT_OPS()
523 scx_bpf_dsq_insert(p, LOWPRI_DSQ, slice_ns, enq_flags); in BPF_STRUCT_OPS()
[all …]
H A Dscx_flatcg.bpf.c345 void BPF_STRUCT_OPS(fcg_enqueue, struct task_struct *p, u64 enq_flags) in BPF_STRUCT_OPS() argument
376 enq_flags); in BPF_STRUCT_OPS()
380 enq_flags); in BPF_STRUCT_OPS()
391 scx_bpf_dsq_insert(p, cgrp->kn->id, SCX_SLICE_DFL, enq_flags); in BPF_STRUCT_OPS()
403 tvtime, enq_flags); in BPF_STRUCT_OPS()
507 void BPF_STRUCT_OPS(fcg_runnable, struct task_struct *p, u64 enq_flags) in BPF_STRUCT_OPS() argument
H A Dscx_pair.bpf.c255 void BPF_STRUCT_OPS(pair_enqueue, struct task_struct *p, u64 enq_flags) in BPF_STRUCT_OPS() argument
/linux/Documentation/scheduler/
H A Dsched-ext.rst217 void BPF_STRUCT_OPS(simple_enqueue, struct task_struct *p, u64 enq_flags)
219 scx_bpf_dsq_insert(p, SCX_DSQ_GLOBAL, SCX_SLICE_DFL, enq_flags);