Commit Graph

187 Commits

Author SHA1 Message Date
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
Jianfeng Jiang f86583dbce Make essential changes for publishing OSTD 2024-07-18 18:18:05 +08:00
Zhang Junyang 8a9c012249 Check CPUID before enabling AVX512 2024-07-17 10:24:45 +08:00
Ruihan Li 07a0ea07c0 Disable preemption in page table locks 2024-07-16 21:38:09 +08:00
Ruihan Li cc49384e96 Rename `inc_ref` to `inc_ref_count` 2024-07-16 21:38:09 +08:00
Ruihan Li ef1fd645c2 Rename `get_ref_count` to `ref_count` 2024-07-16 21:38:09 +08:00
Ruihan Li e9330eea7d Prefer `ManuallyDrop` than `mem::forget` 2024-07-16 21:38:09 +08:00
Ruihan Li 7966719e6a Wrap mutable data into `UnsafeCell` 2024-07-16 21:38:09 +08:00
Ruihan Li 4f2d537516 Remove the level in `RawPageTableNode` 2024-07-16 21:38:09 +08:00
Shaowei Song 6cfccccab1 Enable AVX-512 flags in XCR0 2024-07-16 21:26:20 +08:00
Hsy-Intel 4292ec2ebb Make intel_tdx feature as default 2024-07-16 21:22:29 +08:00
Zhang Junyang 9e5f3123e1 Log messages to the serial atomically and rename `arch::serial`
Co-authored-by: Chuandong Li <lichuand@pku.edu.cn>
2024-07-09 21:56:03 +08:00
Yuke Peng d43fbd88ba Add documentation to bus 2024-07-09 19:42:15 +08:00
Yuke Peng 0970adb37b Add documentation to x86/device 2024-07-09 19:42:15 +08:00
Zhang Junyang 9cbbcf63a7 Switch the dependency of `unwinding` back to `crates.io` 2024-07-09 09:45:58 +08:00
Shaowei Song 02bf6a9b47 Bump version to 0.6.2 2024-07-08 17:13:16 +08:00
Yuke Peng defb563541 Bump version to 0.6.1 2024-07-08 15:26:29 +08:00
Ruihan Li 28f5480f70 Add notes about the volatile memory copy 2024-07-08 15:03:23 +08:00
Yuke Peng 608eba369c Format logger output 2024-07-04 10:56:55 +08:00
Yuke Peng cf56bce57c Pass kernel command line option to logger 2024-07-04 10:56:55 +08:00
Zhang Junyang 0cf954801d Support sending IPI using APIC
Co-authored-by: Chuandong Li <lichuand@pku.edu.cn>
2024-07-03 17:50:10 +08:00
Zhang Junyang fef8eebadc Reverse the page table unlock order 2024-07-03 17:42:31 +08:00
Zhang Junyang 02912e19cb Add documentations for the page table cursors' validity 2024-07-03 17:42:31 +08:00
Zhang Junyang 0f8d8da372 Refactor code related to CPU local memory
Co-authored-by: Chuandong Li <lichuand@pku.edu.cn>
2024-07-03 17:40:53 +08:00
Qingsong Chen 98619f3482 Init RNG with rdrand directly (without getrandom) 2024-07-03 14:56:33 +08:00
Qingsong Chen 9932ea0797 Remove PDPE's global bit of boot page table 2024-07-03 14:56:33 +08:00
Zhang Junyang ece62cf806 Add missing TLB flushes for coherent DMA mappings 2024-07-02 16:16:54 +08:00
Zhang Junyang 8cd8cf3938 Add missing TLB flushes for the kernel stack guard pages 2024-07-02 16:16:54 +08:00
Ruihan Li 57ecfa2fec Add `#[must_use]` to all guard types 2024-07-02 12:41:52 +08:00
Chen Chengjun b7a3f1a540 Use volatile copy in VmReader/VmWriter 2024-06-28 20:23:24 +08:00
Chen Chengjun cd2b305fa8 Modify the userspace read/write usage location 2024-06-28 15:36:21 +08:00
Chen Chengjun af908c29cf Refactor the read/write operations to userspace 2024-06-28 15:36:21 +08:00
Chen Chengjun 09b6153d29 Refactor VmReader/Writer to support both kernel space and user space 2024-06-28 15:36:21 +08:00
Chen Chengjun 994427c71a Add function memcpy_fallible 2024-06-28 15:36:21 +08:00
Chen Chengjun 5f7cf245ac Enable exception table mechanism 2024-06-28 15:36:21 +08:00
Jianfeng Jiang 3de8a9330a Fix the OSDK CI failure 2024-06-27 15:45:49 +08:00
Jianfeng Jiang fe7251c413 Rename aster_main as ostd::main 2024-06-27 15:45:49 +08:00
Jianfeng Jiang 59350a8578 Rename aster-frame to ostd 2024-06-27 15:45:49 +08:00