Lines Matching defs:reenq_flags
1217 u64 reenq_flags, struct rq *locked_rq)
1241 (READ_ONCE(drl->flags) & reenq_flags) != reenq_flags) {
1247 WRITE_ONCE(drl->flags, drl->flags | reenq_flags);
1262 (READ_ONCE(dru->flags) & reenq_flags) != reenq_flags) {
1268 WRITE_ONCE(dru->flags, dru->flags | reenq_flags);
1281 static void schedule_reenq_local(struct rq *rq, u64 reenq_flags)
1288 schedule_dsq_reenq(root, &rq->scx.local_dsq, reenq_flags, rq);
3997 * @reenq_flags is mutable and accumulates state across the DSQ walk:
4017 static bool local_task_should_reenq(struct task_struct *p, u64 *reenq_flags, u32 *reason)
4021 first = !(*reenq_flags & SCX_REENQ_TSR_NOT_FIRST);
4022 *reenq_flags |= SCX_REENQ_TSR_NOT_FIRST;
4027 (!first || !(*reenq_flags & SCX_REENQ_TSR_RQ_OPEN))) {
4033 return *reenq_flags & SCX_REENQ_ANY;
4036 static u32 reenq_local(struct scx_sched *sch, struct rq *rq, u64 reenq_flags)
4044 if (WARN_ON_ONCE(reenq_flags & __SCX_REENQ_TSR_MASK))
4045 reenq_flags &= ~__SCX_REENQ_TSR_MASK;
4047 reenq_flags |= SCX_REENQ_TSR_RQ_OPEN;
4076 if (!local_task_should_reenq(p, &reenq_flags, &reason))
4108 u64 reenq_flags;
4125 reenq_flags = drl->flags;
4147 reenq_local(sch, rq, reenq_flags);
4152 static bool user_task_should_reenq(struct task_struct *p, u64 reenq_flags, u32 *reason)
4155 return reenq_flags & SCX_REENQ_ANY;
4158 static void reenq_user(struct rq *rq, struct scx_dispatch_q *dsq, u64 reenq_flags)
4178 if (!user_task_should_reenq(p, reenq_flags, &reason))
4235 u64 reenq_flags;
4250 reenq_flags = dru->flags;
4259 reenq_user(rq, dsq, reenq_flags);
9146 * @reenq_flags: %SCX_RENQ_*
9158 __bpf_kfunc void scx_bpf_dsq_reenq(u64 dsq_id, u64 reenq_flags,
9170 if (unlikely(reenq_flags & ~__SCX_REENQ_USER_MASK)) {
9171 scx_error(sch, "invalid SCX_REENQ flags 0x%llx", reenq_flags);
9176 if (!(reenq_flags & __SCX_REENQ_FILTER_MASK))
9177 reenq_flags |= SCX_REENQ_ANY;
9180 schedule_dsq_reenq(sch, dsq, reenq_flags, scx_locked_rq());