Commit Graph

187 Commits

Author SHA1 Message Date
Marsman1996 4bce346458 Update multiboot2 version 2024-09-18 20:10:08 +08:00
Ruihan Li 2bda8d17c4 Rename some misleading method names 2024-09-17 17:46:56 +08:00
Ruihan Li cefeea7b50 Revise `IoMem::resize` into `IoMem::slice` 2024-09-17 17:46:56 +08:00
Ruihan Li c8ba695c85 Implement `VmIoOnce` for `IoMem` 2024-09-17 17:46:56 +08:00
Jianfeng Jiang f3174dbbbc Make task store Arc<Thread> and process store Arc<Task> 2024-09-14 17:34:14 +08:00
Zhang Junyang addf42c3f8 No need to flush TLB on mapping without overwritting 2024-09-14 17:29:39 +08:00
Zhang Junyang 5df3c9b749 Avoid flushing TLB one by one when the un-mapped range is large 2024-09-14 17:29:39 +08:00
Chen Chengjun 1873bb7a3f Add wait_until_* functionality to Waiter 2024-09-14 13:59:07 +08:00
Yuke Peng 32ea24e945 Bump version to 0.8.2 2024-09-13 23:43:22 +08:00
Zhang Junyang bec2c97637 Don't copy on write if this is the only reference 2024-09-13 20:10:03 +08:00
Zhang Junyang f13e5d12c1 Set right A/D bits at the right place 2024-09-13 20:10:03 +08:00
Zhang Junyang d9eccdcfbe Implement remote TLB flush on `VmSpace` 2024-09-13 20:10:03 +08:00
Zhang Junyang 326ec09169 Initialize local APICs on every processors 2024-09-13 20:10:03 +08:00
Zhang Junyang 425027677b Add the inter-processor-call facilities 2024-09-13 20:10:03 +08:00
Yuke Peng 63364813a8 Change idle task to lowest priority 2024-09-13 19:52:00 +08:00
Marsman1996 f01772ca85 Fix panic in Cursor::new by invalid Vaddr range 2024-09-12 08:14:01 +08:00
Ruize Tang 458a6a5b3b Fix unexpected unlock of mutexes, add a testcase 2024-09-04 22:23:46 +09:00
rikosellic 92680ea25d Improve safe comment 2024-09-02 17:13:49 +08:00
rikosellic a0ec687315 Page::inc_ref_count conforms to the reference counting invariant
format code

Add detailed annotations

Typo fixed
2024-09-02 17:13:49 +08:00
YanWQ-monad e6e771e9b5 Better timestamp in logging 2024-08-31 10:51:22 +08:00
Yuke Peng 539984bbed Replace read with read_raw 2024-08-29 21:10:17 +08:00
Yuke Peng a06662b58e Read rflags directly in is_local_enabled 2024-08-29 21:10:17 +08:00
Marsman1996 ce7413c0fd Fix panic when print stack trace for panic 2024-08-29 17:18:02 +08:00
Chen Chengjun 00d9b01d5c Add a fast path to page table fork 2024-08-29 12:31:03 +08:00
Shaowei Song aae9fdb331 Add assembly `memset` for fast filling zeros 2024-08-28 18:06:04 +08:00
Chen Chengjun 468dae33f0 Add an optimization strategy for TLB flushing 2024-08-28 12:59:16 +08:00
Chen Chengjun ffc717f00b Enable handling page fault around 2024-08-28 11:04:03 +08:00
Chen Chengjun 0c01590981 Let jump in pagetable cursor return Result 2024-08-28 11:04:03 +08:00
Yuke Peng a2778e66f3 Bump version to 0.8.1 2024-08-27 22:13:38 +08:00
Zhang Junyang 47be0a909b Schedule tasks to APs in `aster-nix` 2024-08-27 17:22:47 +08:00
Zhang Junyang 5feb8f5de8 Refactor the boot PT initialization for SMP 2024-08-27 17:22:47 +08:00
Zhang Junyang e04fa6c69d Handle `VmSpace`'s multi-CPU activation 2024-08-27 17:22:47 +08:00
Zhang Junyang cf4aee0061 A panic unwind print lock 2024-08-27 17:22:47 +08:00
Zhang Junyang c9347e59f4 Fix the preempt info on APs 2024-08-27 17:22:47 +08:00
Zhang Junyang aeba7bec52 Fix SoftIRQ initialization requirements for SMP 2024-08-27 17:22:47 +08:00
Cautreoxit 86f09eef75 Fix all spelling mistakes in history by typos tool 2024-08-27 12:19:48 +08:00
jellllly420 32a1a53ee7 Enable check of atomic mode 2024-08-26 10:23:25 +08:00
Zhang Junyang 54cbacb2ff Replace the `CpuLocal`'s `borrow*` APIs with `get_with` 2024-08-25 20:14:06 +08:00
Zhang Junyang f7a9510be0 Refactor the `this_cpu` API with `PinCurrentCpu` 2024-08-25 20:14:06 +08:00
Zhang Junyang 9a94ba23aa Replace the `Deref` implementation of `CpuLocal` with `get_on_cpu` 2024-08-25 20:14:06 +08:00
Zhang Junyang 1e24911198 Upgrade the version of `bytemuck` since it's yanked 2024-08-24 17:18:24 +08:00
Zhang Junyang 34b3aac2e3 Bump and publish `ostd-test` and `ostd-macros` 2024-08-24 17:18:24 +08:00
Zhang Junyang e50b05d1ee Bump version to 0.8.0 2024-08-23 23:37:50 +08:00
Zhang Junyang d76c7a5b1e OSDK check and clippy with `cfg(ktest)` 2024-08-23 23:37:50 +08:00
Zhang Junyang be3492d7f0 Extract the OSTD test runner as a kernel 2024-08-23 23:37:50 +08:00
Chen Chengjun e555d8c616 Set the access bit when mapping a frame to the page table in userspace 2024-08-23 19:52:48 +08:00
Chen Chengjun 7db9ae23a3 Make the kernel stack size configurable 2024-08-22 22:56:16 +08:00
Shaowei Song dce796cdde Refactor all io APIs of vfs based on `VmReader`/`VmWriter` 2024-08-22 22:54:30 +08:00
Yuke Peng e7105bb580 Prevent race condition in heap allocator 2024-08-22 12:47:34 +08:00
Cautreoxit 1833f8047e Modify Dockerfile and bump the version file 2024-08-22 09:55:19 +08:00
Shaowei Song 2102107be1 Refactor `VmReader`&`VmWriter` as given fallibility marker 2024-08-21 22:24:15 +08:00
Ruihan Li 562e644375 Clarify some safety conditions of `Vm{Reader,Writer}` 2024-08-21 09:34:21 +08:00
Yuke Peng bbe43d76cc Fix compile error due to `lock_irq_disabled` 2024-08-19 16:52:51 +08:00
Yuke Peng c6d381bc19 Refine documentations 2024-08-18 23:58:51 +08:00
Yuke Peng b198794e3e Extract DMA remapping feature 2024-08-18 23:58:51 +08:00
Yuke Peng 0bf3595964 Extract IOMMU register operations 2024-08-18 23:58:51 +08:00
Yuke Peng 63b42bff73 Add register descriptions 2024-08-18 23:58:51 +08:00
Yuke Peng 7d0638958c Fix IOMMU permission check issue 2024-08-18 23:58:51 +08:00
Cautreoxit c44447d54b Refactor the API of spinlocks 2024-08-18 21:06:40 +08:00
Zhang Junyang 0c9b7c03bb Get ACPI RSDP from EFI tables if not provided in `boot_params` 2024-08-17 18:14:27 +08:00
Chen Chengjun 19184d5c3d Remove the concept of child VMOs and clean-up VMO implementations 2024-08-16 10:45:16 +08:00
Yuke Peng 49692c2068 Fix several warnings when ktest is enabled 2024-08-16 10:43:55 +08:00
Chen Chengjun 99a22ff124 Improve efficiency of global TLB flushing 2024-08-15 23:14:51 +08:00
jellllly420 2ab4ba11bc Refactor preemption-related code in OSTD 2024-08-15 23:06:18 +08:00
jellllly420 f5464e82c0 Implement new scheduling API in OSTD 2024-08-15 23:06:18 +08:00
Zhang Junyang 4844e7ca7c Allow page table protectors to flush TLB entries precisely 2024-08-14 20:40:03 +08:00
Zhang Junyang 9a6e1b03e3 Allow the page table un-mapper to flush the TLB precisely 2024-08-14 20:40:03 +08:00
Zhang Junyang e597a10088 Rename `PageTableQueryResult` to `PageTableItem` 2024-08-14 20:40:03 +08:00
Tate, Hongliang Tian 6df0a3073c Add a comment for UserMode 2024-08-14 11:43:34 +08:00
Zhang Junyang be54a39592 Remove the preempt guard from the IRQ guard 2024-08-13 20:34:26 +08:00
Zhang Junyang 491e4325fa Enable IRQs before leaving the OSTD boot routine 2024-08-13 20:34:26 +08:00
Hsy-Intel a739b3828d Use tdx-guest crate VE handler and support release mode for TDX 2024-08-10 11:21:59 +08:00
Hsy-Intel 7527d20d25 Avoid generating Cmp_rm32_imm32 instruction 2024-08-10 11:21:59 +08:00
Chen Chengjun 259b506119 Introduce CurrentUserSpace to provide read/write abilities for user space 2024-08-09 18:01:01 +08:00
Hsy-Intel 8317c4c1e8 Rename "intel_tdx" feature to "cvm_guest" 2024-08-09 17:11:12 +08:00
Hsy-Intel ca41687a99 Use cfg_if to group tdx cfg block 2024-08-09 17:11:12 +08:00
Hsy-Intel 9bad068215 Update conditional compilation for intel_tdx feature 2024-08-09 17:11:12 +08:00
Qingsong Chen b5f8e4e7bb Fix unnecessary page table activation 2024-08-08 23:11:58 +08:00
Zhang Junyang 37a9590cfe Refactor `ostd::task::processor` based on faster CPU-local cells 2024-08-08 19:21:03 +08:00
Zhang Junyang 05564ecd4f Abort on double panics 2024-08-08 19:21:03 +08:00
Zhang Junyang fe68b4b510 Generalize single instruction CPU local operations by `cpu_local_cell` 2024-08-08 19:21:03 +08:00
Ruihan Li 3deff2e842 Implement `VmIoOnce` for `DmaCoherent` 2024-08-06 11:34:15 +08:00
Ruihan Li cda23937dd Introduce `{read,write}_once` 2024-08-06 11:34:15 +08:00
Ruihan Li 79578c9aa0 Use the plural form in `# Panic` 2024-08-06 11:34:15 +08:00
Ruihan Li dee7734073 Fix a missed `write_volatile` in `VmWriter` 2024-08-06 11:34:15 +08:00
azongchang 4d19c710a2 Bump linux-bzimage-builder to 0.2.0 2024-08-05 15:36:55 +08:00
azongchang 6752baf166 Utilize libflate crate to compress and decompress payload 2024-08-05 15:36:55 +08:00
Zhang Junyang 393c9019c0 Boot application processors into spin loops
Co-authored-by: Chuandong Li <lichuand@pku.edu.cn>
2024-07-30 10:24:09 +08:00
Zhang Junyang 8acfc8eb6a Move `CpuSet` out of `ostd::arch` and implement `this_cpu`
Co-authored-by: Chuandong Li <lichuand@pku.edu.cn>
2024-07-30 10:24:09 +08:00
Zhang Junyang da9f55b01f Stop trying to catch panics except for unit tests 2024-07-29 22:46:32 +08:00
Zhang Junyang 42aac5ce8b Optimize the performance of page table un-mapping 2024-07-29 22:36:14 +08:00
Zhang Junyang 862b64b786 Sanitize the mutability of page table metadata 2024-07-29 22:36:14 +08:00
Zhang Junyang 819e8dacd5 Allow specifying initial page metadata when allocating 2024-07-29 22:36:14 +08:00
Wang Siyuan 12ed40578d Add /proc/meminfo support 2024-07-29 13:55:20 +08:00
Zhang Junyang 3ae884081f Fix both the preempt count atomicity and the CPU-local init problem 2024-07-25 13:20:09 +08:00
Zhang Junyang 00b9bf9610 Fix assertion failure constructing `VmReader`s from zero sized slices 2024-07-25 13:20:09 +08:00
YanWQ-monad 5aa28eae7e Extract x86-specific code from `call_irq_callback_functions` 2024-07-22 22:04:50 +08:00
Zhang Junyang 71a486b9a5 Bye, `FrameVec` 2024-07-20 20:56:29 +08:00
Zhang Junyang fd63f8307d Simplify visibility of page table APIs since the module is already `pub(crate)` 2024-07-20 20:56:29 +08:00
Zhang Junyang 668997ab51 Refactor the `VmSpace` API and work around misuses 2024-07-20 20:56:29 +08:00