if (exit_point == EXIT_DISPATCH)
EXIT_CLEANLY();
- scx_bpf_dsq_move_to_local(DSQ_ID);
+ scx_bpf_dsq_move_to_local(DSQ_ID, 0);
}
void BPF_STRUCT_OPS(exit_enable, struct task_struct *p)
void BPF_STRUCT_OPS(maximal_dispatch, s32 cpu, struct task_struct *prev)
{
- scx_bpf_dsq_move_to_local(DSQ_ID);
+ scx_bpf_dsq_move_to_local(DSQ_ID, 0);
}
void BPF_STRUCT_OPS(maximal_runnable, struct task_struct *p, u64 enq_flags)
{
int node = __COMPAT_scx_bpf_cpu_node(cpu);
- scx_bpf_dsq_move_to_local(node);
+ scx_bpf_dsq_move_to_local(node, 0);
}
s32 BPF_STRUCT_OPS_SLEEPABLE(numa_init)
record_peek_result(task->pid);
/* Try to move this task to local */
- if (!moved && scx_bpf_dsq_move_to_local(dsq_id) == 0) {
+ if (!moved && scx_bpf_dsq_move_to_local(dsq_id, 0) == 0) {
moved = 1;
break;
}
dsq_peek_result2_pid = peek_result ? peek_result->pid : -1;
/* Now consume the task since we've peeked at it */
- scx_bpf_dsq_move_to_local(test_dsq_id);
+ scx_bpf_dsq_move_to_local(test_dsq_id, 0);
/* Mark phase 1 as complete */
phase1_complete = 1;
bpf_printk("Phase 1 complete, starting phase 2 stress testing");
} else if (!phase1_complete) {
/* Still in phase 1, use real DSQ */
- scx_bpf_dsq_move_to_local(real_dsq_id);
+ scx_bpf_dsq_move_to_local(real_dsq_id, 0);
} else {
/* Phase 2: Scan all DSQs in the pool and try to move a task */
if (!scan_dsq_pool()) {
/* No tasks found in DSQ pool, fall back to real DSQ */
- scx_bpf_dsq_move_to_local(real_dsq_id);
+ scx_bpf_dsq_move_to_local(real_dsq_id, 0);
}
}
}