Loïc Grégoire
c55beec893
ke,ex: rework kernel queue
...
There was previously a lock inversion in the queue code where we acquired the
queue lock under the thread lock (in the wait_any committing path). This patch
attempts to fix this by instead using an atomic count and deferring the waking
of other threads to a DPC.
2026-10-10 09:37:43 -04:00
Loïc Grégoire
cefc69e1b5
all: more tidying
2026-10-08 18:01:42 -04:00
Loïc Grégoire
619c373d47
all: tidy
2026-10-07 18:03:06 -04:00
Loïc Grégoire
b802919fc2
ke: add lock warden
2026-10-04 11:36:28 -04:00
Loïc Grégoire
ec05f050fb
ex: remove extraneous vmem check
2026-09-27 21:32:19 -04:00
Loïc Grégoire
d03251d3e0
ex: fix vmem bug
2026-09-27 17:40:55 -04:00
Loïc Grégoire
472cecea08
ex: move vmem to ex
2026-09-16 16:59:22 -04:00
Loïc Grégoire
6e8f9c375a
ex: remove console
2026-09-07 20:03:15 -04:00
Loïc Grégoire
bbd67d065d
fbconsole -> bootvid
2026-09-03 21:05:20 -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
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
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
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
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
1dedb5dba1
tests: add tests
2026-07-24 19:56:25 -04:00
Loïc Grégoire
a2c2e833be
ex/work: dynamic thread spawning
2026-07-18 21:24:16 -04:00
Loïc Grégoire
c1043f224a
ex: rename workqueue to work
2026-07-18 16:48:03 -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
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
2d18761822
rtl: add LinkerSet
2026-07-04 22:50:15 -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
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
a9c933114d
ps+ke: add thread reaping
2026-06-29 17:12:46 -04:00
Loïc Grégoire
e9b635733d
ex: add console.write
2026-06-27 16:30:26 -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
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
Loïc Grégoire
9e212277b5
ke: export Mutex
2026-06-20 12:08:59 -04:00
Loïc Grégoire
f647c47597
ex: add workqueue
2026-06-20 12:08:13 -04:00
Loïc Grégoire
e50b1e0167
ps: initial process subsystem
2026-06-18 18:54:38 -04:00
Loïc Grégoire
fb1523602d
ex: clean up init
2026-06-14 10:59:46 -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
3df3512ed8
fix(ex): make sin table i16 instead
2026-04-25 22:49:33 -04:00
Loïc Grégoire
f3786fefbc
fix(ex): don't start fireworks if no fb
2026-04-18 20:58:27 -04:00
Loïc Grégoire
8fc133cc3c
feat: fireworks!
2026-04-18 20:44:52 -04:00
Loïc Grégoire
712a8012af
feat(mm/zone): magazine initialization
2026-04-18 14:49:40 -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
1166e0af43
feat: initial ACPI support
2026-04-11 15:21:24 -04:00
Loïc Grégoire
5b60f08db5
feat(mm): initial mm work
2026-04-03 17:01:26 -04:00