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

v6.9-rc1-scx1 #20

Merged
merged 512 commits into from
Mar 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
512 commits
Select commit Hold shift + click to select a range
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
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
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
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
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
3877bf5
Merge branch 'master' into sched_ext-base-20240216
htejun Feb 16, 2024
41e19dd
Merge branch 'sched_ext-base-20240216' into htejun
htejun Feb 16, 2024
fde70eb
scx: Build fixes after pulling linus#main + bpf/for-next
htejun Feb 16, 2024
560afb8
scx: Fix kfunc registration
htejun Feb 17, 2024
384c4bc
Merge pull request #144 from sched-ext/htejun
Byte-Lab Feb 17, 2024
85082d1
scx: Tabify
htejun Feb 23, 2024
8a407b6
scx: Cosmetic
htejun Feb 23, 2024
5a640cd
tools/sched_ext: Drop unused stuff from .gitignore and Makefile
htejun Feb 23, 2024
4556b00
tools/sched_ext: Add missing dispatch_cancel decl and drop unused rav…
htejun Feb 23, 2024
b4740f2
scx_sync: Sync scheduler changes from https://github.com/sched-ext/scx
htejun Feb 23, 2024
63de9e9
scx: Initialize p->scx.runnable_at to jiffies instead of INITIAL_JIFFIES
htejun Feb 23, 2024
addfdd3
scx: Cosmetic
htejun Feb 23, 2024
1f86a3a
scx: Include cpu_to_kick_if_idle in debug dump
htejun Feb 23, 2024
3a55f2e
scx: Reorder the two fields in scx_init_task_args
htejun Feb 23, 2024
2189e53
scx: Cosmetic changes and comment update
htejun Feb 23, 2024
8405c32
selftests/sched_ext: Rename scx to sched_ext for consistency
htejun Feb 23, 2024
afa9148
selftests/sched_ext: Make status_to_result() never return NULL
htejun Feb 23, 2024
97e50eb
scx: More cosmetics
htejun Feb 23, 2024
118c263
Merge pull request #145 from sched-ext/htejun
htejun Feb 23, 2024
5ded767
tools/sched_ext: Bring back scx_central and scx_flatcg and simplify R…
htejun Feb 23, 2024
74cfdbf
Merge pull request #146 from sched-ext/htejun
Byte-Lab Feb 24, 2024
90b8f6e
scx: Fix spurious ops verification failure due to missing jiffies con…
htejun Feb 26, 2024
a9e80ff
Merge pull request #147 from sched-ext/htejun
Byte-Lab Feb 26, 2024
07efbc6
Merge branch 'master' into sched_ext-base
htejun Feb 27, 2024
6cead0f
Merge branch 'bpf/for-next' into sched_ext-base
htejun Feb 27, 2024
7f59cd3
Merge branch 'driver-core-next' into sched_ext-base
htejun Feb 27, 2024
6f0d95a
Merge branch 'sched_ext-base-20240224' into htejun
htejun Feb 27, 2024
3e14b2c
Merge pull request #148 from sched-ext/htejun
htejun Feb 27, 2024
c1a2b8f
tools/sched_ext: Drop unnecessary stuff from .gitignore
htejun Feb 27, 2024
fa3d441
Merge pull request #149 from sched-ext/htejun
Byte-Lab Feb 27, 2024
8f038e4
scx: Improve error reporting after an early scx_bpf_error()
htejun Feb 28, 2024
0accda1
Merge pull request #150 from sched-ext/htejun
Byte-Lab Feb 28, 2024
27b5de2
scx: Move tools/sched_ext/Kconfig content into sched-ext.rst
htejun Feb 28, 2024
047f5c2
Merge pull request #151 from sched-ext/htejun
Byte-Lab Feb 28, 2024
0f28bed
scx: Ignore WF_EXEC
htejun Mar 5, 2024
6e7c0d4
Merge pull request #152 from sched-ext/htejun
htejun Mar 5, 2024
34c6075
scx: Fix scx_ops_bypass_depth going out of sync
htejun Mar 5, 2024
272c50f
Merge pull request #154 from sched-ext/htejun
Byte-Lab Mar 5, 2024
5d03c39
Merge branch 'master' into sched_ext-base
htejun Mar 5, 2024
02836e7
Merge branch 'bpf/for-next' into sched_ext-base
htejun Mar 5, 2024
e394240
Merge branch 'sched_ext-base' into sched_ext
htejun Mar 5, 2024
a7e8912
Merge pull request #155 from sched-ext/htejun
Byte-Lab Mar 5, 2024
5ad2ba6
scx: Replace scx_bpf_switch_all() with an ops flag
htejun Mar 6, 2024
bccd579
tools/sched_ext, tools/testing/selftests/sched_ext: Fix build after s…
htejun Mar 6, 2024
8d7d0d3
tools/sched_ext: Remove -p option from three schedulers
htejun Mar 6, 2024
07d365a
scx: Add __COMPAT_SCX_OPS_SWITCH_PARTIAL and convert scx_qmap
htejun Mar 6, 2024
89a6fab
scx/compat.bpf.h: Replace __COMPAT_scx_bpf_kick_cpu_IDLE() with __COM…
htejun Mar 6, 2024
6b66b3a
mm: Introduce VM_SPARSE kind and vm_area_[un]map_pages().
Mar 5, 2024
b8c1554
Merge branch 'mm-enforce-ioremap-address-space-and-introduce-sparse-v…
anakryiko Mar 6, 2024
9c4cab4
bpf: Introduce may_goto instruction
Mar 6, 2024
cc570d8
bpf: Recognize that two registers are safe when their ranges match
Mar 6, 2024
7825948
bpf: Add cond_break macro
Mar 6, 2024
8089b99
selftests/bpf: Test may_goto
Mar 6, 2024
a74f509
Merge branch 'bpf-introduce-may_goto-and-cond_break'
anakryiko Mar 6, 2024
88972ac
libbpf: Allow version suffixes (___smth) for struct_ops types
eddyz87 Mar 6, 2024
1fcdcca
libbpf: Tie struct_ops programs to kernel BTF ids, not to local ids
eddyz87 Mar 6, 2024
08c5dde
libbpf: Honor autocreate flag for struct_ops maps
eddyz87 Mar 6, 2024
901a9c5
selftests/bpf: Test struct_ops map definition with type suffix
eddyz87 Mar 6, 2024
4597f85
selftests/bpf: Utility functions to capture libbpf log in test_progs
eddyz87 Mar 6, 2024
9c82929
selftests/bpf: Bad_struct_ops test
eddyz87 Mar 6, 2024
08dfc13
selftests/bpf: Test autocreate behavior for struct_ops maps
eddyz87 Mar 6, 2024
607a50f
libbpf: Sync progs autoload with maps autocreate for struct_ops maps
eddyz87 Mar 6, 2024
404855a
selftests/bpf: Verify struct_ops autoload/autocreate sync
eddyz87 Mar 6, 2024
24d9fe3
libbpf: Replace elf_state->st_ops_* fields with SEC_ST_OPS sec_type
eddyz87 Mar 6, 2024
cea716b
libbpf: Struct_ops in SEC("?.struct_ops") / SEC("?.struct_ops.link")
eddyz87 Mar 6, 2024
43525ab
libbpf: Rewrite btf datasec names starting from '?'
eddyz87 Mar 6, 2024
df32d59
selftests/bpf: Test case for SEC("?.struct_ops")
eddyz87 Mar 6, 2024
503012a
bpf: Allow all printable characters in BTF DATASEC names
eddyz87 Mar 6, 2024
bc22f9a
selftests/bpf: Test cases for '?' in BTF names
eddyz87 Mar 6, 2024
7d763bc
Merge branch 'libbpf-type-suffixes-and-autocreate-flag-for-struct_ops…
anakryiko Mar 6, 2024
4f28bba
scx/compat: Apply David's suggestions
htejun Mar 6, 2024
1729cd5
Merge pull request #156 from sched-ext/htejun
Byte-Lab Mar 6, 2024
9cf9ddc
Merge branch 'bpf/for-next' into sched_ext-base
htejun Mar 6, 2024
57eae53
Merge pull request #157 from sched-ext/sched_ext-base
Byte-Lab Mar 6, 2024
c39b30f
scx: Add sched_ext_ops.exit_dump_len and add userspace plumbing
htejun Mar 6, 2024
910e089
compat.bpf.h: Add DEFINE_SCX_OPS()
htejun Mar 7, 2024
37402bb
compat: Introduce SCX_LOAD/ATTACH() and apply to all example schedulers
htejun Mar 7, 2024
1e7f99f
scx: Implement configurable user_exit_info dump buffer size
htejun Mar 7, 2024
9204fc3
scx: Update .github workflow link
Byte-Lab Mar 7, 2024
fd154f5
Merge pull request #159 from sched-ext/ci
Byte-Lab Mar 7, 2024
541f061
scx examples: Drop stray "[-p]" from usage help messages
htejun Mar 7, 2024
13f2f03
Merge pull request #158 from sched-ext/htejun
htejun Mar 8, 2024
68fc8d6
scx: Trivial updates from patch splitting
htejun Mar 9, 2024
aea1cd0
Merge pull request #160 from sched-ext/htejun
Byte-Lab Mar 11, 2024
94dc0c0
scx: Use cpu_online_mask when resetting idle masks
htejun Mar 13, 2024
925e4d8
Merge pull request #161 from sched-ext/htejun
Byte-Lab Mar 13, 2024
7b1e063
scx: Update selftests to use new UEI macros
Byte-Lab Mar 14, 2024
873e7a4
scx: Add newline after test error output
Byte-Lab Mar 14, 2024
bbb65a3
Merge pull request #163 from sched-ext/fix_selftests
htejun Mar 14, 2024
6d5da8c
scx: Improve error behavior when p->scx.cgrp_moving_from is unexpecte…
htejun Mar 19, 2024
d439866
scx: Fix ops.cgroup_move() not being called on a task which went thro…
htejun Mar 19, 2024
fc86083
Merge pull request #165 from sched-ext/htejun
htejun Mar 19, 2024
82aa233
Merge commit 'fc86083986063457029fe1039bbf1632d2fdca2b' into scx-6.9-rc1
Byte-Lab Mar 28, 2024
f95ba24
scx: Fix init_enable_count
Byte-Lab Mar 25, 2024
4706b5a
v6.9-rc1-scx1
Byte-Lab Mar 28, 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 @@ -171,3 +171,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 @@ -20,6 +20,7 @@ Scheduler
sched-nice-design
sched-rt-group
sched-stats
sched-ext
sched-debug

text_files
Expand Down
Loading