Loïc Grégoire
6701f17fb1
ke: clean up wait after continuation
2026-10-04 11:37:52 -04:00
Loïc Grégoire
b802919fc2
ke: add lock warden
2026-10-04 11:36:28 -04:00
Loïc Grégoire
8013e84d9f
ke/sched: style fixes
2026-09-20 00:24:44 -04:00
Loïc Grégoire
7d871ca75f
ke/sched: fix IPL window when stealing threads.
...
There was a window where a thread could get stolen from a CPU but never
enqueued, since IPL doesn't stay raised the whole time, and the CPU could
therefore get preempted. Keep IPL raised across the whole operation until the
thread is enqueued.
2026-09-20 00:12:54 -04:00
Loïc Grégoire
e7655e9725
ke: fix scheduler deadlock on switching
2026-09-19 22:19:30 -04:00
Loïc Grégoire
497e08bd7b
all: standardize suffixes
...
ki -> kep
mi -> mmp
2026-09-02 22:20:25 -04:00
Loïc Grégoire
d640053477
ke: disable stack donation for realtime threads
2026-09-02 20:37:26 -04:00
Loïc Grégoire
8226a205a0
ke: add continuations
2026-08-29 20:03:22 -04:00
Loïc Grégoire
07b3893859
ke/sched: add pin helpers
2026-08-20 21:33:22 -04:00
Loïc Grégoire
f6f20599ba
ke/sched: add hard affinity cpumask
2026-08-20 21:19:50 -04:00
Loïc Grégoire
3204a5de6b
ke/sched: make soft affinity tunable
2026-08-20 20:38:37 -04:00
Loïc Grégoire
0e48c47674
ke: move priority out of thread
2026-08-20 16:41:06 -04:00
Loïc Grégoire
ee0c6aad67
ke: scheduler overhaul
2026-08-19 18:04:12 -04:00
Loïc Grégoire
5cd981070e
ke/sched: check for pending DPCs in idle
2026-08-09 16:44:49 -04:00
Loïc Grégoire
4aaae63349
ke: add generic IPI mechanism
2026-08-03 20:00:45 -04:00
Loïc Grégoire
e36416304b
all: type-safe time units
2026-08-02 00:02:44 -04:00
Loïc Grégoire
02d2fb5144
ke/timer: make DPC parameter explicit
2026-08-01 22:43:32 -04:00
Loïc Grégoire
2d8fc2a6f0
ke/sched: update priority in clock()
2026-07-24 19:50:58 -04:00
Loïc Grégoire
85b0ee5320
ke/sched: fix promotion path
...
Threads that get promoted should preempt the next thread if possible.
2026-07-23 16:37:30 -04:00
Loïc Grégoire
5a30511866
ke/sched: fix priority formula
...
Hogs got promoted while other threads got demoted :(
2026-07-22 16:59:42 -04:00
Loïc Grégoire
878be31c7a
ke/sched: fix lock inversion in scheduler
...
Taking next's lock can be a lock inversion with the turnstile code.
Use a switching field instead and spin on that.
2026-07-19 20:40:50 -04:00
Loïc Grégoire
26ec72fb36
ke: many scheduler improvements
...
Added:
- PELT
- Decaying CPU affinity
- Better load-balancing metrics overall
- Better comments
And refined overall scheduler behavior
2026-07-12 21:46:16 -04:00
Loïc Grégoire
2a38cd4f4d
ke/turnstile: fix a bunch of bugs
2026-07-08 12:46:18 -04:00
Loïc Grégoire
2d18761822
rtl: add LinkerSet
2026-07-04 22:50:15 -04:00
Loïc Grégoire
a9c933114d
ps+ke: add thread reaping
2026-06-29 17:12:46 -04:00
Loïc Grégoire
55b89c1880
ke: make thread state atomic
2026-06-27 09:57:12 -04:00
Loïc Grégoire
b67391e1f2
ke: use assert_interface for ki.impl
2026-06-26 17:46:25 -04:00
Loïc Grégoire
5ee68e2ddf
ke: add Queue
2026-06-20 12:06:14 -04:00
Loïc Grégoire
42b10b886e
ke: make DPC handlers take in DPC pointer as parameter
2026-06-18 10:38:31 -04:00
Loïc Grégoire
68e0f7f8f7
ke: add turnstile and mutex
2026-06-12 15:53:10 -04:00
Loïc Grégoire
6265a8dd0d
ke: add mechanisms for updating priority
2026-05-22 22:08:12 -04:00
Loïc Grégoire
3a701067cd
rtl: add BitMap
...
Adds a new BitMap type in rtl for static bitmaps, now used to back
ke.CpuMask.
2026-05-08 14:58:57 -04:00
Loïc Grégoire
764b446ef1
fix(ke/sched): fix various bugs
2026-05-02 12:13:46 -04:00
Loïc Grégoire
a46782adca
build: switch to zonfig
2026-04-24 10:35:53 -04:00
Loïc Grégoire
b646115dfc
refactor(ke): read_time_nano -> read_time
2026-04-19 08:41:26 -04:00
Loïc Grégoire
a7e319c922
Revert "refactor: time -> clock"
...
This reverts commit 44cf08e57c .
2026-04-19 08:38:45 -04:00
Loïc Grégoire
8fc133cc3c
feat: fireworks!
2026-04-18 20:44:52 -04:00
Loïc Grégoire
44cf08e57c
refactor: time -> clock
2026-04-18 14:07:42 -04:00
Loïc Grégoire
a1db75746a
feat(pl/pc): add APIC timer support
2026-04-18 11:18:33 -04:00
Loïc Grégoire
1aa6743f43
refactor: use root instead of base
2026-04-17 20:58:25 -04:00
Loïc Grégoire
927ea2e1b8
fix(ke/sched): fix typo
2026-04-17 20:35:29 -04:00
Loïc Grégoire
faf76ca485
refactor: remove ke.Cpu struct
2026-03-30 17:45:49 -04:00
Loïc Grégoire
35094cb298
style(ke): rename timecounter to time
2026-03-28 01:25:06 -04:00
Loïc Grégoire
b89ee0e3e5
fix(ke): fix various scheduler bugs
2026-03-24 22:22:26 -04:00
Loïc Grégoire
47ce377d1b
feat(ke): add load balancing
2026-03-24 08:06:56 -04:00
Loïc Grégoire
020e81f34b
feat: use per-cpu sections
2026-03-23 20:29:34 -04:00
Loïc Grégoire
9e065ee023
initial commit
2026-03-21 22:47:06 -04:00