Commit Graph

133 Commits

Author SHA1 Message Date
Matheus 91ec85d8ca panic: print backtrace on panic
Panics currently lack backtraces, which are a very useful thing to
have. Make the profiling backtrace function generic and print backtraces
using it.
2026-10-08 22:14:46 -03:00
wnstngs 91491d825b kernel: remove the list_t alias since it's just a typedef for node 2026-10-07 14:08:36 +03:00
wnstngs 3894be1a15 kernel: use list.h for DPC queues 2026-10-07 10:23:18 +03:00
Matheus e4a4896b4b kcov: initial implementation
Implement a device (/dev/kcov) that exposes coverage info for the
kernel. This will be especially useful for coverage-based fuzzing (e.g.
syzkaller).

Exclude a lot of functions which would crash/otherwise interfere in the
coverage, including only processing coverage callbacks when not handling
an irq.
2026-10-06 11:51:02 -03:00
Matheus 011309d43d cpu: add irq depth counting
Add a way of checking if a cpu is in the middle of handling an irq and
how deep it is into it. This will allow for future code to conditionally
run only in/outside interrupts.
2026-10-06 11:51:01 -03:00
Matheus efe699bd2f x86_64 cpu: always inline asm helpers 2026-10-06 11:50:57 -03:00
Matheus babc6f3e06 cpu: cpu_cache_line_size 2026-07-17 18:06:03 -03:00
Matheus 239c267ed3 mm: rename vmm api to mm 2026-07-01 15:00:46 -03:00
Matheus 6f8700e678 mm: refactor pmm -> page 2026-07-01 11:56:06 -03:00
Matheus f9912b8970 kernel: fix taking smep/smap path on unsupported systems 2026-05-14 12:03:11 -03:00
Matheus 3fda97332f ps2: don't wait forever on machines with no controller 2026-05-12 22:18:42 -03:00
iretq ace1130b8f apic: add missing includes 2026-04-27 00:15:22 -03:00
Matheus 71dd6d1125 x86-64: enable smep and smap 2026-04-23 15:29:43 -03:00
Matheus 06f414baaf smp: fix warning 2026-04-23 12:17:02 -03:00
Matheus 804cd32fc5 ldt: validate ldt entries 2026-04-22 19:48:13 -03:00
Matheus 5b164793cf syscall: do not use cr2 as a scratch register 2026-04-02 01:51:06 -03:00
Matheus 774ae10e99 kernel: update limine to 11 and use base revision 6 2026-04-01 16:45:42 -03:00
Matheus 41f97c6c61 kernel: ldt support 2026-03-20 21:23:59 -03:00
Matheus 0b5595ce70 mmu: add define 2026-03-08 14:48:04 -03:00
Matheus b3d5bf5586 vmm: some work towards page locking 2026-02-12 16:25:35 -03:00
Matheus 81f9e758dc kernel: misc fixes 2025-12-06 18:48:51 -03:00
Matheus 79b0d059f2 context: zero by default 2025-12-05 18:21:53 -03:00
Matheus 40bbf217ee kernel: profiling infrastructure 2025-12-05 18:19:42 -03:00
monkuous d301ec6955 kernel: add xsave support 2025-11-15 23:20:05 +01:00
Matheus accad4d70a mmu: enable global pages 2025-09-07 00:05:36 -03:00
Matheus 2fa040096c slab: rewrite slab allocator 2025-09-04 22:55:19 -03:00
Matheus 3f03b4a467 mmu: make shootdown data per cpu 2025-08-31 23:27:03 -03:00
Matheus a11406a600 scheduler: load balancing initial implementation 2025-08-25 22:41:20 -03:00
Matheus a3f376c1d6 fb: map as WC 2025-08-24 10:33:24 -03:00
Matheus 7a890ac41d scheduler: continue work 2025-08-23 13:54:45 -03:00
Matheus c024e1abb7 scheduler: little bit of cleanup 2025-08-20 22:15:09 -03:00
Matheus 136c86354c scheduler: continue rework 2025-08-20 22:00:25 -03:00
Matheus 607566531d kernel: rework init 2025-08-14 20:25:43 -03:00
Matheus ab26020935 mmap: support MAP_FIXED_NOREPLACE 2025-02-08 20:25:28 -03:00
Matheus d119d7123b signal: fix handling of fpu and some more small things 2025-02-08 20:16:15 -03:00
Matheus c34021e4d6 context: irq 2025-02-08 20:13:30 -03:00
Vlad-Robert Baciu 6df7c4ebd5 Use IA32_APIC_BASE MSR to get LAPIC address instead of the MADT 2025-01-11 18:46:27 +02:00
Matheus 0ed09edb63 signal: return from ucontext context 2024-12-25 21:58:39 -03:00
Matheus 936180e228 signal: ucontext and a fix 2024-12-25 20:23:32 -03:00
Matheus 9c53d875dc kernel: fix build 2024-10-03 22:51:09 -03:00
Matheus a2f133b346 timekeeper: try to sync base time between cpus 2024-10-02 19:43:32 -03:00
Matheus 65ef516fd8 tsc: redo calibration, directly use hpet 2024-10-02 19:42:57 -03:00
Matheus c3eef02d50 tsc: initial implementation of timekeeper source 2024-09-29 16:30:08 -03:00
Matheus fdd203d1a7 kvmclock: initial implementation 2024-09-29 11:21:46 -03:00
Matheus 11f76ab01d cpuid: better implementation 2024-09-29 11:21:21 -03:00
Matheus b8acbc5bcd timekeeper: redo timekeeping 2024-09-29 11:20:40 -03:00
8infy 12a2125f8e acpi: bump to latest uACPI master 2024-09-28 15:20:12 +03:00
Matheus 0585eff9a2 x86_64 cpu: find topology 2024-09-24 23:08:58 -03:00
Matheus 749f945205 scheduler: slightly redo how the preemption dpc is enqueued and add a skeleton for a rescheduling ipi 2024-09-17 22:29:06 -03:00
Matheus 80abd907a8 smp: smp_cpus 2024-09-16 21:36:16 -03:00