Commit Graph

41 Commits

Author SHA1 Message Date
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