Commit Graph

430 Commits

Author SHA1 Message Date
jiangjianfeng 3e66732889 Parse netlink message 2025-04-15 17:20:12 +08:00
jiangjianfeng ac42e83387 Add basic structure for netlink route socket 2025-04-15 17:20:12 +08:00
jiangjianfeng 2c41055470 Expose more methods on bigtcp iface 2025-04-15 17:20:12 +08:00
jiangjianfeng 7d24e63216 Move network polling code to bottom half 2025-04-15 14:54:51 +08:00
Ruihan Li a1f81df263 Remove `ostd/src/mm/offset.rs` 2025-04-15 09:15:22 +08:00
Ruihan Li 8600278a5f Drop files at the correct time 2025-04-14 21:13:11 +08:00
Ruihan Li 7e1abc1fbb Rename `ProcessVmarGuard::get` to `unwrap` 2025-04-14 21:13:11 +08:00
Ruihan Li 293f1ff4c9 Do `release_range_locks` in `Drop` 2025-04-14 21:13:11 +08:00
Chen Chengjun a21e895102 Enable RCU to read reference to stored pointers 2025-04-10 14:42:51 +08:00
jiangjianfeng b833ec6ede Implement ReadCString for MultiRead 2025-04-09 16:47:11 +08:00
Ruihan Li ceb79ea27a Always move zombie children to init 2025-04-07 13:01:22 +08:00
Chen Chengjun e4f07b76a0 Add real vfork logics 2025-04-03 14:44:39 +08:00
le-monde-bleu 43e43ca133 Add vfork syscall and related clone flags 2025-04-03 14:44:39 +08:00
Ruihan Li 0bbd56ecf3 Don't panic for missing virtio-net 2025-04-02 11:33:51 +08:00
jiangjianfeng 1846c680fc Clone the reader to prevent cursor misplacement in `ReadCString` 2025-03-31 14:00:04 +08:00
Shaowei Song 2af71ff72a Add xattr support for ext2 2025-03-28 15:08:59 +08:00
Shaowei Song 97c27e8d2a Add xattr support for ramfs 2025-03-28 15:08:59 +08:00
Shaowei Song a47eda413c Add extended attribute (xattr) syscalls: setxattr, getxattr, listxattr and removexattr 2025-03-28 15:08:59 +08:00
Cautreoxit 7a8afd8c48 Add a empty line after the license 2025-03-25 19:47:55 +08:00
jiangjianfeng 0e1c660225 Make VmReader's several methods accept `&mut self` 2025-03-25 14:25:08 +08:00
Zhang Junyang 4f0acddfd4 Strict TLB coherence 2025-03-21 21:19:50 +08:00
Zhang Junyang 30ec0be210 Halt the idle CPUs 2025-03-21 21:19:50 +08:00
Zhang Junyang f1c7564184 Move CPU context implementations to a specific module 2025-03-21 21:19:50 +08:00
Zhang Junyang 298a205da2 Avoid an `Arc::clone` in `mmap` to make it scale 2025-03-21 20:09:42 +08:00
Zhang Junyang f9284d3803 Workaround the missing process of a thread 2025-03-21 18:05:10 +08:00
Fabing Li bce23a63bd Add sys_signalfd/sys_signalfd implementation 2025-03-21 16:10:55 +08:00
Ruihan Li bb1b41b413 Fix dead code lints 2025-03-21 16:00:35 +08:00
Hsy-Intel 49e6cd2712 Use macro to handle TDX-related code 2025-03-20 17:25:22 +08:00
Chen Chengjun 135100a472 Modify the getting-VMAR usages in other syscalls 2025-03-20 14:20:47 +08:00
Chen Chengjun 048fd1077c Inject post_schedule/user_page_fault handler to OSTD 2025-03-20 14:20:47 +08:00
Chen Chengjun 2a20f6b59a Add mutable functionality to the process VMAR 2025-03-20 14:20:47 +08:00
Chen Chengjun 248b24fb4e Remove UserSpace abstraction from OSTD 2025-03-20 14:20:47 +08:00
Zejun Zhao 73e0b30785 Eliminate redundant check in hot path 2025-03-20 10:45:16 +08:00
Zejun Zhao c1e6f9a552 Eliminate redundant Clone in hot path 2025-03-20 10:45:16 +08:00
Zhang Junyang 288942b970 Revise the docs of the slab and remove an unused type 2025-03-14 21:17:47 +08:00
Zhang Junyang a708a0c046 Inject a scalable slab allocator 2025-03-14 19:55:00 +08:00
jiangjianfeng d366043876 Enable sig_action test from gVisor test 2025-03-14 16:09:11 +08:00
jiangjianfeng 7e96810e1a Remove trampoline code in handling user kernel 2025-03-14 16:09:11 +08:00
Zhang Junyang 5f05963ee5 Inject a scalable buddy system allocator to OSTD
Co-authored-by: Zhe Tang <tangzh@stu.pku.edu.cn>
2025-03-14 08:37:37 +08:00
Zejun Zhao 455b8abba0 Adopt a round-robin strategy to select among equally idle CPUs 2025-03-13 16:28:02 +08:00
Ruihan Li d40d452e9d Receive RST packets as `ECONNRESET` errors 2025-03-10 18:08:08 +08:00
Ruihan Li aa29640ed7 Send RST packets when appropriate 2025-03-10 18:08:08 +08:00
Ruihan Li eef56c770b Simplify the TCP state check 2025-03-10 18:08:08 +08:00
jiangjianfeng 388eec449a Add ip level socket option 2025-03-07 13:38:02 +08:00
js2xxx ffc7e3612d Fix `RLimit` lock update 2025-03-06 21:29:40 +08:00
js2xxx c1dde01fc3 Add `sched_attr` system call series 2025-03-06 21:29:40 +08:00
Ruihan Li 9e1c939a3f Remove `static_assertions` 2025-03-06 16:35:21 +08:00
Shaowei Song d19578ac78 Pooling some cached block writes in ext2 2025-03-06 11:43:07 +08:00
Wang Siyuan 5bfdcfc619 Add memory resource limit mechanism 2025-03-06 11:22:05 +08:00
Wang Siyuan eca3c8fb59 Refactor RLimit64 to atomic 2025-03-06 11:22:05 +08:00
Ruihan Li d37e60d082 Report socket errors in `send`/`recv` 2025-03-05 19:48:28 +08:00
Ruihan Li 68cf99993e Remove socket errors from `SocketOptionSet` 2025-03-05 19:48:28 +08:00
Chen Chengjun 801eac9386 Support PR_SET/GET_CHILD_SUBREAPER for sys_prctl 2025-03-03 19:31:50 +08:00
Zhang Junyang 78a695f21b Use `RcuOption` for lazy-initialized soft-IRQ callbacks 2025-03-03 09:24:49 +08:00
wheatfox 6d42a07e95 Implement `getcpu` syscall and add corresponding test application 2025-02-27 11:41:26 +08:00
Fabing Li cbb4b4e631 Fix lint errors 2025-02-27 11:36:41 +08:00
Ruihan Li 18e0eae331 Never expose `ERESTARTSYS` to the userspace 2025-02-23 23:11:05 +08:00
Ruihan Li 8187fa2f1b Fix timeout mechanism in `wait_events` 2025-02-23 23:11:05 +08:00
Ruihan Li 2411ba671c Reapply "Make `pause_timeout` return `EINTR`"
This reverts commit 7a017faa44.
2025-02-23 23:11:05 +08:00
Zejun Zhao 29791ba77e Distribute tasks among all the CPUs 2025-02-21 10:02:46 +08:00
Shaowei Song 328ba47ccd Fix and revise the directory entry handling in ext2 2025-02-11 11:33:31 +08:00
Zejun Zhao d71771e49a Re-enable CFS 2025-02-11 10:51:12 +08:00
Zejun Zhao c2f48a41db Clean up the implementation of scheduling class 2025-02-11 10:51:12 +08:00
jiangjianfeng 3f951e0c0c Enable gVisor tcp_socket_test 2025-02-11 10:50:20 +08:00
Zhang Junyang e1ced5f385 Conditionally compile dead code in `interval_set.rs` 2025-02-11 10:48:34 +08:00
Shaowei Song fecf766771 Revise the cache page allocation for `PageCacheManager` 2025-02-11 10:48:12 +08:00
Ruihan Li 418f58ec89 Avoid locking twice in UDP `send` 2025-02-08 15:44:44 +08:00
Ruihan Li 6a13787c49 Implementing `FileLike` for all `Socket`s 2025-02-08 15:44:44 +08:00
Ruihan Li 3c6737a4ca Revise doc comments for `Socket` 2025-02-08 15:44:44 +08:00
Ruihan Li a6b3a65fe5 Don't allocate when possible in `do_poll` 2025-02-08 15:43:20 +08:00
Ruihan Li 0dca168717 Use `#[expect(lint)]`, not `#[allow(lint)]` 2025-02-08 15:10:04 +08:00
Ruihan Li b415538097 Remove useless `#[allow(lint)]` 2025-02-08 15:10:04 +08:00
Shaowei Song 56b85cb132 Cache negative dentries for faster negative lookups 2025-01-24 11:48:15 +08:00
Ruize Tang c4229e3c2f Add INITRAMFS_SKIP_GZIP option to make initramfs encoding/decoding faster 2025-01-23 10:50:43 +08:00
Ruihan Li b472737771 Resolve FIXME in pipe tests 2025-01-23 09:57:10 +08:00
Ruihan Li 2cf4aebe7a Use `FnOnce() + Send` as task `func` 2025-01-23 09:57:10 +08:00
Shaowei Song 6a865062e6 Unify and optimize the comparison of special file names 2025-01-21 11:34:56 +08:00
Fabing Li aa5bc6ff73 Fix the unit of meminfo 2025-01-21 11:29:08 +08:00
Shaowei Song 6de5be1ecc Make the generic inode permisson check faster 2025-01-10 10:21:52 +08:00
Ruihan Li b9ce3e64ad Make the file lookup faster 2025-01-09 10:58:16 +08:00
Ruihan Li 16db96e496 Adjust `as_socket` signature 2025-01-09 10:58:16 +08:00
Ruihan Li a7741a8a75 Remove `as_device` from `FileLike` 2025-01-09 10:58:16 +08:00
Zhang Junyang 5ea366bced Move kcmdline parsing out of OSTD 2025-01-02 10:41:51 +08:00
Zhang Junyang 397ce9652f Refactor boot modules to make heap allocation explicit 2025-01-02 10:41:51 +08:00
jiangjianfeng 39cc0dca26 Add socket hash table 2024-12-30 09:46:14 +08:00
js2xxx 0d30ce0b2c Improve readability on `SchedPolicy` storage & reduce memory foot print on sched entities 2024-12-30 09:38:48 +08:00
js2xxx 364d6af7c8 Reduce the held time of scheduling policy lock 2024-12-30 09:38:48 +08:00
Zejun Zhao ea953209ff Add a fast path while picking next thread from RT scheduling class 2024-12-28 14:30:33 +08:00
Shaowei Song f739c67ed3 Issue device sync request at the end of ext2's sync 2024-12-27 12:23:19 +08:00
Shaowei Song 4d5d0942ad Minor improvements to ext2 inode 2024-12-27 12:23:19 +08:00
Shaowei Song 0799976018 Improve directory entry handling efficiency in ext2 2024-12-27 12:23:19 +08:00
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 f332797084 Use frame metadada for page cache 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 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
Marsman1996 5df8d59563 Exit when handle_user_signal fail 2024-12-26 18:33:32 +08:00
anbo225 e75b6320ad Add support for group-based permission checking in ext2 2024-12-26 17:07:55 +08:00
Zejun Zhao 6cea8d2a8c Make stop runqueue per-CPU 2024-12-26 14:54:22 +08:00