Commit Graph

282 Commits

Author SHA1 Message Date
Loïc Grégoire 5317cb54b4 ke+loader: rework kernel entry
oops, didn't test last commit on debug runs. Now this starts the kernel on its 16
kib stack.
2026-10-05 13:03:16 -04:00
Loïc Grégoire f53a596fb9 loader: boot kernel with a bootstrap stack (oops) 2026-10-05 12:56:36 -04:00
Loïc Grégoire 12d0e65fd5 all: more 0.17 migrations 2026-10-04 11:38:11 -04:00
Loïc Grégoire 6701f17fb1 ke: clean up wait after continuation 2026-10-04 11:37:52 -04:00
Loïc Grégoire 8815e5e52c ke: clean up wait code 2026-10-04 11:36:37 -04:00
Loïc Grégoire 6f07f181db ke: rework timer cancellation 2026-10-04 11:36:37 -04:00
Loïc Grégoire cbe823ce6e loader: pass more things to the kernel 2026-10-04 11:36:37 -04:00
Loïc Grégoire 72ff4882e8 loader: fix compile error 2026-10-04 11:36:37 -04:00
Loïc Grégoire b802919fc2 ke: add lock warden 2026-10-04 11:36:28 -04:00
Loïc Grégoire dd2161179d build: update tidy script 2026-10-03 17:08:43 -04:00
Loïc Grégoire 10c6c3d27f all: upgrade to zig 0.17 2026-10-03 17:00:13 -04:00
Loïc Grégoire a49a738d69 riscv64: fix build 2026-09-27 21:41:08 -04:00
Loïc Grégoire 714c63b8a6 build: x86_64 -> amd64 2026-09-27 21:37:01 -04:00
Loïc Grégoire 7d83278bc6 mm/zone: formatting 2026-09-27 21:36:45 -04:00
Loïc Grégoire 26084dbb99 riscv64: move trap code into ke 2026-09-27 21:36:23 -04:00
Loïc Grégoire ec05f050fb ex: remove extraneous vmem check 2026-09-27 21:32:19 -04:00
marv7000 2c20f0b456 riscv64: initial risc-v port 2026-09-27 21:32:00 -04:00
Loïc Grégoire d03251d3e0 ex: fix vmem bug 2026-09-27 17:40:55 -04:00
Loïc Grégoire 672f04a833 add tidy script 2026-09-27 16:21:40 -04:00
Loïc Grégoire c7673dc438 ke: fix shootdown bugs 2026-09-26 13:11:20 -04:00
Loïc Grégoire 021e213fb2 ke/turnstile: make turnstiles more finely locked
Add a per-turnstile lock which is now held across propagation, instead of a
per-chain lock. This should hopefully
avoid scalability problems if many different turnstiles point to the same
bucket.
2026-09-20 01:18:02 -04:00
Loïc Grégoire 8013e84d9f ke/sched: style fixes 2026-09-20 00:24:44 -04:00
Loïc Grégoire 7d871ca75f ke/sched: fix IPL window when stealing threads.
There was a window where a thread could get stolen from a CPU but never
enqueued, since IPL doesn't stay raised the whole time, and the CPU could
therefore get preempted. Keep IPL raised across the whole operation until the
thread is enqueued.
2026-09-20 00:12:54 -04:00
Loïc Grégoire a9028e53ff ke/smr: allow invalid sequences in deferred_advance_commit
This was buggy when the race was lost and it ended up trying to commit a
deferred advance of 0, now explicitly make the magazine's sequence invalid and
do nothing in deferred_advance_commit, avoiding an integer underflow.
2026-09-19 23:03:39 -04:00
Loïc Grégoire e7655e9725 ke: fix scheduler deadlock on switching 2026-09-19 22:19:30 -04:00
Loïc Grégoire 472cecea08 ex: move vmem to ex 2026-09-16 16:59:22 -04:00
Loïc Grégoire 33ea78a7dd ke: refine turnstile comments 2026-09-16 16:46:04 -04:00
Loïc Grégoire eeadc1420a mm/vmem: add importing and rework API 2026-09-13 22:13:18 -04:00
Loïc Grégoire 5c160382cc rtl: add custom assert 2026-09-13 21:43:42 -04:00
Loïc Grégoire 084d28b829 mm/vmem: add quantum caching 2026-09-13 15:47:36 -04:00
Loïc Grégoire 0c3e885797 mm/zone: rework around import layer
This ends up being cleaner for doing qcaches
2026-09-12 19:41:06 -04:00
Loïc Grégoire 1176e97e90 mm: more aggressive reclamation 2026-09-07 20:58:25 -04:00
Loïc Grégoire b5d3c5fdb9 mm/zone: free empty slabs on drain() 2026-09-07 20:58:14 -04:00
Loïc Grégoire 5cb96ec943 loader: free the kernel loaded by limine 2026-09-07 20:57:04 -04:00
Loïc Grégoire 1f448dfb87 ke/wait: make wait_any parameter const 2026-09-07 20:10:18 -04:00
Loïc Grégoire 2e1265f384 ke/ipl: avoid too many @intFromEnum 2026-09-07 20:04:14 -04:00
Loïc Grégoire 6e8f9c375a ex: remove console 2026-09-07 20:03:15 -04:00
Loïc Grégoire 81c3021598 tests: use sin approximation instead of table 2026-09-03 21:05:32 -04:00
Loïc Grégoire bbd67d065d fbconsole -> bootvid 2026-09-03 21:05:20 -04:00
Loïc Grégoire 497e08bd7b all: standardize suffixes
ki -> kep
mi -> mmp
2026-09-02 22:20:25 -04:00
Loïc Grégoire cf58ad369e ke: freeze CPUs on panic 2026-09-02 22:17:54 -04:00
Loïc Grégoire d640053477 ke: disable stack donation for realtime threads 2026-09-02 20:37:26 -04:00
Loïc Grégoire f4e5caab44 dev/fbconsole: fix compile error 2026-08-29 20:05:05 -04:00
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