Anhad Singh
08231eb4df
feat(mremap): KEEP_OLD
...
Signed-off-by: Anhad Singh <andypython@protonmail.com >
Co-authored-by: @4lDO2
2024-12-11 16:08:08 +11:00
Jeremy Soller
4db9673e2a
Support SPCR and clean up device memory allocation
2024-10-31 10:53:58 -06:00
Andrey Turkin
0a6a90415a
Refactor initial memory paging
2024-10-19 08:44:46 +03:00
IncompententPirate
fc5d246b30
remove wrapper functions
2024-09-26 22:34:55 +00:00
Andrey Turkin
755694494b
Factor KernelMapper out of arch
...
Same implementation on all the platforms. Also remove mutable Deref as it allowed circumventing RO check
2024-09-25 21:51:39 +03:00
Andrey Turkin
ba154c0387
Fix a debug-build assertion
...
A range of usable memory could be small enough not to have any MAX_ORDER sized frames.
2024-09-04 10:55:11 +03:00
4lDO2
d94baa2712
Run rustfmt.
2024-07-15 17:50:18 +02:00
4lDO2
5e7db80285
Fix a bunch of warnings.
2024-07-15 17:48:45 +02:00
4lDO2
9b68d4de80
Fix add_ref(Shared) refcounting bug.
2024-07-15 17:20:55 +02:00
4lDO2
295cc820e6
WIP: userspace signal handling
2024-07-15 17:20:55 +02:00
Andrey Turkin
9c639af217
Fix debug assertion bug
2024-07-12 23:15:33 +03:00
4lDO2
2f1551a6bb
Mark allocated p2frame used *before* freelist unlock.
2024-03-26 17:07:37 +01:00
4lDO2
b5523df187
Only support power-of-two frame allocations.
2024-03-24 14:40:15 +01:00
4lDO2
b2d52d6736
Implement allocator free/used bookkeeping.
2024-03-24 14:27:25 +01:00
4lDO2
12282439b6
Reduce dead code, fix aarch64.
2024-03-23 23:51:12 +01:00
4lDO2
7261dccb72
Fix i686.
2024-03-23 16:54:47 +01:00
4lDO2
299a829ff3
Remove debug code.
2024-03-22 17:21:17 +01:00
4lDO2
676368f5d2
Fix booting to desktop.
2024-03-22 16:35:29 +01:00
4lDO2
c0f3b6ccca
Fix refcount assert
2024-03-22 13:32:14 +01:00
4lDO2
660acb4d94
Improve debugging
2024-03-22 13:32:14 +01:00
4lDO2
343f89f240
Fix unaligned section end append_pages.
2024-03-22 13:32:14 +01:00
4lDO2
baf46a3555
Far more progress
2024-03-22 13:32:13 +01:00
4lDO2
f4d270c7ce
Ensure freelist does not contain used pages.
2024-03-22 13:31:24 +01:00
4lDO2
a847e4745c
More progress
2024-03-22 13:31:24 +01:00
4lDO2
d2dc3302a7
Remove RefCount::Zero.
...
Only the allocator is allowed to switch between 0 and 1. Refcounts above
1 are however controlled by the virtual memory system.
2024-03-22 13:31:22 +01:00
4lDO2
3a8821e73b
Hopefully fix most UB
2024-03-22 13:28:21 +01:00
4lDO2
08784e7166
More progress
2024-03-22 13:27:50 +01:00
4lDO2
c349e4cd83
Fix allocate_frames_complex
2024-03-22 13:26:03 +01:00
4lDO2
4fccc4b87b
Some of userspace now boots!
2024-03-22 13:26:03 +01:00
4lDO2
bb01f0af66
More allocation progress
2024-03-22 13:26:03 +01:00
4lDO2
cfe153eb85
Fix section creation.
2024-03-22 13:25:57 +01:00
4lDO2
fe7244a8cd
Ensure both set_next and set_prev are called.
2024-03-22 13:25:08 +01:00
4lDO2
2ba9ff720c
Doubly-linked list.
2024-03-22 13:25:07 +01:00
4lDO2
0e8c187a50
WIP: Implement more of deallocate_p2frame.
2024-03-22 13:21:52 +01:00
4lDO2
fc19d63af9
Store aligned addrs rather than PFNs in Frame.
2024-03-22 13:19:19 +01:00
4lDO2
fd86bb4860
Try to naturally align sections.
2024-03-22 13:18:07 +01:00
4lDO2
d5b1ad2cd5
WIP: Improve allocation performance
2024-03-22 13:17:59 +01:00
bjorn3
e81113349c
Fix get_page_info for frames in the last memory section
2024-03-13 19:41:24 +01:00
4lDO2
79381249a2
Implement a TLB shootdown draft.
2024-03-04 19:03:00 +01:00
Jeremy Soller
45f1c4e29e
Add rustfmt from relibc and apply it with cargo fmt
2024-01-17 13:52:01 -07:00
4lDO2
ee3aafa1d9
Remove PhysBorrowed hacks.
2023-12-15 15:14:40 +01:00
4lDO2
875a130843
Remove SYS_PHYSALLOC* and SYS_PHYSFREE.
2023-12-15 15:14:40 +01:00
bjorn3
2d065083df
Use HashMap instead of BTreeMap where possible
...
This shrinks the kernel from 905840 bytes to 862408 bytes.
2023-12-13 19:55:20 +01:00
bjorn3
2aea52a94b
Remove the sole usage of the const_option feature
2023-12-12 20:21:31 +00:00
bjorn3
82a87be7d5
Avoid usage of the unstable Allocator trait
...
And also optimize init_sections to use the fact that allocate_frames
returns zeroed frames.
2023-12-12 20:21:31 +00:00
bjorn3
017702d3d2
Remove a lot of dead code
2023-12-12 15:01:29 +00:00
4lDO2
0c90802ae0
Fix RaiiFrame deallocation.
2023-08-08 11:57:57 +02:00
4lDO2
4688090dea
Fix RaiiFrame typo.
2023-08-03 16:46:42 +02:00
4lDO2
fe88b23d09
Use a single cow zeroed page for RO maps + eager mapping.
2023-08-01 13:11:00 +02:00
4lDO2
1e670645e4
Bypass kernel heap for storing PageInfo.
...
Since these are stored in arrays that are typically 512 KiB each
(i.e. which in turn typically store metadata for 128 MiB), they will
certainly be a page-size multiple, and large contiguous allocations are
allowed at least at boot time. Not only is the linked-list allocator
less efficient for that, but this change will also help reduce TLB
overhead.
2023-08-01 11:22:42 +02:00