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