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
89259141bb
loader: pass cmdline (oops)
2026-07-18 14:42:54 -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
96d2bee857
loader: map pfndb and cleanup
2026-07-18 14:06:36 -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
f9b2eeffb0
build: add arch module to docs
2026-07-12 18:16:49 -04:00
Loïc Grégoire
f6dec9f334
rtl: fix LinkerSet on release builds
...
LLVM seemed to like doing DCE on those symbols, so export them to
ensure they are used. The `Tag` mess is because we need to generate
a unique symbol name, and the pointer cast is so we can export e.g zig
functions. This is messy.
2026-07-12 17:15:48 -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
898ceb171e
mm/zone: oops fix compile error
2026-07-05 20:24:47 -04:00
Loïc Grégoire
f416f3bf6c
mm/zone: pad CPUs to their own cache lines
2026-07-05 00:32:44 -04:00
Loïc Grégoire
ed7c449ad2
rtl: add CachePadded
2026-07-05 00:28:04 -04:00
Loïc Grégoire
79b96ed3dc
mm/zone: add hardening features
2026-07-04 23:43:57 -04:00
Loïc Grégoire
2d18761822
rtl: add LinkerSet
2026-07-04 22:50:15 -04:00
Loïc Grégoire
1647da3329
mm/zone: add tuning options
2026-07-04 18:17:38 -04:00
Loïc Grégoire
baf8516f34
ke: add tunables
2026-07-04 17:34:26 -04:00
Loïc Grégoire
e993ea711c
mm/zone: add drain
2026-07-03 23:32:18 -04:00
Loïc Grégoire
a5d42963ff
mm/zone: add dynamic depot resizing
2026-07-03 23:08:15 -04:00
Loïc Grégoire
881022f14d
mm/phys: calculate memory thresholds
2026-07-03 10:28:34 -04:00
Loïc Grégoire
d1787253c4
mm/zone: add magazine trimming
2026-07-03 10:28:17 -04:00
Loïc Grégoire
b559b8dbf7
pl(pc): fix overflow in deadline calculation
2026-07-03 10:27:41 -04:00
Loïc Grégoire
120b41c8ca
ex: add enqueue_in to workqueue
2026-07-03 10:27:29 -04:00
Loïc Grégoire
4a03a10d0c
everywhere: nuke UM
2026-07-02 20:01:12 -04:00
Loïc Grégoire
efe5df1567
mm: pmap overhaul
2026-07-01 13:02:39 -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
415c2996a2
ex: clear workqueue enqueued field before running the function
2026-07-01 13:01:42 -04:00
Loïc Grégoire
85e6a8fec9
mm: make physical allocation blocking (WIP)
2026-06-29 22:33:43 -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
bf08a9fef2
rtl: add HandoffList
2026-06-28 09:30:41 -04:00
Loïc Grégoire
e9b635733d
ex: add console.write
2026-06-27 16:30:26 -04:00
Loïc Grégoire
a1a5ba594e
dev: add backspace to fbconsole
2026-06-27 16:30:08 -04:00
Loïc Grégoire
020a6c7d60
pl: add debug_read
2026-06-27 16:29:55 -04:00
Loïc Grégoire
c10f5a6984
mm: rework page frame allocator
2026-06-27 11:35:46 -04:00
Loïc Grégoire
861418fb50
rtl: make List extern
2026-06-27 11:35:25 -04:00
Loïc Grégoire
25c770999f
all: refactor imports
2026-06-27 10:55:19 -04:00
Loïc Grégoire
37293bef32
mm: add page struct size to log
2026-06-27 10:55:09 -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
06e0b857ad
rtl: add assert_interface
2026-06-26 17:46:05 -04:00
Loïc Grégoire
39e85a391d
ex: add enqueued check to workqueue
2026-06-25 21:33:33 -04:00
Loïc Grégoire
4ba57ad42a
ke+mm: add TLB shootdown and memory reclamation.
2026-06-25 21:33:14 -04:00