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
Drew Galbraith
69aced2220
[Zion] Move to StrFormat for debug line.
2023-11-05 09:24:09 -08:00
Drew Galbraith
4af19d010f
[Zion] Add an early debug method without allocations.
2023-11-05 08:48:41 -08:00
Drew Galbraith
85564b018d
[Zion] Add todo comment for storing memory mappings in the address space.
2023-11-05 05:59:45 -08:00
Drew Galbraith
a16dcc2aa9
[Zion] Use a binary tree to store address space mappings.
2023-11-03 19:47:39 -07:00
Drew Galbraith
d9df1212b7
[Zion] Pass data to message queue as IpcMessage obj.
2023-11-03 00:37:53 -07:00
Drew Galbraith
d7af2e3f4f
[Zion] Return the IpcMessage up to the syscall level.
2023-11-03 00:12:28 -07:00
Drew Galbraith
d2c77e1d18
[Zion] Move away from storing pointers to IpcMessages.
2023-11-02 23:51:52 -07:00