mirror of
https://github.com/sched-ext/scx.git
synced 2024-11-25 04:00:24 +00:00
24 lines
2.3 KiB
Markdown
24 lines
2.3 KiB
Markdown
|
# Breaking Changes
|
||
|
|
||
|
[sched_ext](https://github.com/sched-ext/scx) is still experimental and while we're trying to reduce the number of breaking changes, sometimes they're neccessary to fix bugs or improve the usability.
|
||
|
|
||
|
Below are the changes in both the sched_ext kernel tree and the associated commits in this repo.
|
||
|
|
||
|
scx: Rename prep_enable() and cancel_enable(), add exit_task() [[Kernel commit](https://github.com/sched-ext/sched_ext/commit/81e1051116ce50b3b9c99ed3de41927cdb981e77) / [PR](https://github.com/sched-ext/sched_ext/pull/100)] [[scx commit](https://github.com/sched-ext/scx/commit/552b75a9c7513cb3635c06a0ade4abdb227d1dc7)]
|
||
|
|
||
|
* `ops.prep_enable()` is now called `ops.init_task()`
|
||
|
* `struct scx_enable_args` is now `struct scx_init_task_args`
|
||
|
* `ops.enable()` and `ops.disable()` are now called when a task enters and exits sched_ext respectively. This is the same for when all tasks are using scx, but the callbacks can now be fired multiple times for tasks switching their sched policy.
|
||
|
* No longer passing struct `scx_enable_args *args` to `ops.enable()`.
|
||
|
* `ops.cancel_enable()` has been removed, and `ops.exit_task()` (explained below) is invoked in its stead.
|
||
|
* `ops.exit_task()` has been added, and is called exactly once when a task is exiting if `ops.init_task()` had been successfully invoked on the task previously (or would have been invoked if the callback was defined).
|
||
|
* Called in lieu of `ops.cancel_enable()` as described above
|
||
|
* Called with `struct scx_exit_task_args *args` instead of `scx_enable_args *args`.
|
||
|
|
||
|
---
|
||
|
|
||
|
scx: Add scx_bpf_select_cpu_dfl() kfunc [[Kernel commit](https://github.com/sched-ext/sched_ext/commit/07acdca60031900f7d2ae824951342e0cd98f74e)…[Kernel commit](https://github.com/sched-ext/sched_ext/commit/fadfa2fb5894723302e579a0edbd17b595572d91), [PR](https://github.com/sched-ext/sched_ext/pull/104)] [[scx commit](https://github.com/sched-ext/scx/commit/552b75a9c7513cb3635c06a0ade4abdb227d1dc7)]
|
||
|
|
||
|
* The default CPU selection logic operates differently now. We no longer pass `SCX_ENQ_LOCAL` when the default CPU selection has found a core to schedule. Callers can instead use `scx_bpf_select_cpu_dfl()` to get the same behavior and then decide whether to direct dispatch or not.
|
||
|
* Tasks can now be direct-dispatched from `ops.select_cpu()`.
|