Loïc Grégoire
|
52f62b8354
|
ke: optimize IPL operations
|
2026-08-07 15:41:12 -04:00 |
|
Loïc Grégoire
|
5bb264a9ae
|
loader: rework kernel entry point
|
2026-08-07 15:40:58 -04:00 |
|
Loïc Grégoire
|
13375f294c
|
ke/mutex: wrap lines
|
2026-08-05 17:52:17 -04:00 |
|
Loïc Grégoire
|
bec872bc26
|
all: refactor coding style
|
2026-08-05 17:43:46 -04:00 |
|
Loïc Grégoire
|
2a09642f4d
|
ke: rework kernel initialization
|
2026-08-05 16:10:37 -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
|
24372a2b4e
|
ke/wait: add wait_reason
|
2026-08-02 00:02:00 -04:00 |
|
Loïc Grégoire
|
05c7694776
|
ke/wait: make timeout parameter explicit
|
2026-08-01 22:44:22 -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
|
9394197e32
|
all: make memory model saner
|
2026-08-01 11:03:29 -04:00 |
|
Loïc Grégoire
|
1569bc2b29
|
ke/smr: fix compile errors
|
2026-07-27 19:37:41 -04:00 |
|
Loïc Grégoire
|
9c48a5207c
|
ke/smr: expose simpler APIs
|
2026-07-26 20:41:01 -04:00 |
|
Loïc Grégoire
|
092616d1c2
|
ke/smr: make tracker struct smaller
|
2026-07-24 19:55:07 -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
|
a969624f20
|
ke/smr: add support for preemptible SMR
|
2026-07-23 16:39:43 -04:00 |
|
Loïc Grégoire
|
e4621e03c1
|
ke/turnstile: add support for multiple owners
|
2026-07-23 16:38:59 -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
|
6284ba7824
|
ke/smr: add deferred advance
|
2026-07-19 16:28:09 -04:00 |
|
Loïc Grégoire
|
3ffca18054
|
ke: initial SMR implementation
|
2026-07-19 11:27:42 -04:00 |
|
Loïc Grégoire
|
a2c2e833be
|
ex/work: dynamic thread spawning
|
2026-07-18 21:24:16 -04:00 |
|
Loïc Grégoire
|
782196275b
|
mm+ke: make shootdowns use HandoffList
|
2026-07-18 16:45:32 -04:00 |
|
Loïc Grégoire
|
d21cefaf10
|
ke/spinlock: use std.atomic
|
2026-07-18 16:11:05 -04:00 |
|
Loïc Grégoire
|
fddd9865f7
|
ke/mutex: do TTAS spin
This is better to do than `pause`-ing in a CAS loop.
|
2026-07-18 16:08:34 -04:00 |
|
Loïc Grégoire
|
301946c774
|
all: use root boot info pointer
|
2026-07-18 14:41:30 -04:00 |
|
Loïc Grégoire
|
072239dc32
|
loader: detect CPU features
|
2026-07-18 14:37:30 -04:00 |
|
Loïc Grégoire
|
3c72101228
|
rework entry point
|
2026-07-17 21:26:13 -04:00 |
|
Loïc Grégoire
|
a79c7a07cb
|
loader: initial loader code
|
2026-07-16 19:48:01 -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
|
5fbc61ecb1
|
ke/mutex: fix possible use-after-free
A thread might get reaped between loading the owner and its state,
leading to a possible use-after-free.
|
2026-07-08 11:15:31 -04:00 |
|
Loïc Grégoire
|
2d18761822
|
rtl: add LinkerSet
|
2026-07-04 22:50:15 -04:00 |
|
Loïc Grégoire
|
baf8516f34
|
ke: add tunables
|
2026-07-04 17:34:26 -04:00 |
|
Loïc Grégoire
|
4a03a10d0c
|
everywhere: nuke UM
|
2026-07-02 20:01:12 -04:00 |
|
Loïc Grégoire
|
88d6fd10de
|
ke: don't signal log event if high IPL
|
2026-07-01 13:02:07 -04:00 |
|
Loïc Grégoire
|
11c858c5e8
|
ke: add is_locked to mutex
|
2026-06-29 22:32:41 -04:00 |
|
Loïc Grégoire
|
a9c933114d
|
ps+ke: add thread reaping
|
2026-06-29 17:12:46 -04:00 |
|
Loïc Grégoire
|
25c770999f
|
all: refactor imports
|
2026-06-27 10:55:19 -04:00 |
|
Loïc Grégoire
|
f94098d0a5
|
ke: change mutex spinning policy
|
2026-06-27 10:06:17 -04:00 |
|
Loïc Grégoire
|
55b89c1880
|
ke: make thread state atomic
|
2026-06-27 09:57:12 -04:00 |
|
Loïc Grégoire
|
5353ab2e0b
|
rtl: check all decls in interfaces
|
2026-06-27 09:17:25 -04:00 |
|
Loïc Grégoire
|
827f8b90d1
|
all: add console and logging machinery
|
2026-06-26 23:41:22 -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
|
4ba57ad42a
|
ke+mm: add TLB shootdown and memory reclamation.
|
2026-06-25 21:33:14 -04:00 |
|
Loïc Grégoire
|
3aa0daaee7
|
rtl: add AtomicBitmap
|
2026-06-20 13:56:54 -04:00 |
|
Loïc Grégoire
|
9e212277b5
|
ke: export Mutex
|
2026-06-20 12:08:59 -04:00 |
|
Loïc Grégoire
|
5ee68e2ddf
|
ke: add Queue
|
2026-06-20 12:06:14 -04:00 |
|
Loïc Grégoire
|
e50b1e0167
|
ps: initial process subsystem
|
2026-06-18 18:54:38 -04:00 |
|