Skip to content

Conversation

@arighi
Copy link
Contributor

@arighi arighi commented Oct 30, 2025

Now that we always pick the task with the earliest deadline between the per-node DSQ and per-CPU DSQ, see commit 9cb2779 ("scx_bpfland: Avoid starvation in per-node DSQs"), we can always dispatch per-CPU tasks to the corresponding per-CPU DSQ and reduce the locking pressure on the per-node DSQs, without regressing system responsiveness.

Moreover, change per-CPU tasks prioritization (option --local-pcpu / -p) to always dispatch per-CPU tasks to the local DSQ (SCX_DSQ_LOCAL). With this option enabled, strictly affinitized tasks may still starve non-affinitized ones (as before), but they also receive a higher priority, which can be beneficial for certain workloads.

Now that we always pick the task with the earliest deadline between the
per-node DSQ and per-CPU DSQ, see commit 9cb2779 ("scx_bpfland: Avoid
starvation in per-node DSQs"), we can always dispatch per-CPU tasks to
the corresponding per-CPU DSQ and reduce the locking pressure on the
per-node DSQs, without regressing system responsiveness.

Moreover, change per-CPU tasks prioritization (option --local-pcpu / -p)
to always dispatch per-CPU tasks to the local DSQ (SCX_DSQ_LOCAL). With
this option enabled, strictly affinitized tasks may still starve
non-affinitized ones (as before), but they also receive a higher
priority, which can be beneficial for certain workloads.

Signed-off-by: Andrea Righi <[email protected]>
Copy link
Contributor

@hodgesds hodgesds left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense for different use cases.

@arighi arighi added this pull request to the merge queue Oct 31, 2025
Merged via the queue into main with commit 201892c Oct 31, 2025
42 checks passed
@arighi arighi deleted the bpfland-pcpu-tasks branch October 31, 2025 14:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants