Commit Graph

234 Commits

Author SHA1 Message Date
Drew Galbraith c8931a01c8 [Zion] Fix physical page usage tracking. 2023-11-23 07:20:11 -08:00
Drew Galbraith 84e1b4cdb4 [Zion] Plumb user stack to free function on thread exit. 2023-11-23 07:12:23 -08:00
Drew Galbraith 941d7c8d59 [Zion] Add a way to unwind the stack and recover from user-space faults. 2023-11-22 18:25:08 -08:00
Drew Galbraith 9f0e87b51d [Glacier] Add proper string formatting for ErrorCodes. 2023-11-22 12:17:10 -08:00
Drew Galbraith a93aa3a426 [Zion] Add an invalid opcode handler. 2023-11-22 12:10:18 -08:00
Drew Galbraith 76fd3fc176 Update TODOs to reflect completed tasks. 2023-11-22 11:00:21 -08:00
Drew Galbraith da3901e104 [Zion] Add a semaphore primitive with related syscalls. 2023-11-22 10:19:56 -08:00
Drew Galbraith 96063126cb [Zion] Add task switching for SSE registers and enable them in userspace. 2023-11-21 15:52:17 -08:00
Drew Galbraith 2a984a93ec [Zion] Add a shim Floating Point Exception handler. 2023-11-21 15:17:32 -08:00
Drew Galbraith 0b8e2d8268 [Zion] Modify the alignement of the initial user stack pointer. 2023-11-21 14:53:59 -08:00
Drew Galbraith a1e1e1c2d8 [Zion] Enable SSE instructions at the start of boot.
These aren't ready to be used yet as we need to save them on task
switch.
2023-11-20 16:40:07 -08:00
Drew Galbraith 9b43d615a9 [Zion] Split free physical memory into two lists.
Allow partitioning create requests so for large continuous requests
we don't have to iterate past a bunch of single free pages.
2023-11-20 10:02:27 -08:00
Drew Galbraith 12ca4e4e89 [Zion] Separate Memory "Views" to a separate MemoryObject. 2023-11-19 23:22:56 -08:00
Drew Galbraith a8ad225cf1 [Zion] Make the base MemoryObject pure abstract. 2023-11-19 23:17:12 -08:00
Drew Galbraith 4d1846a7d5 [Zion] Actually free memory pages when a MemoryObject goes out of scope 2023-11-19 21:37:30 -08:00
Drew Galbraith 8e827a5dfb [Mammoth] Move all callers of FromCapability to OwnedMemoryObject. 2023-11-19 20:33:15 -08:00
Drew Galbraith 337126cabb [Glacier] Update String to be non-copyable by default. 2023-11-19 19:14:37 -08:00
Drew Galbraith 2e4a12661d [Zion] Add a syscall to get a memory object's length. 2023-11-19 19:02:55 -08:00
Drew Galbraith 30b6511467 [Zion] Add a AddressSpaceUnmap syscall to free memory. 2023-11-19 18:55:44 -08:00
Drew Galbraith e668428d9d [Zion] Move Memory Mappings to a dedicated tree impl. 2023-11-19 18:45:13 -08:00
Drew Galbraith 7d48dd2b8b [Zion] Add the ability to delete a capability. 2023-11-19 17:53:56 -08:00
Drew Galbraith 2e08eb76ff [zion] Move process.CheckState() to prevent infinite loop on thread exit. 2023-11-19 17:31:01 -08:00
Drew Galbraith 70bdb822a7 [Zion] Add implementation of KernelVmm::FreeKernelStack. 2023-11-19 17:29:09 -08:00
Drew Galbraith 308dd6a203 [Zion] Add a framework for better process exit. 2023-11-16 23:03:27 -08:00
Drew Galbraith aa2d80b557 [Zion] Move ProcessManager to map as well. 2023-11-16 22:17:11 -08:00
Drew Galbraith 6e227e1cf6 [Zion/Glacier] Add a HashMap to store process capabilities. 2023-11-16 22:12:00 -08:00
Drew Galbraith e1dc790155 [Zion] Clear interrupts on panic to actually hault the machine. 2023-11-16 22:10:54 -08:00
Drew Galbraith e4deca716c [Zion] Use range based for loop on LinkedList as POC. 2023-11-15 18:50:58 -08:00
Drew Galbraith 46d02e5eae [Zion] Remove sleeping messages. 2023-11-15 16:27:09 -08:00
Drew Galbraith c080c61398 [Denali] Reduce noise on AHCI interrupt. 2023-11-15 16:21:19 -08:00
Drew Galbraith e642f3900f [Zion] Print less about acpi on boot. 2023-11-15 16:09:36 -08:00
Drew Galbraith 9e76c81e97 [Zion] Move Kernel Stack Memory constants to separate file. 2023-11-15 15:55:24 -08:00
Drew Galbraith 07e6e3028d [Zion] Access the KernelStackManager through the VMM. 2023-11-15 15:38:25 -08:00
Drew Galbraith c5b9d20c7e [Zion] Remove early_dbgln since dbgln no longer allocs. 2023-11-15 15:19:02 -08:00
Drew Galbraith 20d6d2aaaf [Zion] Introduce the Kernel VMM to centralize allocs. 2023-11-15 15:15:31 -08:00
Drew Galbraith 0b47e3b7fc [Zion] Track used vs free physical memory. 2023-11-15 14:53:05 -08:00
Drew Galbraith 8e95a11907 [Zion] Move the physical memory manager to the LinkedList class. 2023-11-15 14:44:16 -08:00
Drew Galbraith 92d8a02291 [Zion] Cleanup memory debug statistics slightly. 2023-11-15 13:10:53 -08:00
Drew Galbraith 10d16e129f [Zion] Use a slab allocator for 64 byte and 128 byte allocs.
This has no effect on page usage for now (each uses a small amount of
pages so has some overhead.

However it does reduce the active allocations from
234 -> 146 (64B)
61 -> 51 (128B)
2023-11-15 13:06:14 -08:00
Drew Galbraith cc16210e90 [Zion] Use slab allocators immediately during heap init. 2023-11-15 13:02:34 -08:00
Drew Galbraith 659f122c9e [Zion] Free memory that was allocated with the slab allocator.
This reduces the number of active allocs by ~ 200.
Size 8: 142 -> 2
Size 16: 319 > 313
Size 32: 364-> 312
2023-11-15 12:53:14 -08:00
Drew Galbraith 6d27ee5dc5 [Zion] Add more debug information about kernel heap usage.
This will be helpful as we work to improve it.

Without deallocations, we currently stand at the following alloc numbers
8 - 142
16 - 319
32 - 364

unsized - 305

total page usage including slabs is 12.
2023-11-15 12:36:18 -08:00
Drew Galbraith 4657c46f73 [Zion] Fix kernel heap distribution calculation. 2023-11-15 12:14:58 -08:00
Drew Galbraith d71d543b2a [Zion] Move to a kernel slab allocator that will allow easier dealloc. 2023-11-15 12:04:35 -08:00
Drew Galbraith e5568450c2 [Zion] Make kernel slab allocation failures less chatty.
We started to hit this constraint but the allocators are due for
a redesign that actually does deallocation soon.
2023-11-15 09:45:37 -08:00
Drew Galbraith 52142afeb8 [Zion] Add proc prefix without allocation 2023-11-14 21:41:35 -08:00
Drew Galbraith fa6a5949b2 [Zion] Pass the framebuffer info to yellowstone init process. 2023-11-09 11:20:41 -08:00
Drew Galbraith 8d10f19312 [Glacier][Zion] Add a fix sized string builder to allow non-alloc debug. 2023-11-09 09:07:32 -08:00
Drew Galbraith 601f29c324 [Glacier] Add a specific VariableStringBuilder for StrFormat. 2023-11-09 08:52:30 -08:00
Drew Galbraith a745f45b5d [Zion] Add a method to dump the bootloader memory regions. 2023-11-08 08:07:57 -08:00