Commit Graph

236 Commits

Author SHA1 Message Date
Zhang Junyang ff453f5933 Use `CachePage` in all related block functions 2024-12-27 12:12:51 +08:00
Zhang Junyang 983a6af3cc Polish the doc and rename variables in `ostd::mm` 2024-12-27 12:12:51 +08:00
Zhang Junyang cdac59beda Implement a new set of physical page APIs 2024-12-27 12:12:51 +08:00
Zhang Junyang 6e1c36965a Allow `Segment<dyn FrameMeta>` 2024-12-27 12:12:51 +08:00
Zhang Junyang ef6ff7ad84 Let frame on-drop call backs take readers 2024-12-27 12:12:51 +08:00
Zhang Junyang 14308f81b6 Remove `AnyFrame` 2024-12-27 12:12:51 +08:00
Zhang Junyang 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
Zhang Junyang 10f1856306 Remove the vectorized page allocation 2024-12-27 12:12:51 +08:00
Ruihan Li 38fcaaf749 Implement the task local data 2024-12-26 14:51:20 +08:00
jiangjianfeng 3dbdef4d6c Add several lmbench network benchmark 2024-12-26 09:08:21 +08:00
Ruihan Li 5aa73d3bcf Use `REF_COUNT_MAX` to avoid overflowing 2024-12-25 18:20:36 +08:00
Ruihan Li f03ffd0d10 Use `REF_COUNT_UNUSED` to ensure exclusive access 2024-12-25 18:20:36 +08:00
Ruihan Li a2863d6db3 Use `MaybeUninit` to store metadata vtable 2024-12-25 18:20:36 +08:00
Zejun Zhao ced0023d6b Introduce a syscall restart mechanism 2024-12-16 21:12:08 +08:00
Zhang Junyang f1df7982fd Add temporary linear mapping for metadata 2024-12-16 19:21:54 +08:00
Zhang Junyang 508919ca38 Heapless metadada init 2024-12-16 19:21:54 +08:00
Zhang Junyang 04511b74c4 Revise the access of some external statics 2024-12-16 19:15:59 +08:00
Zhang Junyang 68bdda4c4c Set the page table for APs before kicking 2024-12-16 19:15:59 +08:00
Zhang Junyang 60365a818a Use pointer metadata for page metadata 2024-12-16 13:22:05 +08:00
Ruihan Li 53b873f647 Add `get_mut` methods for locks 2024-12-15 16:36:54 +08:00
Ruihan Li 87e953eac3 Add a missing `#[track_caller]` 2024-12-15 16:36:54 +08:00
Ruihan Li 18d5eb1f02 Use physical addresses in boot segments 2024-12-13 10:42:05 +08:00
Ruihan Li 969ac97144 Make atomic mode panics have clear messages 2024-12-11 20:27:29 +08:00
Ruihan Li 74c11134f1 Use `fn()` for the bottom half handler 2024-12-05 13:42:12 +08:00
Ruihan Li 28edc57dd0 Fix the nested bottom half 2024-12-05 13:42:12 +08:00
Chen Chengjun 7865469998 Make the logger in OSTD injectable 2024-12-04 13:24:06 +08:00
Chen Chengjun b17cbb2408 Finish bootstrap once finishing the initialization of OSTD 2024-12-04 13:24:06 +08:00
徐启航 878f3f3760 Scheduling class support 2024-12-04 09:36:41 +08:00
Ruihan Li a260411a2a Implement `WriteIrqDisabled` 2024-12-03 12:07:24 +08:00
Ruihan Li 29659dbc98 Move `Guardian` to `guard.rs` 2024-12-03 12:07:24 +08:00
Ruihan Li 9e814251df Remove unnecessary trait bounds 2024-12-03 12:07:24 +08:00
Shaowei Song d37da228ab Improve flexibility of `DmaStreamSlice` 2024-12-02 13:25:20 +08:00
Marsman1996 6d3bb5a9d0 Fix compile error caused by updated `Step::steps_between` in Rust 2024-12-01 18:56:28 +08:00
Qingsong Chen 5e35704e38 Support eagerly FPU state save/restore
Co-authored-by: Shaowei Song <songshaowei.ssw@antgroup.com>
2024-11-29 21:53:14 +08:00
Ruize Tang 5313689d6f Fix deadlock in FLUSH_OPS by disabling IRQ 2024-11-27 12:11:46 +08:00
Hsy-Intel d67976da88 Support TDX debugging feature 2024-11-26 19:15:22 +08:00
Ruize Tang 9e5075dab7 Clear `DF` flag during trap handling to conform to x86-64 calling convention 2024-11-25 14:20:28 +08:00
Qingsong Chen 81898362b6 Add virtio legacy interface 2024-11-21 19:10:06 +08:00
jiangjianfeng 495c93c2ad Refactor Rwlock to take type parameter 2024-11-21 15:46:10 +08:00
Ruihan Li f1aae23234 Rename `as_ptr_mut` to `as_mut_ptr` 2024-11-21 09:02:58 +08:00
Ruihan Li b6944e48bd `CpuLocalCell::as_ptr_mut` should be safe 2024-11-21 09:02:58 +08:00
Ruihan Li 3d63ed7a4c Keep interrupts disabled during context switching 2024-11-21 09:02:58 +08:00
Ruihan Li 9b38eff5fe Avoid `Arc` instances in `switch_to` 2024-11-21 09:02:58 +08:00
Ruihan Li ec2c6ab7a3 Make `Pollee` semi-stateless 2024-11-20 16:39:18 +08:00
Ruihan Li a4a8807a20 Remove `KernelThreadExt` 2024-11-13 21:44:37 +08:00
Ruihan Li 1469059888 Implement `CurrentTask` 2024-11-13 10:32:54 +08:00
Ruihan Li 51db2da151 Add `ForceSync` 2024-11-13 10:32:54 +08:00
Ruihan Li 11382524d1 Use new `SpinLock` APIs in `wait.rs` 2024-11-10 17:42:00 +08:00
Zhang Junyang 1f612e45f7 Remove unnecessary page table items 2024-11-09 20:32:48 +08:00
Zhang Junyang b2b00bdfd2 Lock-free cursor creation 2024-11-09 20:32:48 +08:00