Commit Graph

239 Commits

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