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

Backport cgroup method bal fix #13

Closed
wants to merge 446 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
446 commits
Select commit Hold shift + click to select a range
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
26ae1b0
scx: Make scx_exit_info fields dynamically allocated
htejun Jan 23, 2024
47ae206
scx: Misc scx_exit_info related updates
htejun Jan 23, 2024
986e8e7
scx: Dump debug info after an abort
htejun Jan 23, 2024
7f7f3c9
Merge pull request #126 from sched-ext/htejun
htejun Jan 23, 2024
50f8db4
Merge remote-tracking branch 'sched-ext/sched_ext' into scx_merge
Byte-Lab Jan 23, 2024
99bbb4d
Merge pull request #1 from sched-ext/PR_merge
Byte-Lab Jan 23, 2024
c581bc3
sched_ext Linux kernel v6.8.0-rc1-scx1
Byte-Lab Jan 23, 2024
5046ce8
scx: rq should be locked when calling scx_ops_exit_task() from scx_ca…
htejun Jan 23, 2024
0c6e66d
Merge pull request #127 from sched-ext/htejun
Byte-Lab Jan 23, 2024
7df004e
Revert "kernfs: convert kernfs_idr_lock to an irq safe raw spinlock"
htejun Jan 9, 2024
8ace3c7
kernfs: Rearrange kernfs_node fields to reduce its size on 64bit
htejun Jan 9, 2024
9de625b
kernfs: RCU protect kernfs_nodes and avoid kernfs_idr_lock in kernfs_…
htejun Jan 9, 2024
58ac752
Merge pull request #128 from sched-ext/htejun
Byte-Lab Jan 23, 2024
d502088
sched_ext Linux kernel v6.8.0-rc1-scx2
Byte-Lab Jan 25, 2024
b962e86
Merge pull request #3 from sched-ext/scx_merge
Byte-Lab Jan 25, 2024
fa75b1f
scx: fix NULL pointer dereference with scx_exit_info
Jan 26, 2024
65c2651
Merge pull request #129 from sched-ext/fix-null-scx_exit_info
Byte-Lab Jan 28, 2024
ddb5003
scx: Add fork field to struct scx_init_task_args
Byte-Lab Jan 29, 2024
c184bf2
scx: Add testcases for transitioning in struct scx_init_task_args
Byte-Lab Jan 29, 2024
029c4a8
scx: Don't print skipped tests by default
Byte-Lab Jan 29, 2024
cab6513
Merge pull request #132 from sched-ext/init_flag
htejun Jan 29, 2024
02e07c2
scx: Add "maximal" scheduler testcase
Byte-Lab Dec 8, 2023
decb51a
scx: Add stress-test for loading schedulers in a tight loop
Byte-Lab Jan 28, 2024
2a47533
scx: Update spaces -> tabs for maybe_null testcase
Byte-Lab Jan 29, 2024
d0e0b1a
Merge pull request #130 from sched-ext/more_selftests
Byte-Lab Jan 29, 2024
9ba1cda
Merge remote-tracking branch 'sched-ext/sched_ext' into merge_latest
Byte-Lab Jan 31, 2024
97c4853
Merge pull request #6 from sched-ext/merge_latest
htejun Jan 31, 2024
05b49ec
scx: Purge most schedulers from tools/sched_ext
htejun Feb 2, 2024
c5fcab9
scx_sync: Sync scheduler changes from https://github.com/sched-ext/scx
htejun Feb 2, 2024
efc946e
Merge pull request #133 from sched-ext/htejun
Byte-Lab Feb 2, 2024
b1f6c1d
scx: Print p->cpus_ptr when dumping scheduler state
htejun Feb 2, 2024
5a82ae3
Merge pull request #134 from sched-ext/htejun
Byte-Lab Feb 2, 2024
7684264
scx: Implement scx_bpf_dispatch_cancel()
htejun Feb 3, 2024
1ecced8
Merge pull request #135 from sched-ext/htejun
htejun Feb 4, 2024
90fa5c0
scx: Only do CI runs for PRs
Byte-Lab Feb 4, 2024
2714042
Merge pull request #136 from sched-ext/ci_reduction
Byte-Lab Feb 5, 2024
471272e
scx: Use BPF macros for sched_ext kfuncs
Byte-Lab Feb 6, 2024
16e1591
Merge pull request #137 from sched-ext/kfunc_tags
htejun Feb 6, 2024
254b3ed
scx: Clear scx_rq->cpus_* bits selectively and reduce memory access
htejun Feb 7, 2024
987cd4f
scx: Factor out kick_one_cpu() from kick_cpus_irq_workfn()
htejun Feb 7, 2024
fe5e498
scx: Implement SCX_KICK_IDLE
htejun Feb 7, 2024
a80615d
Merge pull request #138 from sched-ext/htejun
htejun Feb 7, 2024
9c3946e
scx: Actually allocate rq->scx.cpus_to_kick_if_idle
htejun Feb 7, 2024
28325e3
Merge pull request #139 from sched-ext/htejun
Byte-Lab Feb 7, 2024
c1c1b3b
scx: Better invalid state transition warnings
htejun Feb 7, 2024
c0fb0e5
scx: Fix invalid state transition while scheduler is loaded
htejun Feb 8, 2024
6f5bf31
Merge pull request #140 from sched-ext/htejun
Byte-Lab Feb 8, 2024
a8b7d07
scx: Don't wait for a work item before scheduling is restored in scx_…
htejun Feb 9, 2024
7caf4d3
Merge pull request #141 from sched-ext/htejun
Byte-Lab Feb 9, 2024
92bf59c
Merge tag 'v6.8-rc4' into merge_latest
Byte-Lab Feb 13, 2024
2fe3b85
Merge commit '7caf4d33531cc92b826b093d16624f2fc11ddd5e' into merge_la…
Byte-Lab Feb 13, 2024
af7632e
v6.8-rc4-scx1
Byte-Lab Feb 13, 2024
aaccc2a
Merge pull request #9 from sched-ext/merge_latest
htejun Feb 14, 2024
70caae8
scx: Avoid memory leak of scx_root_kobj
Byte-Lab Feb 14, 2024
d93dcbf
Merge pull request #143 from sched-ext/kobject_leak
Byte-Lab Feb 14, 2024
412f5ea
Merge commit 'd93dcbfb0cff049236bdc4eb984abb3b9c5d64b0' into merge_la…
Byte-Lab Feb 14, 2024
824f6e7
v6.8-rc4-scx2
Byte-Lab Feb 14, 2024
4b8cae1
Merge pull request #11 from sched-ext/merge_latest68
Byte-Lab Feb 14, 2024
f661691
Merge tag 'v6.8-rc6' into backup
Byte-Lab Feb 26, 2024
41c5808
scx: Fix spurious ops verification failure due to missing jiffies con…
htejun Feb 26, 2024
304998f
v6.8-rc6-scx1
Byte-Lab Feb 26, 2024
9802196
Merge pull request #14 from sched-ext/scx-6.8rc6
htejun Feb 26, 2024
5f6c94a
scx: Ignore WF_EXEC
htejun Mar 5, 2024
cc8b45e
scx: Fix scx_ops_bypass_depth going out of sync
htejun Mar 5, 2024
f55daa7
scx: Update .github workflow link
Byte-Lab Mar 7, 2024
f0d2f57
Merge commit '90d35da658da8cff0d4ecbb5113f5fac9d00eb72' into scx-6.8-rc7
Byte-Lab Mar 8, 2024
289eda8
v6.8-rc7-scx1
Byte-Lab Mar 8, 2024
0db777e
Merge pull request #16 from sched-ext/scx-6.8-rc7
htejun Mar 8, 2024
487bc1c
Merge tag 'v6.8' into v6.8.0-scx1
Byte-Lab Mar 11, 2024
f8df1aa
v6.8.0-scx1
Byte-Lab Mar 11, 2024
b0f483e
Merge pull request #17 from sched-ext/v6.8.0-scx1
Byte-Lab Mar 11, 2024
c0c3774
scx: Improve error behavior when p->scx.cgrp_moving_from is unexpecte…
htejun Mar 19, 2024
ffdaefb
scx: Fix ops.cgroup_move() not being called on a task which went thro…
htejun Mar 19, 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]
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/Byte-Lab/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