Commit Graph

415 Commits

Author SHA1 Message Date
Wang Siyuan 58e4f45bb1 Add per-CPU counters and track RSS for each `Vmar` 2025-06-03 23:24:32 +08:00
Wang Siyuan dfd3042276 Add dynamically-allocated CPU-local objects 2025-06-03 23:24:32 +08:00
Ruihan Li f24bc718fa Use `IoMem::acquire` in the virtio-mmio bus 2025-06-03 21:01:03 +08:00
Zejun Zhao 3790f616fd Rename `PageProperty::new` to `PageProperty::new_user` 2025-06-03 18:42:53 +08:00
Zejun Zhao e669d38d2d Clear User bits of non-leaf PTE in boot pagetable 2025-06-03 18:42:53 +08:00
Ruihan Li 3f8dbe6990 Add `unsafe` with trivial cleanups 2025-06-03 15:00:13 +08:00
Ruihan Li 3bc4424a5b Add `unsafe` with explained comments 2025-06-03 15:00:13 +08:00
Ruihan Li 619814e652 Add `unsafe` with caller-upheld comments 2025-06-03 15:00:13 +08:00
Ruihan Li 31dbae5330 Add `unsafe` for acquring I/O memory/port 2025-06-03 15:00:13 +08:00
Ruihan Li e1e5f9f575 Remove `transmute` in `Vm{Reader,Writer}` 2025-06-03 15:00:13 +08:00
Ruihan Li 2c21b2a3a8 Use `wrapping_add` to add userspace pointers 2025-06-03 15:00:13 +08:00
Ruihan Li 899a1424c0 Tweak RCU visiblity and safety 2025-06-03 15:00:13 +08:00
Ruihan Li 2b00fe9e45 Mark `root_paddr()` safe 2025-06-03 15:00:13 +08:00
Zhang Junyang 1ed023f413 Fix the level comparison in `dfs_mark_stray_and_unlock` 2025-06-02 23:49:15 +08:00
Ruihan Li 72fb0752ae Allow `dyn InAtomicMode` as `AsAtomicModeGuard` 2025-06-01 15:06:53 +08:00
Ruihan Li 6dc0189e43 Remove unnecssary overflow checks 2025-05-30 16:34:33 +08:00
Ruihan Li 282a0f216f Clarify safety conditions in `tdx_guest.rs` 2025-05-30 16:34:33 +08:00
Zejun Zhao ffb4097436 Add RISC-V timer support 2025-05-29 19:51:02 +08:00
Ruihan Li 56e9824dd1 Make `current_cpu_racy` a method of `CpuId` 2025-05-29 10:33:02 +08:00
Ruihan Li 758c80c321 Pull code from `arch/*/irq.rs` to `trap/irq.rs` 2025-05-25 10:19:17 +08:00
Ruihan Li dd9fc81a81 Add some TODOs in IOMMU initialization 2025-05-25 09:54:16 +08:00
Ruihan Li d2ff5fc1a9 Check SAGAW before enabling DMA remapping 2025-05-25 09:54:16 +08:00
Zhang Junyang 79b3f68892 Make the RCU lifetime of page tables explicit 2025-05-24 17:42:17 +08:00
Zhang Junyang ef81100958 Add `InAtomicMode: Debug` 2025-05-24 17:42:17 +08:00
Zhang Junyang 3472560c55 Make TLB issuing less contended 2025-05-24 17:42:17 +08:00
Zhang Junyang 54fbdcf059 Implement the stray marking in PT to ensure serializability 2025-05-24 17:42:17 +08:00
Zhang Junyang 5b7637eac3 Remove the activation lock and use RCU to protect PT removal 2025-05-24 17:42:17 +08:00
Zhang Junyang d873e121ff DFS lock protocol for the page table 2025-05-24 17:42:17 +08:00
Ruihan Li d4afe3a035 Avoid Rust references of IRT entries 2025-05-23 10:38:57 +08:00
Yuke Peng d4872af3c7 Refactor interrupt remapping in OSTD 2025-05-22 15:21:16 +08:00
stuuupidcat 95744692a5 Remove unnecessary #[inline] attributes 2025-05-22 12:19:21 +08:00
Ruihan Li e81053b9dc Remove unnecessary `_rdtsc` uses 2025-05-21 21:00:02 +08:00
Ruihan Li a18e72b495 Implement `apic::get_or_init` using `Once` 2025-05-21 21:00:02 +08:00
Ruihan Li 0a27a1f37b Don't treat APIC IDs as CPU IDs 2025-05-21 09:27:25 +08:00
Ruihan Li d7cd0244ff Use Rust types to store `PerApRawInfo` 2025-05-21 09:27:25 +08:00
Zhang Junyang 690f87f311 Add `RcuDrop` 2025-05-12 16:12:01 +08:00
Zhang Junyang 9cb28f8dd0 `FrameRef` for all types of frames 2025-05-11 15:42:46 +08:00
Zhang Junyang 773b965767 Allow specifying orderings when loading/storing `AtomicCpuSet`s 2025-05-11 15:29:17 +08:00
Zhang Junyang d3e4f175cd Fix the memory leak on large heap slot dealloc 2025-05-08 19:49:42 +08:00
Zhang Junyang 18df0f6ec9 Fix the linear mapping size if the IO range is high 2025-05-06 23:33:05 +08:00
Chen Chengjun 1da723c0de Replace the original XArray with RCU-based XArray 2025-04-30 20:59:15 +08:00
Yuke Peng ef898e572c Move `tdx_guest::unprotect_gpa_range` into IoMem creation 2025-04-29 16:31:08 +08:00
Yuke Peng 04a8fccd2f Add Framebuffer region into filter in `IoMemAllocatorBuilder` 2025-04-29 14:49:58 +08:00
Ruihan Li bf4950965b Adjust `unsafe` blocks in `syscall.rs` 2025-04-22 20:52:15 +08:00
Ruihan Li c9a7d501b2 Rewrite `trap/idt.rs` 2025-04-22 20:52:15 +08:00
Ruihan Li 8c30b4b942 Rewrite `trap/gdt.rs` 2025-04-22 20:52:15 +08:00
Ruihan Li e06509e380 Make some `unsafe` blocks shorter 2025-04-22 20:52:15 +08:00
Chen Chengjun c3dd607777 Introduce RCU-based XArray 2025-04-19 16:48:15 +08:00
Fabing Li 6c0827b681 Add ktest cases for vmspace 2025-04-19 14:00:21 +08:00
Fabing Li 52e0776591 Add more page table cases 2025-04-19 13:59:43 +08:00