Loïc Grégoire
906433ca6d
mm/zone: remove leftover log
2026-08-29 20:04:40 -04:00
Loïc Grégoire
f205065d02
mm: initial balance manager code
2026-08-29 20:03:35 -04:00
Loïc Grégoire
8226a205a0
ke: add continuations
2026-08-29 20:03:22 -04:00
Loïc Grégoire
d06351f31c
mm/zone: defer free slab destruction
2026-08-20 21:59:28 -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
36f3175a7f
build: rewrite ksyms script in zig
2026-08-20 19:53:49 -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
157179ea27
ke/time: comment update
2026-08-19 18:04:50 -04:00
Loïc Grégoire
322714d508
amd64/tsc: reformat
2026-08-19 18:04:30 -04:00
Loïc Grégoire
ee0c6aad67
ke: scheduler overhaul
2026-08-19 18:04:12 -04:00
Loïc Grégoire
f78d10b62e
ke/log_ring: cleanup
2026-08-09 19:23:03 -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
63cd104616
ke: optimize TLB shootdowns
2026-08-09 16:44:41 -04:00
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
312902931f
ps: fix stack freeing bug
...
The thread could still be running on its stack whenever the stack ends
up getting reaped, which would free and reuse the stack before it
stops being used. Lock and unlock the thread to wait until it finishes
switching.
2026-08-02 21:45:47 -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
00d69c4a18
ex: add string interning
2026-08-01 19:11:31 -04:00
Loïc Grégoire
f37ca349dd
rcu/hashtable: make init take a struct
2026-08-01 19:11:08 -04:00
Loïc Grégoire
5bba618575
mm/zone: more SMR features
2026-08-01 19:10:26 -04:00
Loïc Grégoire
9394197e32
all: make memory model saner
2026-08-01 11:03:29 -04:00
Loïc Grégoire
b9819487fa
rcu/hashtable: more comments
2026-08-01 10:15:37 -04:00
Loïc Grégoire
fe0f4ce4cd
rcu: add hashtable
2026-08-01 10:07:24 -04:00
Loïc Grégoire
0f0ddffb2c
ex: add DelayedWorkItem
...
Separate WorkItem from DelayedWorkItem so that the former doesn't pay
the price of a timer and a Dpc if it won't ever get delayed.
2026-08-01 09:53:17 -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
1dedb5dba1
tests: add tests
2026-07-24 19:56:25 -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
00ae1a21f2
rtl: add consts to List
2026-07-22 17:00:13 -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
8b92a302a2
mm/zone: remove slab coloring
...
This simplifies the code and fixes a race condition where the color
was read and updated without taking the zone lock in slab_create().
I don't think coloring is very useful these days anyway.
2026-07-20 20:46:00 -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
ea33fcab30
mm/zone: add SMR zones
2026-07-19 16:51:22 -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
a954844eca
rtl: add acq barrier
2026-07-19 11:27:33 -04:00
Loïc Grégoire
a2c2e833be
ex/work: dynamic thread spawning
2026-07-18 21:24:16 -04:00