Daniel Hodges
7ee12091c3
scx_layered: Add DSQ iteration algo
...
Add DSQ iteration algorithms.
Signed-off-by: Daniel Hodges <hodges.daniel.scott@gmail.com>
2024-10-04 09:58:23 -07:00
Daniel Hodges
6929501aea
scx_layered: Refactor stats variable names
...
Signed-off-by: Daniel Hodges <hodges.daniel.scott@gmail.com>
2024-10-04 09:56:37 -07:00
Daniel Hodges
f066580612
scx_layered: Use dcycle for infeasible weights
...
Fix a bug to use duty cycle for infeasible weights calculations.
Signed-off-by: Daniel Hodges <hodges.daniel.scott@gmail.com>
2024-10-04 09:56:37 -07:00
Daniel Hodges
c55d34c319
scx_layered: Cleanup unused metrics
...
Signed-off-by: Daniel Hodges <hodges.daniel.scott@gmail.com>
2024-10-04 09:56:37 -07:00
Daniel Hodges
c0c4e183f0
scx_layered: Cargo fmt
...
Signed-off-by: Daniel Hodges <hodges.daniel.scott@gmail.com>
2024-10-04 09:56:37 -07:00
Daniel Hodges
f3b3d4f19c
scx_layered: Add weighted layer DSQ iteration
...
Add a flag to control DSQ iteration across layers by layer weight. This
helps prevent starvation by iterating over layers with the lowest weight
first.
Signed-off-by: Daniel Hodges <hodges.daniel.scott@gmail.com>
2024-10-04 09:56:37 -07:00
Daniel Hodges
bd75ac8dbf
scx_layered: Add flags for growth and preemption
...
Add two new flags `layer_preempt_weight_disable` and
`layer_growth_weight_disable` to disabled preemption and layer growth
when weighted layer load exceeds the configured threshold.
Signed-off-by: Daniel Hodges <hodges.daniel.scott@gmail.com>
2024-10-04 09:56:37 -07:00
Daniel Hodges
e48e675cff
scx_layered: Remove LoadLedger from stats
...
Signed-off-by: Daniel Hodges <hodges.daniel.scott@gmail.com>
2024-10-04 09:56:37 -07:00
Daniel Hodges
2518c99bf2
scx_layered: Refactor load calculation
...
Signed-off-by: Daniel Hodges <hodges.daniel.scott@gmail.com>
2024-10-04 09:56:37 -07:00
Daniel Hodges
54dbf35680
scx_layered: Add weights to userspace layer config
...
Add weights to userspace layer config.
Signed-off-by: Daniel Hodges <hodges.daniel.scott@gmail.com>
2024-10-04 09:56:37 -07:00
Daniel Hodges
07be9dcf59
scx_layered: Add stats for adjusted layer weights
...
Add stats for infeasible weights adjusted layer stats.
Signed-off-by: Daniel Hodges <hodges.daniel.scott@gmail.com>
2024-10-04 09:56:37 -07:00
Daniel Hodges
da38d69009
scx_layered: Add layer weights
...
Add weights to layers and use the infeasible weights crate to properly
apply weights during contention to prevent starvation.
Signed-off-by: Daniel Hodges <hodges.daniel.scott@gmail.com>
2024-10-04 09:56:37 -07:00
Daniel Hodges
0eb0a5c4fa
Merge pull request #737 from minosfuture/main
...
scx_layered: Refactor topology algorithms to a separate module
2024-10-04 16:50:39 +00:00
Ming Yang
d76036b7cb
scx_layered: Add Reverse layer growth algo
...
Add `LayerGrowthAlgo::Reverse` to be the reverse order of Linear.
Signed-off-by: Ming Yang <minos.future@gmail.com>
2024-10-04 09:29:36 -07:00
Ming Yang
35d5c082d5
scx_layered: Break up layer_core_order function
...
`layer_core_order` provided multiple core growth implementation
Break it up into smaller function. Also, attach the method to
LayerGrowthAlgo. And `LayerCoreOrderGenerator` is added to make future
growth algo extension easy.
Signed-off-by: Ming Yang <minos.future@gmail.com>
2024-10-04 09:18:01 -07:00
Ming Yang
29308d4705
scx_layered: Move layer core growth logic to separate module
...
Move layer core growth logic to separate module for further refactoring.
Signed-off-by: Ming Yang <minos.future@gmail.com>
2024-10-04 08:51:11 -07:00
Daniel Hodges
8f0485b9b9
Merge pull request #732 from minosfuture/main
...
scx_layered: Add per layer time slices to stats
2024-10-04 12:06:30 +00:00
Ming Yang
658a75df73
scx_layered: Add per layer time slices to stats
...
Quoting issue #720 description from @hodgesds:
> In `scx_layered` the time slice can be [configured per layer](https://github.com/sched-ext/scx/blob/main/scheds/rust/scx_layered/src/main.rs#L493 ).
> This should be added to the
> [`LayerStats`](https://github.com/sched-ext/scx/blob/main/scheds/rust/scx_layered/src/stats.rs#L51 )
> for each layer. During stats
> [refresh](https://github.com/sched-ext/scx/blob/main/scheds/rust/scx_layered/src/main.rs#L852 )
> read the time slice duration (from the bpf skel) to the layer and add it
> to the stats. Finally, update the
> [format](https://github.com/sched-ext/scx/blob/main/scheds/rust/scx_layered/src/stats.rs#L218 )
> method for `LayerStats` to print the per layer time slices.
Signed-off-by: Ming Yang <minos.future@gmail.com>
2024-10-03 20:56:03 -07:00
Tejun Heo
db0f83ce89
Merge pull request #731 from frelon/scx-rusty-single-dom-bug
...
scx_rusty: fix single dom short-circuit
2024-10-03 18:55:16 +00:00
Fredrik Lönnegren
4b290a1757
scx_rusty: fix single dom short-circuit
...
Remove a short-circuit in cpu_to_dom_id that will return domain id 0 for
any input.
This fixes a crash of scx_rusty when running with a single domain and
any CPU is offline.
Signed-off-by: Fredrik Lönnegren <fredrik@frelon.se>
2024-10-03 20:34:18 +02:00
likewhatevs
58fc3be5fc
Merge pull request #726 from likewhatevs/main
...
Run integration tests against bpf-next kernel every 6 hrs.
2024-10-03 12:25:18 +00:00
Pat Somaru
9d463a85e3
have bpf builds use separate cache
...
have bpf kernel builds use separate cache
(to avoid cache mixups when cherry pick)
2024-10-03 08:20:53 -04:00
likewhatevs
0d80ccf86b
Merge pull request #727 from likewhatevs/readme-update-2
...
add link to generated docs in developer guide
2024-10-03 12:16:57 +00:00
Pat Somaru
db70b4f011
add link to generated docs in developer guide
2024-10-02 22:29:20 -04:00
Pat Somaru
a715d20d92
update urls to point to bpf-next
2024-10-02 22:20:56 -04:00
Pat Somaru
5182682baf
remove lint step from bpf workflow
2024-10-02 21:27:45 -04:00
Pat Somaru
7e95e58e20
enable periodic build/test against bpf-next
...
add a ci job to build and test against bpf-next
every 6 hours.
2024-10-02 21:20:14 -04:00
Changwoo Min
b1070449b2
Merge pull request #714 from multics69/lavd-hotplug
...
scx_lavd: support CPU hotplug correctly
2024-10-03 07:35:25 +09:00
Tejun Heo
a835664e4e
Merge pull request #724 from sched-ext/htejun/release
...
version: Cargo.lock update
2024-10-02 21:19:00 +00:00
Tejun Heo
78682438a5
version: Cargo.lock update
2024-10-02 11:18:07 -10:00
Tejun Heo
0b4c8bcf4b
Merge pull request #722 from sched-ext/htejun/release
...
v1.0.5
2024-10-02 18:58:14 +00:00
Tejun Heo
7402895f4a
version: v1.0.5
2024-10-02 08:34:57 -10:00
Tejun Heo
60c9ae7e7d
version-tool.py: Ignore root Cargo.toml
...
No need to process it and it confuses the script.
2024-10-02 08:32:22 -10:00
Daniel Hodges
054352f172
Merge pull request #716 from vax-r/lavd_typo
...
scx_lavd: Fix typo
2024-10-02 13:21:15 +00:00
likewhatevs
cc26b988be
Merge pull request #717 from vax-r/rusty_cleanup
...
scx_rusty: Delete unused function variable
2024-10-02 09:01:25 -04:00
likewhatevs
6fc90340f8
Merge pull request #718 from parttimenerd/patch-1
...
Mention wiki in the README
2024-10-02 08:59:04 -04:00
Johannes Bechberger
1ab402b4c7
Update README.md
2024-10-02 12:41:50 +02:00
I Hsin Cheng
3055716382
scx_rusty: Delete unused function variable
...
"struct task_struct *p" isn't used within the function
"task_load_adj()". Delete the function parameter for cleaner code.
Signed-off-by: I Hsin Cheng <richard120310@gmail.com>
2024-10-02 17:49:13 +08:00
I Hsin Cheng
7fbef2aa0b
scx_lavd: Fix typo
...
Fix "alreay" to "already".
Signed-off-by: I Hsin Cheng <richard120310@gmail.com>
2024-10-02 17:39:10 +08:00
Changwoo Min
770a59f69d
scx_lavd: support CPU hotplug correctly
...
Use scx_utils::NR_CPU_IDS to iterate whole CPUs and separately count the
number of online CPUs to support CPU hotplug correctly.
Signed-off-by: Changwoo Min <changwoo@igalia.com>
2024-10-02 14:19:18 +09:00
Changwoo Min
fb7bc0a850
scx_lavd: fix incorrect preemtability test
...
Signed-off-by: Changwoo Min <changwoo@igalia.com>
2024-10-02 13:24:43 +09:00
Daniel Hodges
073984fafb
Merge pull request #712 from minosfuture/main
...
Add #stat_doc attribute macro to Stats structs
2024-10-01 12:28:51 +00:00
Ming Yang
445743487a
Add #stat_doc attribute macro to Stats struct
...
`#stat_doc` extends the document from stat desc property.
Add this attribute macro to the remaining Stats structs.
Signed-off-by: Ming Yang <minos.future@gmail.com>
2024-09-30 22:12:11 -07:00
Daniel Hodges
14ab9dcfd6
Merge pull request #711 from hodgesds/layered-type-cleanup
...
scx_layered: Fix compiler warnings
2024-10-01 02:13:24 +00:00
Daniel Hodges
c897511c62
scx_layered: Fix compiler warnings
...
Cleanup various compiler warnings.
Signed-off-by: Daniel Hodges <hodges.daniel.scott@gmail.com>
2024-09-30 20:59:24 -04:00
Tejun Heo
0dda8de2b0
Merge pull request #707 from CachyOS/scx-loader-dbus-introspection
...
scx_loader: Add D-Bus Introspection XML
2024-09-30 19:27:15 +00:00
Tejun Heo
04648bc511
Merge pull request #703 from minosfuture/main
...
scx_stats: Implement macro #stat_doc to autogen doc from stat desc
2024-09-30 17:58:56 +00:00
Andrea Righi
bd861507f7
Merge pull request #709 from sched-ext/bpfland-small-fixes
...
scx_bpfland small fixes and improvements
2024-09-30 17:40:15 +00:00
Andrea Righi
e966455af2
scx_bpfland: fix task_avg_nvcsw() return type
...
task_avg_nvcsw() was incorrectly returning a bool instead of u64,
limiting the impact of the lowlatency boost.
Fix it by returning the proper type (u64).
Signed-off-by: Andrea Righi <andrea.righi@linux.dev>
2024-09-30 14:36:32 +02:00
Andrea Righi
6e24fcc7f0
scx_bpfland: keep tasks running on full-idle SMT cores
...
When a task is the last one running on a CPU and still wants to
continue, allow it to run and replenish its time only if the used CPU is
part a fully idle SMT core.
Signed-off-by: Andrea Righi <andrea.righi@linux.dev>
2024-09-30 14:36:32 +02:00