Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cut an scx-6.8rc.y branch for 6.8-rc releases #1

Merged
merged 374 commits into from
Jan 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
374 commits
Select commit Hold shift + click to select a range
2d87e47
scx: Adjust a couple of small things in rusty.bpf.c
Byte-Lab Aug 1, 2023
a0943ea
Merge pull request #39 from sched-ext/rusty_bpf_adjustments
htejun Aug 1, 2023
4c52836
scx: Rename "type" -> "exit_type"
dschatzberg Aug 2, 2023
94a5c60
Merge pull request #41 from dschatzberg/type_rename
Byte-Lab Aug 2, 2023
8b8596e
scx: Make cpumask arg to ops.set_cpumask() const
Byte-Lab Aug 3, 2023
aeaacb3
Merge pull request #42 from sched-ext/struct_cpumask
htejun Aug 3, 2023
f0fd99d
scx: Use unsigned long for rq->scx.pnt_seq instead of u64
htejun Aug 8, 2023
f2625bf
scx: Allow calling some kfuncs from tracepoints
Byte-Lab Aug 8, 2023
36d4880
Merge pull request #43 from sched-ext/kfunc_tracepoints
htejun Aug 8, 2023
1d00785
scx: Use atomic_long_t for scx_nr_rejected instead of atomic64_t
htejun Aug 8, 2023
e453cbb
scx: Make p->scx.ops_state atomic_long_t instead of atomic64_t
htejun Aug 8, 2023
35aef07
Merge pull request #44 from sched-ext/scx-misc-updates
htejun Aug 8, 2023
845aec9
use resizing of datasec maps in examples
inwardvessel Jun 15, 2023
8ade500
Merge pull request #20 from inwardvessel/resize_percpu_arrays_in_exam…
Byte-Lab Aug 14, 2023
cb04f56
scx: bpf_scx_btf_struct_access() should return -EACCES for unknown ac…
htejun Aug 30, 2023
2c5e6d3
Merge pull request #46 from sched-ext/scx-fix-write-all
Byte-Lab Aug 30, 2023
d377f5e
debug patches and fix
htejun Sep 19, 2023
21f4c19
scx: Fix p->scx.flags corruption due to unsynchronized writes of SCX_…
htejun Sep 20, 2023
ee9077a
Merge pull request #47 from sched-ext/scx-fix-flags-corruption
Byte-Lab Sep 20, 2023
8424909
xxx
htejun Sep 20, 2023
be81498
scx_rusty: Keep .bpf.o files for debugging
htejun Sep 21, 2023
664d650
Merge pull request #48 from sched-ext/rusty-keep-bpf-o
htejun Sep 21, 2023
997c450
Revert "Merge pull request #48 from sched-ext/rusty-keep-bpf-o"
htejun Sep 22, 2023
258510e
scx_rusty: Keep .bpf.o files for debugging
htejun Sep 21, 2023
2a3532d
Merge pull request #49 from sched-ext/rusty-keep-bpf-o
htejun Sep 22, 2023
c70e7d3
rusty: Don't use bpf_cpumask_full() to set task_ctx->all_cpus
htejun Sep 26, 2023
b448bbd
Merge pull request #50 from sched-ext/rusty-fix-all_cpus
Byte-Lab Sep 26, 2023
f4fd473
central: Allow specifying the slice length in the central scheduler
Byte-Lab Oct 2, 2023
8ba6ffd
Merge pull request #51 from sched-ext/set_slice_central
Byte-Lab Oct 3, 2023
3e74dbd
central: Pin timer callbacks to central CPU
Byte-Lab Oct 2, 2023
7b1ca19
scx: Fix typo in tickless comment
Byte-Lab Oct 3, 2023
cdbc1a1
Merge pull request #53 from sched-ext/fix_typo
htejun Oct 3, 2023
b41ddc3
Merge pull request #52 from sched-ext/central_cpu_pin
htejun Oct 4, 2023
dec4c12
Merge branch 'bpf-master' into bpf-next-merge
Byte-Lab Oct 7, 2023
ff56aee
Merge pull request #54 from sched-ext/bpf-next-merge
htejun Oct 7, 2023
101c601
scx: Add missing piece
Byte-Lab Oct 7, 2023
4f595b5
Merge branch 'bpf-master' into bpf-next-merge
Byte-Lab Oct 9, 2023
88a818f
central: Pin timer to the central CPU
Byte-Lab Oct 9, 2023
fbac810
Merge pull request #55 from sched-ext/bpf-next-merge
Byte-Lab Oct 9, 2023
3b24175
scx: Refactor and clean up build system
Byte-Lab Oct 11, 2023
ac229e5
scx: Add make install target for installing schedulers
Byte-Lab Oct 11, 2023
7fc3184
scx: Add Make help target for explaining build options
Byte-Lab Oct 11, 2023
8180b1b
rusty: Support downloading rusty deps in separate build step
Byte-Lab Oct 12, 2023
8ce9d1e
scx: Don't specify nightly rustup as dependency
Byte-Lab Oct 12, 2023
e23cb83
Merge pull request #60 from sched-ext/rust_nightly
htejun Oct 12, 2023
bac7dab
Merge pull request #59 from sched-ext/mkosi
htejun Oct 12, 2023
38ad0e8
rusty: Further tweak build system
Byte-Lab Oct 16, 2023
52911e1
Merge pull request #62 from sched-ext/rusty_offline
DaanDeMeyer Oct 16, 2023
bd8d7d2
scx: Improve example schedulers README file
Byte-Lab Oct 30, 2023
e77257c
scx: Add missing build/ entry to .gitignore
Byte-Lab Oct 30, 2023
3f4b885
scx: clean sched_ext example schedulers on root mrproper target
Byte-Lab Oct 30, 2023
9b7423e
Merge pull request #64 from sched-ext/README
htejun Oct 30, 2023
2a5eb98
sched_ext: Add scx_layered
htejun Oct 31, 2023
c2f53c8
scx_examples: Address the interaction between yield and slice based r…
htejun Nov 1, 2023
e199c47
scx_rusty: Introduce lookup_task_ctx() and consistently use @taskc as…
htejun Nov 1, 2023
1b268b0
scx_rusty: Use u64 and friends consistently and move dom_ctx def to .h
htejun Nov 1, 2023
53f76a9
scx_rusty: ravg in progress, load transfer incomplete
htejun Nov 2, 2023
ed47cb2
selftests/bpf: Convert CHECK macros to ASSERT_* macros in bpf_iter
yuranpereira Oct 28, 2023
cb3c6a5
selftests/bpf: Add malloc failure checks in bpf_iter
yuranpereira Oct 28, 2023
3cda077
selftests/bpf: fix RELEASE=1 build for tc_opts
anakryiko Nov 2, 2023
7bcc07d
selftests/bpf: satisfy compiler by having explicit return in btf test
anakryiko Nov 2, 2023
2e74aef
bpf: derive smin/smax from umin/max bounds
anakryiko Nov 2, 2023
f188765
bpf: derive smin32/smax32 from umin32/umax32 bounds
anakryiko Nov 2, 2023
f404ef3
bpf: derive subreg bounds from full bounds when upper 32 bits are con…
anakryiko Nov 2, 2023
6533e0a
bpf: add special smin32/smax32 derivation from 64-bit bounds
anakryiko Nov 2, 2023
3d6940d
bpf: improve deduction of 64-bit bounds from 32-bit bounds
anakryiko Nov 2, 2023
558c06e
bpf: try harder to deduce register bounds from different numeric domains
anakryiko Nov 2, 2023
b929d49
bpf: drop knowledge-losing __reg_combine_{32,64}_into_{64,32} logic
anakryiko Nov 2, 2023
cdeb5da
bpf: rename is_branch_taken reg arguments to prepare for the second one
anakryiko Nov 2, 2023
fc3615d
bpf: generalize is_branch_taken() to work with two registers
anakryiko Nov 2, 2023
dd2a2cc
bpf: move is_branch_taken() down
anakryiko Nov 2, 2023
171de12
bpf: generalize is_branch_taken to handle all conditional jumps in on…
anakryiko Nov 2, 2023
761a9e5
bpf: unify 32-bit and 64-bit is_branch_taken logic
anakryiko Nov 2, 2023
4c61728
bpf: prepare reg_set_min_max for second set of registers
anakryiko Nov 2, 2023
9a14d62
bpf: generalize reg_set_min_max() to handle two sets of two registers
anakryiko Nov 2, 2023
e68ed64
Merge branch 'bpf-register-bounds-logic-and-testing-improvements'
Nov 2, 2023
3f1f234
selftests/bpf: Use value with enough-size when updating per-cpu map
Nov 1, 2023
ff38534
selftests/bpf: Export map_update_retriable()
Nov 1, 2023
57688b2
selftsets/bpf: Retry map update for non-preallocated per-cpu map
Nov 1, 2023
e869ffc
Merge branch 'selftests/bpf: Fixes for map_percpu_stats test'
anakryiko Nov 2, 2023
1a119e2
selftests/bpf: Consolidate VIRTIO/9P configs in config.vm file
chantra Oct 31, 2023
cf37d0a
ravg: Drop scx_ prefix and implement ravg_transfer(). Misc rusty chan…
htejun Nov 2, 2023
7dc6a8b
scx_rusty: Implement task load transfers
htejun Nov 2, 2023
298bec1
scx: Fix skel and .bpf.o Make deps
Byte-Lab Nov 3, 2023
62e2315
scx: Don't rebuild schedulers unnecessarily
Byte-Lab Nov 3, 2023
2c76843
scx: Aggregate build logic for rust schedulers
Byte-Lab Nov 3, 2023
b94df28
bpftool: Fix prog object type in manpage
sm00th Nov 3, 2023
41728bb
Merge pull request #67 from sched-ext/make_deps
htejun Nov 3, 2023
58e2a66
scx_common: libbpf now has inline iter decls, drop them from scx_comm…
htejun Nov 3, 2023
a4fbd6f
scx_rusty: ravg WIP
htejun Nov 3, 2023
b24bc9b
scx_rusty: Switch to ravg dom loads
htejun Nov 3, 2023
d401cf1
scx_rusty: Drop unnnecessary read_volatiles from map elem access
htejun Nov 3, 2023
fbf0ccf
scx_rusty: Elide reading task loads if LB isn't necessary
htejun Nov 3, 2023
8895ddd
rusty: Fully switch to ravg
htejun Nov 4, 2023
ca211c6
ravg: Fix ravg_transfer()
htejun Nov 4, 2023
8111b6e
scx_rusty: Improve debug messages
htejun Nov 4, 2023
46f07fa
scx_rusty: Minor cleanup
htejun Nov 4, 2023
f244d5e
scx_rusty: Comments, parameterize ravg half life
htejun Nov 4, 2023
d6a788a
Merge pull request #68 from sched-ext/scx-cleanups
Byte-Lab Nov 4, 2023
a60668f
sched_ext: Test sched_class directly in scx_task_iter_next_filtered()
htejun Nov 5, 2023
21777bc
Merge pull request #73 from sched-ext/scx-fix-crash
Byte-Lab Nov 6, 2023
dfee93e
selftests/bpf: Disable CONFIG_DEBUG_INFO_REDUCED in config.aarch64
roxell Nov 3, 2023
856624f
bpf, lpm: Fix check prefixlen before walking trie
florianl Nov 5, 2023
53cb301
sched_ext/ravg: Drop unnecessary comment line
htejun Nov 6, 2023
90e1ad1
Merge pull request #70 from sched-ext/scx_rusty-ravg
htejun Nov 6, 2023
f599483
tools/sched_ext/Makefile: Don't hard code scx_rusty in rust-sched _de…
htejun Nov 6, 2023
eff9487
Merge pull request #75 from sched-ext/scx-fix-rust_sched_deps
Byte-Lab Nov 6, 2023
1dff6ea
scx_common: Improve MEMBER_VPTR()
htejun Nov 6, 2023
a281119
Merge pull request #76 from sched-ext/scx-update-MEMBER_VPTR
Byte-Lab Nov 6, 2023
1d773bd
scx: Fix !CONFIG_SCHED_CLASS_EXT builds
Byte-Lab Nov 7, 2023
fdee025
Merge pull request #77 from sched-ext/fix_notext_build
htejun Nov 7, 2023
54d303d
scx: Print scx info when dumping stack
Byte-Lab Nov 1, 2023
ee4efa7
Merge pull request #66 from sched-ext/panic_msg
htejun Nov 7, 2023
5c2f39c
scx_common: Add message to _Static_assert in MEMBER_VPTR
htejun Nov 7, 2023
a32fa87
tools/sched_ext/ravg: Separate out ravg_read.rs.h and update build deps
htejun Nov 7, 2023
e322e56
scx_rusty: Misc update
htejun Nov 7, 2023
8619d7f
Merge branch 'sched_ext' into add-scx_layered
htejun Nov 7, 2023
e00a136
Merge branch 'scx-misc-updates' into add-scx_layered
htejun Nov 7, 2023
d30e64d
scx_layered: Build fix after pulling tools/sched_ext Makefile change
htejun Nov 7, 2023
687fe29
scx_layered: Updates as per David's review
htejun Nov 7, 2023
ecbff41
scx_layered: Use the common ravg implementation
htejun Nov 7, 2023
1ad52c7
scx_layered: Use tp_btf/task_rename instead of fentry/__set_task_comm
htejun Nov 7, 2023
42a1f1f
scx_layered: s/__u[32|64]/u[32|64]/
htejun Nov 7, 2023
d70e209
scx_layered: Use rust ravg_read() to read load instead of periodicall…
htejun Nov 7, 2023
9695b05
scx_layered: Cleanups
htejun Nov 7, 2023
5a685d4
Merge pull request #78 from sched-ext/scx-misc-updates
htejun Nov 7, 2023
924c005
Merge pull request #65 from sched-ext/add-scx_layered
htejun Nov 7, 2023
665658c
Merge branch 'bpf/for-next' into scx-pull-bpf
htejun Nov 7, 2023
d0be8b2
scx: s/check_preempt_curr_scx/wakeup_preempt_scx/ to match new upstre…
htejun Nov 7, 2023
0bd6f76
Merge pull request #79 from sched-ext/scx-pull-bpf
Byte-Lab Nov 7, 2023
9dae233
scx: CGROUP_WEIGHT_* should be outside CONFIG_CGROUPS
htejun Nov 8, 2023
7410ecc
scx: cpu_local_stat_show() doesn't have dependency on RT_GROUP_SCHED …
htejun Nov 8, 2023
08e09f3
scx: Kill stray check_preempt_cur() prototype
htejun Nov 8, 2023
7a001f5
scx: s/scx_exit_type/scx_exit_kind/ s/scx_exit_info\.type/scx_exit_in…
htejun Nov 8, 2023
2c21348
scx: tools/sched_ext/Makefile updates
htejun Nov 8, 2023
dde311c
scx: Reorder tools/sched_ext/README.md
htejun Nov 8, 2023
2e58977
scx: Rename scx_user_common.h to scx_common.h and include user_exit_i…
htejun Nov 8, 2023
0b2403f
scx: Minor formatting updates and scx_bpf_error() formatting string p…
htejun Nov 8, 2023
39b906e
scx: whitespace update
htejun Nov 8, 2023
607afb6
Merge pull request #80 from sched-ext/scx-cleanups-from-split
htejun Nov 8, 2023
725cfa3
scx_rusty: doc comment update
htejun Nov 8, 2023
c818dc5
Merge pull request #81 from sched-ext/scx-cleanups-from-split
htejun Nov 8, 2023
ea98edf
scx: Update print_scx_info() comment
htejun Nov 8, 2023
9a64d87
Merge pull request #82 from sched-ext/scx-cleanups-from-split
htejun Nov 8, 2023
f23fbab
scx: Update print_scx_info()
htejun Nov 10, 2023
b0d2ae0
Merge pull request #83 from sched-ext/scx_print_info-updates
htejun Nov 10, 2023
b7e1419
rusty: Improve overview documentation as suggested by Josh Don
htejun Nov 14, 2023
1d88c4a
Merge pull request #84 from sched-ext/rusty-doc-update
htejun Nov 14, 2023
ca712f8
scx: Move scx_ops_enable_state_str[] outside CONFIG_SCHED_DEBUG
htejun Nov 14, 2023
e69323c
Merge pull request #85 from sched-ext/misc-fixes
htejun Nov 14, 2023
6b245e8
scx: Fix a straggling atomic64_set
htejun Nov 25, 2023
df9ef4e
Merge pull request #87 from sched-ext/atomic_long-fix
htejun Nov 25, 2023
70331a6
scx: Use .bpf.[sub]skel.h suffix instead of .[sub]skel.h when buildin…
htejun Nov 28, 2023
7a1c90f
scx: Add s/uSIZE typedefs in scx_common.h
htejun Nov 28, 2023
48b4554
Merge pull request #88 from sched-ext/misc-updates
Byte-Lab Nov 28, 2023
bc7c2af
scx_{rusty|layered}: Generate skel file in $OUT_DIR
htejun Nov 28, 2023
1d9acf6
scx_{rusty|layered}: ravg_read is now provided by scx_utils crate, re…
htejun Nov 28, 2023
2e2daa7
scx_{rusty|layered}: Make naming and build consistent between the two…
htejun Nov 29, 2023
2d46bf9
scx_{rusty|layered}: Run bindgen's clang with CLANG_CFLAGS and remove…
htejun Nov 29, 2023
65d1b96
scx_{rusty|layered}: Factor out build.rs's into scx_utils::build_helpers
htejun Nov 29, 2023
df7ea88
scx_{rusty|layered}: Follow scx_utils::BpfBuilder API updates
htejun Nov 30, 2023
5f200bb
scx_{layered, rusty}: Minor build updates
htejun Dec 3, 2023
47c9356
scx: Move common headers under include/scx
htejun Dec 3, 2023
d6bd20a
scx: More include path and build updates
htejun Dec 4, 2023
f0566ba
Merge pull request #89 from sched-ext/misc-updates
Byte-Lab Dec 4, 2023
234eb2c
scx_sync: Sync scheduler changes from https://github.com/sched-ext/scx
htejun Dec 4, 2023
61ce4fe
Merge pull request #91 from sched-ext/scx-sync
htejun Dec 4, 2023
25a5d10
scx: Disable vtime ordering for internal DSQs
Byte-Lab Dec 4, 2023
346fd9d
scx: Enforce either/or usage of DSQ FIFO/PRIQ dispatching
Byte-Lab Dec 4, 2023
4d61801
Merge pull request #92 from sched-ext/internal_priq
Byte-Lab Dec 5, 2023
03b9a1f
scx_sync: Sync scheduler changes from https://github.com/sched-ext/scx
htejun Dec 5, 2023
e5078c1
Merge pull request #93 from sched-ext/scx-sync
htejun Dec 5, 2023
782f273
scx: Remove now unused $rb_node from first_local_task()
htejun Dec 6, 2023
2f6ba98
Merge pull request #94 from sched-ext/misc-fixes
Byte-Lab Dec 6, 2023
9c18e3d
scx_sync: Sync scheduler changes from https://github.com/sched-ext/scx
Byte-Lab Dec 8, 2023
5bb3614
Merge pull request #95 from sched-ext/sync
Byte-Lab Dec 8, 2023
36d3838
scx: Add missing ) to $(error) invocation in Makefile
Byte-Lab Dec 8, 2023
963fc30
Merge pull request #96 from sched-ext/makefile_fix
Byte-Lab Dec 8, 2023
d3f9558
scx: Add skeleton for scx testing framework
Byte-Lab Dec 8, 2023
177edd6
Merge pull request #97 from sched-ext/scx_selftests
htejun Dec 8, 2023
dad3fb6
kernfs: convert kernfs_idr_lock to an irq safe raw spinlock
Dec 27, 2023
6b747e0
sched_ext: fix race in scx_move_task() with exiting tasks
Dec 27, 2023
79d694e
Merge pull request #101 from arighi/fix-move-task-race
htejun Dec 28, 2023
07acdca
scx: Support direct dispatching from ops.select_cpu()
Byte-Lab Dec 21, 2023
08fc865
scx: Remove SCX_ENQ_LOCAL flag
Byte-Lab Dec 22, 2023
fadfa2f
scx: Add scx_bpf_select_cpu_dfl() kfunc
Byte-Lab Dec 22, 2023
9fd2c3b
scx: Add selftests for new select_cpu dispatch semantics
Byte-Lab Dec 22, 2023
d788214
Merge pull request #104 from sched-ext/select_cpu_dfl
Byte-Lab Jan 4, 2024
2638aff
scx: Error for a priq builtin DSQ in dispatch_enqueue()
Byte-Lab Jan 4, 2024
d5b84a4
scx: Add testcases for vtime-dispatching to builtin DSQs
Byte-Lab Jan 4, 2024
902d364
Merge pull request #105 from sched-ext/fix_fallback
Byte-Lab Jan 4, 2024
56b2ec9
scx: Always set task scx weight before enable
Byte-Lab Dec 13, 2023
9604441
scx: Call enable / disable on entry / exit to scx
Byte-Lab Dec 14, 2023
81e1051
scx: Rename prep_enable() and cancel_enable(), add exit_task()
Byte-Lab Dec 14, 2023
aa60d9e
scx: Add init_enable_count testcase
Byte-Lab Dec 15, 2023
6b8ccfd
scx: Move sched_ext_entity.ddsq_id out of modifiable fields
Byte-Lab Jan 5, 2024
367eab2
scx: Add missing DSQ fallback test files
Byte-Lab Jan 5, 2024
88568ae
Merge pull request #100 from sched-ext/fix_enable
Byte-Lab Jan 5, 2024
2cf297c
scx: Claim idle core in scx_select_cpu_dfl for nr_cpus_allowed ==1
Byte-Lab Jan 5, 2024
e6cb892
scx: Make select_cpu_dfl test a bit less brittle
Byte-Lab Jan 5, 2024
8ccf9d7
Merge pull request #106 from sched-ext/prev_cpu_idle_reserve
htejun Jan 6, 2024
c3c7041
scx: Avoid possible deadlock with cpus_read_lock()
Byte-Lab Jan 8, 2024
8bbe0db
scx: Set default slice for default select_cpu dispatch
Byte-Lab Jan 8, 2024
15f2f4f
Merge pull request #109 from sched-ext/dfl_slice
htejun Jan 8, 2024
dd92f1a
Merge pull request #108 from sched-ext/avoid_deadlock
htejun Jan 8, 2024
4164e16
scx: Use READ/WRITE_ONCE() for scx_watchdog_timeout/timestamp
htejun Dec 30, 2023
9c0a799
scx: Rename rq->scx.watchdog_list and friends to runnable_list and co…
htejun Jan 8, 2024
215f0ff
scx: Factor out scx_ops_bypass() and s/scx_ops_disabling()/scx_ops_by…
htejun Jan 8, 2024
f4c4ef2
scx: Implement bypass depth and always bypass while disabling
htejun Jan 8, 2024
a00ac85
scx: Implement turning off bypassing
htejun Jan 8, 2024
8583a03
scx: Optimize scx_ops_bypass()
htejun Jan 8, 2024
303c346
scx: Expose bypassing state to userland
htejun Jan 8, 2024
a37ef8e
scx: s/register_ext_kfuncs()/scx_init()/
htejun Jan 8, 2024
df28190
scx: Bypass while PM operations are in progress
htejun Jan 8, 2024
a62d59c
scx: Disabling scx_bpf_kick_cpu() while bypassing
htejun Jan 8, 2024
a7150a9
Merge pull request #103 from sched-ext/htejun
htejun Jan 8, 2024
8588d4f
Revert "scx: Avoid possible deadlock with cpus_read_lock()"
htejun Jan 8, 2024
ca86e0d
Merge pull request #110 from sched-ext/lockdep-revert
htejun Jan 8, 2024
22c3627
scx: Make scx_task_state handling more idiomatic
htejun Jan 8, 2024
b7858a0
Merge tag 'v6.7' into scx-sync-upstream
htejun Jan 8, 2024
5445296
Merge pull request #112 from sched-ext/scx-sync-upstream
Byte-Lab Jan 8, 2024
8c7f9b2
Merge pull request #111 from sched-ext/htejun
Byte-Lab Jan 8, 2024
88e7560
scx: Sync schedulers from SCX v0.1.5 (74923c6cdbc3)
htejun Jan 9, 2024
f4dc571
Merge pull request #113 from sched-ext/htejun
htejun Jan 9, 2024
9ad5535
scx: Fix direct dispatch for non-builtin DSQs
Byte-Lab Jan 9, 2024
4b56f6e
scx: Keep track of enq flags in direct dispatch
Byte-Lab Jan 9, 2024
59ad5bd
scx: Test vtime dispatching from ops.select_cpu()
Byte-Lab Jan 9, 2024
7909b33
Merge pull request #115 from sched-ext/enq_flags
Byte-Lab Jan 9, 2024
c64a804
scx: Implement scx selftests framework
Byte-Lab Jan 6, 2024
228db9d
Merge pull request #117 from sched-ext/refactor_tests
htejun Jan 10, 2024
d5061f9
scx: Convert remaining testcases to use new framework
Byte-Lab Jan 10, 2024
1fa672f
scx: Update ddsp testcases to check for error exits
Byte-Lab Jan 10, 2024
8d7a79e
scx: Copy scx_exit_kind to scx_test.h
Byte-Lab Jan 10, 2024
7592388
Merge pull request #118 from sched-ext/refactor_tests
htejun Jan 10, 2024
4bbb07c
scx: Narrow cpus_read_lock() critical section in scx_ops_enable()
htejun Jan 10, 2024
1225a90
scx: Reorder scx_fork_rwsem, cpu_hotplug_lock and scx_cgroup_rwsem
htejun Jan 10, 2024
4361d23
Merge pull request #119 from sched-ext/htejun
Byte-Lab Jan 11, 2024
dfb1210
scx: Sync from scx repo
htejun Jan 11, 2024
6eb6c92
Merge pull request #120 from sched-ext/htejun
htejun Jan 11, 2024
74cdbb0
ci: add github workflow to test the sched-ext kernel
Jan 9, 2024
4e59c90
Merge pull request #116 from arighi/github-ci
Jan 18, 2024
7d420b5
scx: Make the pointer passing to .dispatch MAYBE_NULL.
ThinkerYzu1 Jan 17, 2024
b21b258
selftests/scx: Check if MAYBE_NULL works for the 2nd argument of .dis…
ThinkerYzu1 Jan 17, 2024
e7a7781
scx: Add /sys/kernel/sched_ext interface
htejun Jan 18, 2024
a1392ed
scx: Replace /sys/kernel/debug/sched/ext with tools/sched_ext/scx_sho…
htejun Jan 18, 2024
cdcdf18
Merge pull request #122 from sched-ext/htejun
Byte-Lab Jan 18, 2024
b1a0f3e
Merge pull request #121 from ThinkerYzu/maybe_null
htejun Jan 19, 2024
a141212
scx: Fix a couple follow ups to recent struct_ops changes
Byte-Lab Jan 20, 2024
30b6fa8
Merge pull request #123 from sched-ext/structops_follow_ups
Byte-Lab Jan 20, 2024
50f8db4
Merge remote-tracking branch 'sched-ext/sched_ext' into scx_merge
Byte-Lab Jan 23, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 51 additions & 0 deletions .github/workflows/run-schedulers
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
#!/bin/bash
#
# Run sched-ext scheduler for TIMEOUT seconds inside virtme-ng and catch
# potential errors, then unload the scheduler and return the exit status.

# Maximum time for each scheduler run.
TEST_TIMEOUT=30

# Maximum timeout for the guest used for each scheduler run (this is used to
# hard-shutdown the guest in case of system hangs).
GUEST_TIMEOUT=60

# Check if virtme-ng is available.
if [ ! -x `which vng` ]; then
echo "vng not found, please install virtme-ng to enable testing"
exit 1
fi

# Test all the available schedulers.
#
# NOTE: virtme-ng automatically runs the kernel from the current working
# directory by default.
#
# Each scheduler will be tested in a separate instance booted from scratch, to
# ensure that each run does not impact the others.
#
# TODO: exclude scx_layered for now, because it requires a special config
# file, otherwise its test would fail with "Error: No layer spec".
#
# Maybe in the future change scx_layered to run with a default layer spec, just
# for testing it.
#
for sched in $(find tools/sched_ext/build/bin -type f -executable | grep -v scx_layered); do
rm -f /tmp/output
(timeout --foreground --preserve-status ${GUEST_TIMEOUT} \
vng --force-9p --disable-microvm --verbose -- \
"timeout --foreground --preserve-status ${TEST_TIMEOUT} ${sched}" \
2>&1 </dev/null || true) | tee /tmp/output
sed -n -e '/\bBUG:/q1' \
-e '/\bWARNING:/q1' \
-e '/\berror\b/Iq1' \
-e '/\bstall/Iq1' \
-e '/\btimeout\b/Iq1' /tmp/output
res=$?
if [ ${res} -ne 0 ]; then
echo "FAIL: ${sched}"
exit 1
else
echo "OK: ${sched}"
fi
done
34 changes: 34 additions & 0 deletions .github/workflows/sched-ext.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# sched-ext mandatory options
#
CONFIG_BPF=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPF_JIT=y
CONFIG_DEBUG_INFO_BTF=y
CONFIG_BPF_JIT_ALWAYS_ON=y
CONFIG_BPF_JIT_DEFAULT_ON=y
CONFIG_SCHED_CLASS_EXT=y

# Enable scheduling debugging
#
CONFIG_SCHED_DEBUG=y

# Enable extra scheduling features (for a better code coverage while testing
# the schedulers)
#
CONFIG_SCHED_AUTOGROUP=y
CONFIG_SCHED_CORE=y

# Enable fully preemptible kernel for a better test coverage of the schedulers
#
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_PREEMPT_COUNT=y
CONFIG_PREEMPTION=y
CONFIG_PREEMPT_DYNAMIC=y
CONFIG_PREEMPT_RCU=y

# Additional debugging information (useful to catch potential locking issues)
#
CONFIG_DEBUG_LOCKDEP=y
CONFIG_DEBUG_ATOMIC_SLEEP=y
47 changes: 47 additions & 0 deletions .github/workflows/test-kernel.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: test-kernel
run-name: ${{ github.actor }} PR run
on: [pull_request, push]
jobs:
test-schedulers:
runs-on: ubuntu-22.04
steps:
### OTHER REPOS ####

# Hard turn-off interactive mode
- run: echo 'debconf debconf/frontend select Noninteractive' | sudo debconf-set-selections

# Refresh packages list
- run: sudo apt update

### DOWNLOAD AND INSTALL DEPENDENCIES ###

# Download dependencies packaged by Ubuntu
- run: sudo apt -y install gcc make git coreutils cmake elfutils libelf-dev libunwind-dev libzstd-dev linux-headers-generic linux-tools-common linux-tools-generic ninja-build python3-pip python3-requests qemu-kvm udev iproute2 busybox-static libvirt-clients kbd kmod file rsync zstd pahole flex bison cpio libcap-dev libelf-dev python3-dev cargo rustc

# clang 17
# Use a custom llvm.sh script which includes the -y flag for
# add-apt-repository. Otherwise, the CI job will hang. If and when
# https://github.com/opencollab/llvm-jenkins.debian.net/pull/26 is
# merged, we can go back to using https://apt.llvm.org/llvm.sh.
- run: wget https://raw.githubusercontent.com/Decave/llvm-jenkins.debian.net/fix_llvmsh/llvm.sh
- run: chmod +x llvm.sh
- run: sudo ./llvm.sh all
- run: sudo ln -sf /usr/bin/clang-17 /usr/bin/clang
- run: sudo ln -sf /usr/bin/llvm-strip-17 /usr/bin/llvm-strip

# Checkout repository
- uses: actions/checkout@v4

# Install virtme-ng
- run: pip install virtme-ng

### END DEPENDENCIES ###

# Build a minimal kernel (with sched-ext enabled) using virtme-ng
- run: vng -v --build --config .github/workflows/sched-ext.config

# Build the in-kernel schedulers
- run: cd tools/sched_ext && make

# Test the schedulers inside the recompile kernel
- run: .github/workflows/run-schedulers
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -170,3 +170,6 @@ sphinx_*/

# Rust analyzer configuration
/rust-project.json

# Include ".github" directory
!.github/
1 change: 1 addition & 0 deletions Documentation/scheduler/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ Scheduler
sched-nice-design
sched-rt-group
sched-stats
sched-ext
sched-debug

text_files
Expand Down
Loading
Loading