Commit Graph

287 Commits

Author SHA1 Message Date
1bbed2e077 Fix Segment::from_unused which lacks a panic 2025-02-14 13:24:51 +08:00
b59cd9cea2 Use 64-bit reference counts for frames and fix meta layouts 2025-02-14 13:24:51 +08:00
44d54f4b23 Implement UniqueFrame and Frame::from_in_use 2025-02-14 13:24:51 +08:00
b007e334b8 Fix the #VE irq issue causing TDX CI failure 2025-02-14 10:19:44 +08:00
55713b88c4 Remove unused dependencies 2025-02-10 10:36:56 +08:00
95bbc7f367 Enforce #[expect(lint)] 2025-02-08 15:10:04 +08:00
0dca168717 Use #[expect(lint)], not #[allow(lint)] 2025-02-08 15:10:04 +08:00
b415538097 Remove useless #[allow(lint)] 2025-02-08 15:10:04 +08:00
2cf4aebe7a Use FnOnce() + Send as task func 2025-01-23 09:57:10 +08:00
fb8f493b43 Implement RwArc 2025-01-09 10:58:16 +08:00
16862a2024 Use mutable pointer for kernel heap
Co-authored-by: Chen Chengjun <chenchengjun.ccj@antgroup.com>
2025-01-02 13:21:47 +08:00
87ee88da8c Alloc-free boot page table
This PR uses an unused bit to differentiate allocated boot PT frames,
so that there's no need of a buffer to remember and deallocate frames.
2025-01-02 10:41:51 +08:00
7676f8ec95 Reorder heap initialization 2025-01-02 10:41:51 +08:00
5ea366bced Move kcmdline parsing out of OSTD 2025-01-02 10:41:51 +08:00
397ce9652f Refactor boot modules to make heap allocation explicit 2025-01-02 10:41:51 +08:00
51349a3da1 Heapless memory region initialization 2025-01-02 10:41:51 +08:00
bfc71d1b27 Bump version to 0.11.1 2024-12-30 16:24:22 +08:00
ff453f5933 Use CachePage in all related block functions 2024-12-27 12:12:51 +08:00
983a6af3cc Polish the doc and rename variables in ostd::mm 2024-12-27 12:12:51 +08:00
cdac59beda Implement a new set of physical page APIs 2024-12-27 12:12:51 +08:00
6e1c36965a Allow Segment<dyn FrameMeta> 2024-12-27 12:12:51 +08:00
ef6ff7ad84 Let frame on-drop call backs take readers 2024-12-27 12:12:51 +08:00
14308f81b6 Remove AnyFrame 2024-12-27 12:12:51 +08:00
c9a37ccab1 Renaming concepts around pages and frames
This commit renames `Frame` -> `UntypedFrame` and `Page` -> `Frame`.
So do other concepts in the following list:
 - `Segment` -> `UntypedSegment`,
 - `ContPages` -> `Segment`,
 - `DynPage` -> `AnyFrame`,
 - `PageMeta` -> `FrameMeta`,
 - `FrameMeta` -> `UntypedMeta`.

This commit also re-organized the source in the `mm/page` and `mm/frame`
module to accommodate the changes.
2024-12-27 12:12:51 +08:00
10f1856306 Remove the vectorized page allocation 2024-12-27 12:12:51 +08:00
2f82ca846f Work around the compile error caused by crate "unwinding" 2024-12-27 10:34:06 +08:00
bd89c9c578 Bump the version to 0.11.0 2024-12-26 19:20:58 +08:00
38fcaaf749 Implement the task local data 2024-12-26 14:51:20 +08:00
3dbdef4d6c Add several lmbench network benchmark 2024-12-26 09:08:21 +08:00
5aa73d3bcf Use REF_COUNT_MAX to avoid overflowing 2024-12-25 18:20:36 +08:00
f03ffd0d10 Use REF_COUNT_UNUSED to ensure exclusive access 2024-12-25 18:20:36 +08:00
a2863d6db3 Use MaybeUninit to store metadata vtable 2024-12-25 18:20:36 +08:00
6f98c4900d Bump version to 0.10.3 2024-12-20 09:49:35 +08:00
c5d1542736 Bump version to 0.10.2 2024-12-17 10:47:41 +08:00
ced0023d6b Introduce a syscall restart mechanism 2024-12-16 21:12:08 +08:00
f1df7982fd Add temporary linear mapping for metadata 2024-12-16 19:21:54 +08:00
508919ca38 Heapless metadada init 2024-12-16 19:21:54 +08:00
04511b74c4 Revise the access of some external statics 2024-12-16 19:15:59 +08:00
68bdda4c4c Set the page table for APs before kicking 2024-12-16 19:15:59 +08:00
60365a818a Use pointer metadata for page metadata 2024-12-16 13:22:05 +08:00
53b873f647 Add get_mut methods for locks 2024-12-15 16:36:54 +08:00
87e953eac3 Add a missing #[track_caller] 2024-12-15 16:36:54 +08:00
18d5eb1f02 Use physical addresses in boot segments 2024-12-13 10:42:05 +08:00
969ac97144 Make atomic mode panics have clear messages 2024-12-11 20:27:29 +08:00
dbee797bca Accept pending private pages in TDX environment 2024-12-11 19:36:51 +08:00
1b6901f0f8 Bump tdx-guest crate version to 0.1.8 2024-12-11 19:36:51 +08:00
00e3688aa8 Bump version to 0.10.1 2024-12-07 19:02:46 +08:00
74c11134f1 Use fn() for the bottom half handler 2024-12-05 13:42:12 +08:00
28edc57dd0 Fix the nested bottom half 2024-12-05 13:42:12 +08:00
7865469998 Make the logger in OSTD injectable 2024-12-04 13:24:06 +08:00