Commit Graph

1305 Commits

Author SHA1 Message Date
jiangjianfeng 95faea0fb0 Support WSTOPPED and WCONTINUED 2025-06-20 11:51:44 +08:00
Ruihan Li bcf1e69878 Expose `head`/`tail` of `RingBuffer` 2025-06-19 16:30:02 +08:00
Ruihan Li a3c5ab8cb4 Move virtio-mmio bus outside OSTD 2025-06-19 15:10:42 +08:00
Marsman1996 2f097ab8f8 Check file_table before use 2025-06-18 17:28:28 +08:00
Ruihan Li 4a9977d9a7 Make zero reads/writes' behavior right 2025-06-17 16:09:33 +08:00
Ruihan Li 837f908690 Fix some pollee mistakes 2025-06-17 16:06:48 +08:00
Marsman1996 5a514f6163 Check `VSOCK_GLOBAL` when creating `VsockStreamSocket` 2025-06-16 14:43:17 +08:00
Qingsong Chen ef7fdc6647 Fix improper handling of O_TRUNC for non-regular files 2025-06-16 12:10:58 +08:00
Wang Siyuan d5b12532a8 Require `T: Send` for `CpuLocal<T, S>` 2025-06-16 12:09:13 +08:00
Chen Chengjun 627dd0386b Enable FUTEX_WAKE_OP 2025-06-16 11:02:17 +08:00
Chen Chengjun 860bb6c07f Adjust and correct parts of the futex implementation code 2025-06-16 11:02:17 +08:00
Zhang Junyang 45059bad21 Create a new PT rather than clearing it upon `exec*` 2025-06-16 10:18:19 +08:00
Zhang Junyang 525085ab86 Implement system call `msync` 2025-06-15 16:25:37 +08:00
Ruihan Li 796635486c Handle broken netlink attributes 2025-06-13 11:27:22 +08:00
Ruihan Li deab9b6f72 Truncate netlink messages 2025-06-13 11:27:22 +08:00
Ruihan Li 0e8106abfa Restrict visibility for TCP internals 2025-06-13 11:07:11 +08:00
Ruihan Li 639bc91e31 Clean up public re-exports under `net/` 2025-06-13 11:07:11 +08:00
Zhang Junyang 86a7aa09eb Improve exception handling panic message 2025-06-13 10:35:47 +08:00
Wang Siyuan b605bed576 Fix some typos 2025-06-12 22:35:54 +08:00
Zhang Junyang e78927b449 Manage frame tracking outside the page table 2025-06-12 22:34:46 +08:00
Zhang Junyang 22ccfb1f2b Move COW out of OSTD 2025-06-12 22:34:46 +08:00
Ruihan Li 0661a0656b Never queue an ignored signal 2025-06-12 16:15:53 +08:00
Cautreoxit 3e32a38316 Add sys_close_range 2025-06-11 19:56:12 +08:00
Ruihan Li 71e08b3942 Clean up TTY termios definitions 2025-06-10 14:30:02 +08:00
Marsman1996 8583eea62b Fix unreachable error in sys_timer_settime 2025-06-10 11:22:50 +08:00
Marsman1996 9109741e8b Add TFDSetTimeFlags and fix reachable panic 2025-06-10 11:22:50 +08:00
Cautreoxit 0b471ef370 Add sys_epoll_pwait2 2025-06-09 20:20:40 +08:00
jiangjianfeng 597139a7f7 Fix a clippy error 2025-06-09 17:22:14 +08:00
Cautreoxit e9f35f6ab8 Debug for try_from impl for Duration 2025-06-09 14:51:05 +08:00
Ruihan Li fe6b78058c Correct the blocking behavior 2025-06-09 13:10:34 +08:00
Ruihan Li 67065835ef Redefine the TTY driver interface 2025-06-09 13:10:34 +08:00
Ruihan Li 5a9a63e1a7 Use one lock for `LineDiscipline` 2025-06-09 13:10:34 +08:00
Ruihan Li 45258d0475 Unpack `LineDiscipline` from `Arc` 2025-06-09 13:10:34 +08:00
Ruihan Li 9e2dde5ebb Add `enqueue_signal_async` 2025-06-09 13:10:34 +08:00
Chen Chengjun c56aee92f4 Re-organize some systree-related code 2025-06-09 11:13:48 +08:00
Chen Chengjun a67bd8cdc9 Add macros to help implementing SysObj trait 2025-06-09 11:13:48 +08:00
Chen Chengjun 1dd1c8c775 Enable read and write operations of the attribute to handle offset 2025-06-09 11:13:48 +08:00
Chen Chengjun 3b1248ba7c Fix some potential bugs of sysfs 2025-06-09 11:13:48 +08:00
Marsman1996 01328ee404 Fix panic when mount with invalid file system type 2025-06-06 18:26:24 +08:00
jiangjianfeng f0957d2f54 Fix clippy warnings in kernel crate 2025-06-06 18:22:09 +08:00
Cautreoxit 2e3de6218f Add more features for statx syscall 2025-06-06 15:07:20 +08:00
jiangjianfeng f946f09ee4 Implement netlink uevent socket 2025-06-06 11:33:09 +08:00
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
Zejun Zhao 3790f616fd Rename `PageProperty::new` to `PageProperty::new_user` 2025-06-03 18:42:53 +08:00
Ruihan Li c73892c704 Mark `pub(super)` for internal methods 2025-06-01 15:06:53 +08:00
Ruihan Li 14388da548 Remove guard generics from `xarray::Cursor` 2025-06-01 15:06:53 +08:00
Zejun Zhao ffb4097436 Add RISC-V timer support 2025-05-29 19:51:02 +08:00
Ruihan Li 63daf69e17 Fix incorrect types in `sys_getcpu` 2025-05-29 10:33:02 +08:00
Ruihan Li 56e9824dd1 Make `current_cpu_racy` a method of `CpuId` 2025-05-29 10:33:02 +08:00
Zhang Junyang 79b3f68892 Make the RCU lifetime of page tables explicit 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
Qingsong Chen 189daa2e09 Fix the return value of `read_link` for ext2 2025-05-23 10:17:08 +08:00
stuuupidcat 95744692a5 Remove unnecessary #[inline] attributes 2025-05-22 12:19:21 +08:00
Zhang Junyang 02463ff161 Bump xmas-elf 2025-05-12 22:00:13 +08:00
Ruihan Li d5c7a8bae3 Allow non-leaders to operate jobs 2025-05-12 16:09:43 +08:00
Zhang Junyang 773b965767 Allow specifying orderings when loading/storing `AtomicCpuSet`s 2025-05-11 15:29:17 +08:00
Ruihan Li ff907d1131 Implement race-free job control 2025-05-09 17:12:31 +08:00
Ruihan Li 6f20cfbe69 Move fields from PTY master to slave 2025-05-09 17:12:31 +08:00
jiangjianfeng 89e8cd5936 Move functions related to spawning the init process to a seperate module 2025-05-09 13:19:57 +08:00
Ruihan Li 50ba735e96 Handle negative P(G)IDs via `cast_(un)signed` 2025-05-09 11:38:01 +08:00
Ruihan Li d0719efcb4 Clarify some API usages 2025-05-06 18:47:10 +08:00
Ruihan Li a993264265 Refactor and test `get{pgid,sid}` 2025-05-06 18:47:10 +08:00
Ruihan Li 7e4509df9c Refactor and test `set{pgid,sid}` 2025-05-06 18:47:10 +08:00
Ruihan Li 5e13e0c325 Resolve lints in the TTY module 2025-05-06 11:55:06 +08:00
Ruihan Li 7de9666e65 Retire incomplete features 2025-05-06 11:17:20 +08:00
Ruihan Li 54bd64269b Rename `systree` to `aster-systree` 2025-05-03 18:22:11 +08:00
Ruihan Li f720c05706 Fail the CI if workspace lints are not enabled 2025-05-03 18:22:11 +08:00
Chen Chengjun 725a46fe72 Modify VMO usages and fix the atomic-mode issue during handling page fault 2025-04-30 20:59:15 +08:00
Chen Chengjun af2a7f7497 Refactor the APIs of VMO based on the new XArray 2025-04-30 20:59:15 +08:00
Chen Chengjun ac1de89d31 Add the default mark type for LockedXArray 2025-04-30 20:59:15 +08:00
Qingsong Chen 88f08de3af Refactor framebuffer 2025-04-29 19:48:45 +08:00
Chen Chengjun 1775bb0861 Support for timerfd-related syscalls 2025-04-25 16:33:46 +08:00
Shaowei Song f38f476c3b Add support for mounting OverlayFS 2025-04-24 20:07:06 +08:00
Shaowei Song 914237e9ca Add basic OverlayFS implementation 2025-04-24 20:07:06 +08:00
Fabing Li 63831dc2df Add ktest cases 2025-04-24 20:03:54 +08:00
Fabing Li 79b0866259 Add sysfs implementation 2025-04-24 20:03:54 +08:00
Zhenchen Wang 3a5f270ee9 Made some minor improvements to syscall statx
Signed-off-by: Zhenchen Wang <m202372036@hust.edu.cn>
2025-04-23 20:39:54 +08:00
Zhenchen Wang 9e729593e8 Add syscall faccessat2
Signed-off-by: Zhenchen Wang <m202372036@hust.edu.cn>
2025-04-23 20:39:54 +08:00
Ruihan Li 26253829bb Use `datagram_common` in netlink 2025-04-23 20:37:40 +08:00
Ruihan Li c9f939bcc4 Create `datagram_common` and use it in UDP 2025-04-23 20:37:40 +08:00
Ruihan Li 96e62b8fa5 Reorder socket locks 2025-04-23 20:37:40 +08:00
jiangjianfeng 961ad73847 Poll the correct iface in irq handler 2025-04-23 00:32:37 +08:00
jiangjianfeng 8815ca384f Add syscall ppoll 2025-04-21 11:19:48 +08:00
Chen Chengjun 1fe0fef410 Add ktests for the XArray 2025-04-19 16:48:15 +08:00
Chen Chengjun c3dd607777 Introduce RCU-based XArray 2025-04-19 16:48:15 +08:00
Ruihan Li 81b79dacc6 Remove `read*_to_end` methods 2025-04-18 14:17:37 +08:00
Zejun Zhao 1c881d30f6 Add RISC-V build CI 2025-04-18 13:26:16 +08:00
Zejun Zhao 3aa1079ca6 Clarify the usage of ostd::arch 2025-04-18 13:26:16 +08:00
Zejun Zhao 14b8c48859 Adjust RISC-V's implementation for recent changes 2025-04-18 13:26:16 +08:00
Zejun Zhao e4aa261c48 Make if_tdx_enabled macro x86-specific 2025-04-18 13:26:16 +08:00
Zhenchen Wang 7ac4fa9519 Add syscall statx
Signed-off-by: Zhenchen Wang <m202372036@hust.edu.cn>
2025-04-18 09:36:50 +08:00
Ruihan Li d6e40933b8 Move the log lock to a better location 2025-04-16 21:59:24 +08:00
Zhang Junyang 85d4cdbbb0 Avoid excessive heap allocations in `sys_futex` 2025-04-15 21:56:15 +08:00
jiangjianfeng 5d84ac7775 Generate kernel response to user request 2025-04-15 17:20:12 +08:00
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
jiangjianfeng 9804f053f2 Add guard which disables 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 b4a1dc03f3 Delete useless visibility for BARs 2025-03-27 18:44:15 +08:00
Cautreoxit 4fff7cdc22 Add an API for BioRequest to return the number of sectors 2025-03-26 10:38:24 +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
Yuke Peng 1f03955f51 Change IoMem directory 2025-03-22 17:38:30 +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
Ruihan Li d9f3a7761a Notify socket events directly 2025-03-20 11:44:47 +08:00
Ruihan Li 2f66f5d234 Revert "Set hash buckets as 2 to work around performance bottleneck"
This reverts commit 631ab21838.
2025-03-20 11:44:47 +08:00
Ruihan Li 7f323ac501 Don't remove TIME-WAIT sockets 2025-03-20 11:44:47 +08:00
Ruihan Li 240192f735 Make connection addition and deletion in order 2025-03-20 11:44:47 +08:00
Ruihan Li a7e718e812 Avoid `O(n)` iteration when sending TCP packets 2025-03-20 11:44: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
Hsy-Intel 7b5f2c414a Use the latest tdx-guest crate version to fix the TDX init issue 2025-03-13 12:56:46 +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
Hsy-Intel 9edee83ef1 Use the latest tdx-guest crate version to fix the MMIO emulation issue 2025-03-10 17:58:35 +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
Ruihan Li 0d36375dfa Avoid `generic_const_exprs` feature 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
Yuke Peng 96d83e43b4 Make VirtioConsolesPrinter heapless 2025-03-05 20:24:59 +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 55ee4bda2c Use RCU for console device callbacks 2025-03-03 09:24:49 +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
Ruihan Li 0398ea3d17 Split `bound.rs` into small files 2025-02-18 19:20:05 +08:00
Qingsong Chen 04be02efb7 Add init_component for mlsdisk 2025-02-11 11:38:43 +08:00
Qingsong Chen f6e040ec94 Add a basic ktest for mlsdisk 2025-02-11 11:38:43 +08:00
Qingsong Chen d8dc153be9 Fix deadlock of `CurrentTx` in mlsdisk 2025-02-11 11:38:43 +08:00
Qingsong Chen c040df72b3 Rename `SwornDisk` to `MlsDisk` 2025-02-11 11:38:43 +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
jiangjianfeng 55713b88c4 Remove unused dependencies 2025-02-10 10:36:56 +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 95bbc7f367 Enforce `#[expect(lint)]` 2025-02-08 15:10:04 +08:00
Ruihan Li 0dca168717 Use `#[expect(lint)]`, not `#[allow(lint)]` 2025-02-08 15:10:04 +08:00
Ruihan Li 1899646391 Fix `#[allow(dead_code)]` in cpio-decoder 2025-02-08 15:10:04 +08:00
Ruihan Li 09ef817b4e Fix `#[allow(dead_code)]` in typeflags 2025-02-08 15:10:04 +08:00
Ruihan Li 1c4e88e648 Fix `#[allow(dead_code)]` in virtio 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
jiangjianfeng 14f0f5a7b5 Avoid iterating over all sockets to remove dead sockets 2025-01-24 11:46:18 +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
Zhang Junyang 51349a3da1 Heapless memory region initialization 2025-01-02 10:41:51 +08:00
jiangjianfeng 0c8200dc7b Add nginx benchmark and workaround 2025-01-01 10:43:14 +08:00
Qingsong Chen 56a137dc56 Add mlsdisk as a component
Co-authored-by: Shaowei Song <songshaowei.ssw@antgroup.com>
2025-01-01 09:19:32 +08:00
jiangjianfeng 631ab21838 Set hash buckets as 2 to work around performance bottleneck 2024-12-31 13:19:30 +08:00
Ruihan Li 7334c93ff5 Make bigtcp error wrappers consistent 2024-12-30 21:41:51 +08:00
jiangjianfeng 39cc0dca26 Add socket hash table 2024-12-30 09:46:14 +08:00
jiangjianfeng 783345b90b Add Bob Jenkins's hash algorithm 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
Ruihan Li 0bfe7aceb8 Utilize `ThreadLocal` 2024-12-26 14:51:20 +08:00
Marsman1996 3e47ed10fd Check name when `lookup_child` in `TaskDirOps` 2024-12-26 09:06:18 +08:00
Marsman1996 9753d796c5 Add overflow check for futex_addr 2024-12-26 09:05:24 +08:00
Marsman1996 1a5bf7b0ad Add overflow check for given sigaltstack addr and size 2024-12-25 15:46:17 +08:00
Ruihan Li 7c249cf0ca Fix the memory order in `Subject` 2024-12-25 15:28:35 +08:00
Wang Siyuan 6e46641a09 Fix a mmap `MAP_FIXED` issue 2024-12-24 09:10:10 +08:00
Wang Siyuan 1e3403e756 Support ELF files with zero `p_filesz`. 2024-12-22 15:16:22 +08:00
Shaowei Song 104c8dfdde Optimize the `DirEntry` lookup in ext2 2024-12-20 09:36:16 +08:00
Shaowei Song 21da6d2b93 Optimize lock usage in ext2 inodes 2024-12-20 09:36:16 +08:00
Marsman1996 3d12ccdbea Warn unsupported clone flags instead of panic 2024-12-20 09:21:25 +08:00
jiangjianfeng 9a540d0fb6 Notify virtqueue in a batch manner 2024-12-19 14:49:56 +08:00
jiangjianfeng 72cb160539 Add keepidle tcp option 2024-12-18 13:19:34 +08:00
Shaowei Song 00b194812d Prepare "/dev/shm" for POSIX shared memory 2024-12-18 12:26:33 +08:00
lab-pc-wtj 6e4a4c58d0 Improve /proc/{PID}/stat 2024-12-18 10:00:15 +08:00
Ruihan Li 776fd6a892 Create backlog sockets on demand 2024-12-17 20:14:53 +08:00
Fabing Li 24f1e02b26 Support prctl(PR_SET_KEEPCAPS/PR_GET_KEEPCAPS) 2024-12-17 20:14:13 +08:00
Fabing Li d72ce0351a Add permission checks for sys_capset 2024-12-17 20:14:13 +08:00
Fabing Li 636efe68fd Give root process a full capability set 2024-12-17 20:14:13 +08:00
Ruihan Li 35c20620bc Rewrite `exit()` and `exit_group()` 2024-12-17 19:36:38 +08:00
Zejun Zhao bc5a058fc5 Add TODO for a potential vulnerability in futex implementation 2024-12-16 21:12:08 +08:00
Zejun Zhao 1b56a8b600 Enable syscall restart 2024-12-16 21:12:08 +08:00
Zejun Zhao ced0023d6b Introduce a syscall restart mechanism 2024-12-16 21:12:08 +08:00
Zhang Junyang 285dde5546 Set affinity for BSP idle thread 2024-12-16 19:15:59 +08:00
Fabing Li 327a6b5e30 Export /proc/self-thread 2024-12-15 16:52:24 +08:00
Fabing Li 532dac8fe3 Export /proc/[pid]/task and /proc/[pid]/task/[tid] 2024-12-15 16:52:24 +08:00
jiangjianfeng 58cf8ea681 Set keepalive and tcp_nodelay on underlying sockets 2024-12-15 16:50:43 +08:00
Roman Korostinskiy 3bbdc68d39 Fix linter errors 2024-12-15 16:37:40 +08:00
Roman Korostinskiy 13229cc037 Implement totalram and freeram computation for sysinfo 2024-12-15 16:37:40 +08:00
Roman Korostinskiy 73b94acf2b Fix linter errors 2024-12-15 16:37:40 +08:00
Roman Korostinskiy 4f653acfa3 Implementation of uptime for sysinfo 2024-12-15 16:37:40 +08:00
Roman Korostinskiy b4ebd6e87f Make stub for sysinfo syscall 2024-12-15 16:37:40 +08:00
Ruihan Li 53b873f647 Add `get_mut` methods for locks 2024-12-15 16:36:54 +08:00
Shaowei Song 4cb85f0adb Fix dependency issue between components `logger` and `virtio` 2024-12-13 10:36:45 +08:00
Ruihan Li 8bbbde4ccb Use `Ordering::Relaxed` for `is_nonblocking` 2024-12-12 20:50:12 +08:00
Ruihan Li 1207161afe Protect socket states with `PreemptDisabled` 2024-12-12 20:50:12 +08:00
Ruihan Li 39a5e88baf Protect `used_ports` with `LocalIrqDisabled` 2024-12-12 20:50:12 +08:00
Ruihan Li 1716f4f324 Use `Pollee` as the socket observer 2024-12-12 20:50:12 +08:00
Ruihan Li fa76afb3a9 Make `Ext` a trait 2024-12-12 20:50:12 +08:00
Fabing Li fc45592a28 Fix rlimits_test 2024-12-12 16:19:01 +08:00
Ruihan Li 969ac97144 Make atomic mode panics have clear messages 2024-12-11 20:27:29 +08:00
Hsy-Intel 1b6901f0f8 Bump tdx-guest crate version to 0.1.8 2024-12-11 19:36:51 +08:00
js2xxx 265eacf831 Temporarily disable scheduling class support 2024-12-11 19:30:27 +08:00
Marsman1996 2ec907875c Replace `debug_assert` with `warn` for `SendRecvFlags` 2024-12-11 16:53:03 +08:00
Ruihan Li 36fc1d3757 Move FS things to `PosixThread` 2024-12-05 13:44:09 +08:00
Ruihan Li fe7e4884c9 Clarify what `CLONE_THREAD` depends on 2024-12-05 13:44:09 +08:00
Ruihan Li 28edc57dd0 Fix the nested bottom half 2024-12-05 13:42:12 +08:00
Chen Chengjun 0cb2ea562e Inject the logger for Asterinas 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
anbo225 9608a57cb0 Make sys_setuid and sys_setgid behave consistently with Linux 2024-12-02 16:43:25 +08:00
Marsman1996 d44737360f Remove assert in `check_segment_align` 2024-12-02 16:40:47 +08:00
jiangjianfeng 80cd1b69f7 Fix lint error in cargo-component 2024-12-02 16:32:34 +08:00
Shaowei Song ecad132ec9 Refactor the block layer by introducing `BioSegmentPool` 2024-12-02 13:25:20 +08:00
Shaowei Song d37da228ab Improve flexibility of `DmaStreamSlice` 2024-12-02 13:25:20 +08:00
Shaowei Song 29ebfa3934 Remove `BlocksHoleDesc` in ext2 for efficiency and fairness 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 1b65ae6255 Fix deadlock in `line_discipline.rs` 2024-11-29 16:31:44 +08:00
Qingsong Chen f762eb8913 Remove the `lazy_static` dependency 2024-11-28 15:28:30 +08:00
Ruize Tang 6c4f56723c Fix futex lost wakeup 2024-11-27 10:27:22 +08:00
Ruize Tang 05ff441577 Clear `DF` flag during signal handling to conform to x86-64 calling convention 2024-11-26 10:50:58 +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
Jianfeng Jiang c8c9b9753e Make all network benchmark run with tap backend and vhost on 2024-11-20 20:24:03 +08:00
Ruihan Li ec2c6ab7a3 Make `Pollee` semi-stateless 2024-11-20 16:39:18 +08:00
Ruihan Li 1c1da8ea06 Don't poll ifaces if not necessary 2024-11-20 16:39:18 +08:00
Ruihan Li fab61f5f66 Make `Pollee` stateless 2024-11-20 16:39:18 +08:00
Ruihan Li 5450d0bd71 Remove dead `(un)register_observer` methods 2024-11-20 16:39:18 +08:00
Marsman1996 1fac737646 Fix not write back error in (U)Random::read 2024-11-20 08:31:55 +08:00
Wang Siyuan 42b3541dcb Fix releasing lock during the creation of `VmMapping` 2024-11-20 08:21:37 +08:00
Ruihan Li b3f8d21c3d Refine comments about the lock usage 2024-11-19 18:01:33 +08:00
Ruihan Li 85e1f0973b Shorten type names 2024-11-19 18:01:33 +08:00
Ruihan Li 781ee0fa71 Fix visibility levels 2024-11-19 18:01:33 +08:00
Ruihan Li 83b6c03bd8 Split `epoll_file.rs` 2024-11-19 18:01:33 +08:00
Ruihan Li 60440d1062 Avoid deadlocks due to drops 2024-11-19 18:01:33 +08:00
Cautreoxit 885950c2a4 Add VirtioBlockFeature to cache virtio-blk's features 2024-11-17 15:32:56 +08:00
Cautreoxit 3cb7f5b721 Rename the methods in the interface of VirtioTransport 2024-11-17 15:32:56 +08:00
Cautreoxit 300403e3eb Implement sync for ext2 and exfat 2024-11-17 15:32:56 +08:00
Cautreoxit 32572e22d9 Implement flush for virtio-blk 2024-11-17 15:32:56 +08:00
Ruihan Li 197d53c0ab Accept sockets in the ESTABLISHED state 2024-11-16 13:25:19 +08:00
Ruihan Li 39d303c72f Rename `get_current_userspace` to `current_userspace` 2024-11-15 13:24:58 +08:00
Ruihan Li 96de617ad9 Rename `get_user_space` to `user_space` 2024-11-15 13:24:58 +08:00
Ruihan Li e6c613f538 Rename `(Posix)ThreadExt` to `As(Posix)Thread` 2024-11-13 21:44:37 +08:00
Ruihan Li 9233d1cdbb Add `ThreadExt` and clean up `PosixThreadExt` 2024-11-13 21:44:37 +08:00
Ruihan Li a4a8807a20 Remove `KernelThreadExt` 2024-11-13 21:44:37 +08:00
Ruihan Li 7850f7e60a Resolve `borrowed_box` lint 2024-11-13 21:44:37 +08:00
Marsman1996 c200997c9a Avoid init stack top at `MAX_USERSPACE_VADDR` 2024-11-13 21:43:28 +08:00
Ruize Tang 85d2c9634f Fix non-atomic write for PIPEs with data up to PIPE_BUF 2024-11-13 17:32:39 +08:00
Wang Siyuan 4ea3e49788 Refactor `Vmar` and `VmMapping`.
Co-authored-by: Zhang Junyang <junyang@stu.pku.edu.cn>
2024-11-13 17:29:57 +08:00
Shaowei Song e453649d78 Correct the behavior when operating the root directory 2024-11-13 16:55:37 +08:00
Ruihan Li ac71234b89 Remove `{,un}register_observer` 2024-11-13 14:15:44 +08:00
Ruihan Li 054c64542b Use `PollAdaptor` to signal `SIGIO` 2024-11-13 14:15:44 +08:00
Ruihan Li 27ae4cb9e7 Use `PollAdaptor` in `EpollFile` 2024-11-13 14:15:44 +08:00
Ruihan Li e32fb2f91b Introduce `PollAdaptor` and `Poller` 2024-11-13 14:15:44 +08:00
Ruihan Li f12e502ab0 Rename `Poller` to `PollHandle` 2024-11-13 14:15:44 +08:00
Ruihan Li 44b55f2ccf Revise the `poll()` method 2024-11-13 14:15:44 +08:00
jiangjianfeng 38682e3ed9 Assign callback to shared irq if there's no single irq line 2024-11-12 17:47:40 +08:00
jiangjianfeng 9965802f65 Disable send callback if sendqueue is not full 2024-11-12 17:47:40 +08:00
Marsman1996 54e2ffbb71 Add check for `argc`, `arg_ptr` and `env_ptr` in `InitStackReader` 2024-11-12 11:35:46 +08:00
Ruize Tang 7fbe997bb3 Fix range_lock and flock to support signal interrupts and comply with wait API design 2024-11-12 11:33:44 +08:00
Ruihan Li 0ef55a396f Add a note about the FIXME 2024-11-09 17:09:41 +08:00
Ruihan Li 0c114e911b Revert "Make `pause_timeout` return `EINTR`"
This reverts commit 6421fd0b36.
2024-11-09 17:09:41 +08:00
Ruihan Li 6421fd0b36 Make `pause_timeout` return `EINTR` 2024-11-09 10:25:24 +08:00
Ruihan Li b563fb639f Revise documentations 2024-11-09 10:25:24 +08:00
Ruihan Li 32b8e05cc3 Make `*_or_timeout` APIs concise 2024-11-09 10:25:24 +08:00
ZephyrZhang 10cc85d588 Add syscall `getpgid` 2024-11-09 10:20:57 +08:00
Marsman1996 f287110001 Fix `InitStackReader` to access given stack instead of current task 2024-11-09 10:06:45 +08:00
jiangjianfeng 4c80367bc8 Fix CI lint error 2024-11-08 10:53:30 +08:00
Ruihan Li 9707b46c7f Bump smoltcp version 2024-11-08 10:49:02 +08:00
Zhang Junyang 25a918d132 Print who and on which CPU the kernel panics 2024-11-07 16:39:47 +08:00
Jianfeng Jiang c1fd09fd41 Remove TimeWait socket if a new Syn is received 2024-11-07 14:21:52 +08:00
Ruihan Li 5233827160 Don't preempt without good reason 2024-11-06 21:53:55 +08:00
Ruihan Li 19b13d88e2 Fix `clone_exit_signal` test 2024-11-06 21:53:55 +08:00
Ruihan Li 768b182aba Make the code a bit cleaner 2024-11-06 21:53:55 +08:00
Fabing Li 1fe74c9c92 Add sys_getrlimit and sys_setrlimit 2024-11-06 21:53:31 +08:00
Zhang Junyang c34706603a Special treat VM Space clearing 2024-11-06 21:52:53 +08:00
Fabing Li 7a08d9a660 Support other SigStackFlags 2024-11-06 15:00:01 +08:00
Fabing Li 561516df98 Export /proc/cpuinfo 2024-11-06 14:54:28 +08:00
Shaowei Song aa52e3980e Minor fix on virtio-blk's config 2024-11-06 11:00:43 +08:00
Hsy-Intel a0a8493f98 Add TDX compilation test 2024-11-05 14:57:03 +08:00
Champii1 4701eaf0cb Implementation of load average calculation and corresponding /proc entry
Moved everything into the kernel side. Add a SchedulerStats trait

Use 'fixed' to represent fixed-point numbers

Make the loadavg calculation lazy
2024-11-05 11:46:23 +08:00
Ruihan Li efd49a96e3 Rename `cond()` to `try_op()` 2024-11-03 16:54:05 +08:00
Hsy-Intel 50773de35f Fix a TDX minor issue 2024-11-02 10:17:01 +08:00
Ruihan Li 7ddfd42baa Make `wait_events` support timeout 2024-11-01 13:00:40 +08:00
Ruihan Li f21394c679 Use more `wait_events` 2024-11-01 13:00:40 +08:00
Ruihan Li bbfc2cd12d Make `FileIo` pollable 2024-11-01 13:00:40 +08:00
Chen Chengjun 846b3ba169 Use LinkedList to store WorkItem to avoid additional heap allocation 2024-11-01 11:24:09 +08:00
Chen Chengjun 2ac6e0e126 Avoid adding worker during workqueue enqueueing 2024-11-01 11:24:09 +08:00
Shaowei Song 96a153dfc5 Implement dummy `metadata()` for epoll and socket files 2024-10-30 14:09:02 +08:00
Fabing Li 3461bd5de6 Add more boundary checks for epoll_wait 2024-10-30 10:42:16 +08:00
Jianfeng Jiang dc06d7c37d Support TCP sockets HUP&RDHUP events 2024-10-28 22:47:50 +08:00
Ruihan Li b5610f3034 Report `POLLNVAL` in `poll` for invalid FDs 2024-10-28 14:33:32 +08:00
Ruihan Li 390aa411bd Beautify the `poll()` system call 2024-10-28 14:33:32 +08:00
jellllly420 6ece48c095 Refactor process table 2024-10-28 13:00:13 +08:00
Zhang Junyang 1b23182dcc Fix the thread status ordering by limiting the API 2024-10-26 22:06:41 +08:00
Zhang Junyang e319641b4d Implement system call `sched_get/set_affinity` 2024-10-26 22:06:41 +08:00
Zhang Junyang 3468ec213b Use `CpuId` with validity ensurance rather than `u32` 2024-10-26 22:06:41 +08:00
Chen Chengjun e60b5b7649 Refine mapping-related locks 2024-10-26 21:55:48 +08:00
Ruize Tang 968389f550 Fix lost wakeup in `range_lock` caused by waiting on an outdated waitqueue 2024-10-26 21:44:03 +08:00
Ruize Tang e5fd8e7477 Fix flock lost-wakeup bugs, replace RwMutex -> Mutex 2024-10-26 21:23:50 +08:00
ZephyrZhang 885e4315e3 fix a comment typo at kernel/src/syscall/mod.rs 2024-10-25 13:26:45 +08:00
Fabing Li 9f188837ae Add /proc/[pid]/stat and /proc/[pid]/status 2024-10-24 19:17:20 +08:00
Zhang Junyang 4658b62f90 Treat thread oops with better care to avoid silent panics 2024-10-22 10:08:24 +08:00
Hsy-Intel b7d101b98c Fix MMIO read issue 2024-10-21 17:49:56 +08:00
Wang Siyuan 998869d57e Refactor kernel virtual memory allocation for kernel stack and I/O memory 2024-10-21 09:53:05 +08:00
Ni Shirong 29eb37c07c Introduce kernel virtual memory allocation for kernel stack 2024-10-21 09:53:05 +08:00
Wang Taojie 03906513aa Clear one bit instead 2024-10-21 09:43:43 +08:00
Wang Taojie 89d04ecf7d Implement ioctl() FIOCLEX command 2024-10-21 09:43:43 +08:00
Zhang Junyang 4823b82e41 Catch panics in threads as oops 2024-10-20 13:24:58 +08:00
Zhang Junyang a716763772 Remove the linkage feature usage for `ostd::main` 2024-10-20 13:24:58 +08:00
jellllly420 3c857d746e Clear TID before doing futex_wake when exiting a POSIX thread 2024-10-20 13:21:27 +08:00
Chen Chengjun 2f511069ee Move SoftIRQ implementations to softirq component 2024-10-18 09:35:40 +08:00
le-monde-bleu 54a807b5f7 Modify asterinas/kernel/src/process/posix_thread/mod.rs 2024-10-18 09:31:25 +08:00
Zhang Junyang 1fe0a138f9 `PROT_WRITE` implies `PROT_READ` on x86 2024-10-17 08:56:47 +08:00
Hsy-Intel c28cec2c6a Fix minor bugs in TDX env 2024-10-14 21:03:47 +08:00
jiangjianfeng 090149eed7 Add tcp latency test over virtio-net 2024-10-14 20:59:25 +08:00
jiangjianfeng 002a67451d Update line discipline pollee immediately 2024-10-14 16:39:34 +08:00
Marsman1996 e32687e6d5 do_exit: Ignore unwrap panic caused by munmap 2024-10-14 14:48:43 +08:00
Zhang Junyang 9e4257b655 Fix multiple issues pointed out by the new compiler 2024-10-13 22:32:05 +08:00
Shaowei Song ee33216875 Fix the incorrect range in `SegmentSlice` 2024-10-12 19:58:10 +08:00
Wang Taojie bdf89a5de3 Implement getcwd() 2024-10-12 09:58:45 +08:00
Shaowei Song ea489252f4 Refactor `Dentry` to optimize the vfs layer 2024-10-11 11:22:52 +08:00
Shaowei Song 271e893889 Revise `MountNode`'s lock usage 2024-10-11 11:22:52 +08:00
Ruihan Li 0415225c19 Fix IRQ-related socket locks 2024-10-10 20:36:22 +08:00
Ruihan Li 7e21e1e653 Revise socket option handling 2024-10-10 20:36:22 +08:00
Ruihan Li b9b09b8142 Don't lock `Mutex` in `EpollEntry::on_events` 2024-10-10 19:23:09 +08:00
Zhang Junyang 909639fd70 Separate `SegmentSlice` from `Segment` 2024-10-09 19:23:46 +08:00
Shaowei Song dad56e1664 Refactor the lock usages within `RamInode` 2024-10-08 16:56:02 +08:00
Ruihan Li 96efd62007 Use `LocalIrqDisable` in `Subject` 2024-10-04 21:55:48 +08:00
Yuke Peng 7d5a2b7a79 [VirtIO] Correct the error code when device not match 2024-10-04 10:28:59 +08:00
Ruihan Li 76d4b180d0 Increase the TCP socket buffer length 2024-09-30 20:37:57 +08:00
Marsman1996 44760eb5fa Return when sigset size error for rt_sigsuspend, rt_sigprocmask and rt_sigaction 2024-09-30 20:24:23 +08:00
Ruihan Li ee1656ba35 Move packet dispatch out of smoltcp 2024-09-30 16:00:51 +08:00
jiangjianfeng f793259512 Avoiding busy loop in sending packet and optimize device caps 2024-09-30 15:03:58 +08:00
Chen Chengjun 8f50391a4e Optimize the clear procedure of the page table 2024-09-30 10:46:30 +08:00
YanWQ-monad 4fa0e6334b Add RISC-V base support 2024-09-30 10:02:08 +08:00
YanWQ-monad 839c2a6689 Extract shared code from timer 2024-09-30 10:02:08 +08:00
jellllly420 5c8e369057 Enable scheduler to fetch scheduling information directly from Thread 2024-09-27 10:21:45 +08:00
jellllly420 9cc63149f1 Remove cpu_affinity field from OSTD Task struct 2024-09-27 10:21:45 +08:00
jellllly420 8927031426 Remove priority field from OSTD Task struct 2024-09-27 10:21:45 +08:00
Carlos López 0a36760f7a Respect user-defined exit signal in clone() and clone3()
When calling clone() and clone3(), the user is allowed to specify a
signal to be sent to the parent process on exit. Respect this value by
storing it in the Process struct and sending the signal on exit.

Add a test as well to verify that the signal is properly delivered to
the parent.
2024-09-26 20:07:43 +08:00
Carlos López 130a0f7030 Homogenize arguments for clone() and clone3()
The arguments for both syscalls follow different formats. Rewrite the
CloneArgs struct to homogenize both formats into one.
2024-09-26 20:07:43 +08:00
Zhang Junyang fad39fdf7a Make TLB flush policy relaxed 2024-09-26 19:29:59 +08:00
Zhang Junyang 52f1787d35 Remove syncronizations for the `VmSpace` PF handler 2024-09-26 19:29:59 +08:00
Zhang Junyang 7407cc8091 Remove some repetitive locks forking `Vmar` 2024-09-26 19:29:59 +08:00
Zhang Junyang ac6d9256ef Improve the `VmSpace` forking API 2024-09-26 19:29:59 +08:00
Marsman1996 d4036d1e9d Handle error in `FsResolver::create_new_file()` 2024-09-26 17:45:00 +08:00
Shaowei Song f2af6136da Minor optimizations on both `lat-syscall-stat` and `lat-syscall-open` 2024-09-26 15:25:49 +08:00
Ruihan Li fc77c474db Move and group methods 2024-09-26 15:22:16 +08:00
Ruihan Li 3fc396f5f1 Adjust the ephemeral port 2024-09-26 15:22:16 +08:00
Ruihan Li eb3a033496 Refine some lock usages 2024-09-26 15:22:16 +08:00
Ruihan Li b13a82dc61 Bump smoltcp version 2024-09-26 15:22:16 +08:00
Ruihan Li 51334c4a36 Clean up smoltcp dependencies 2024-09-26 15:22:16 +08:00
Ruihan Li d62bb1ca76 Use static IP addresses 2024-09-26 15:22:16 +08:00
Jianfeng Jiang fb718fd440 Optimize the latency of lat-sig-install 2024-09-25 17:29:20 +08:00
jellllly420 21fedd1b60 Implement atomic wrapper for integer-like type 2024-09-25 14:47:37 +08:00
Shaowei Song ae4ac38471 Optimize the cache and lock parts in `MountNode` 2024-09-25 11:22:24 +08:00
Shaowei Song 791c566b71 Optimize the cache and lock parts in `Dentry` 2024-09-25 11:22:24 +08:00
Shaowei Song 2c6dd074d1 Refactor the path lookup in `FsResolver` 2024-09-25 11:22:24 +08:00
Ruihan Li 1aa8b0abc6 Correct lock usages in UNIX sockets 2024-09-24 20:49:48 +08:00
Marsman1996 cbe85a1878 Add check for negative `timeval_t.sec` in `do_futimesat` 2024-09-24 20:36:29 +08:00
Ruihan Li 179705a3fc Fix RamFS readahead 2024-09-24 20:34:19 +08:00
YanWQ-monad 4d36dd541f Extract x86-specific exception handling in aster-nix 2024-09-23 19:39:45 +08:00
Yuke Peng 46708f84bc Implement futex private flag 2024-09-22 16:00:56 +08:00
Yuke Peng 228cfe2262 Preallocate some space when expanding size in ext2 2024-09-21 20:22:39 +08:00
Yuke Peng 550eafcb79 Preallocate some space when expanding size in ramfs 2024-09-21 20:22:39 +08:00
Zhang Junyang 9a79ecbcbe Clean up the frame buffer state in `ostd::mm` 2024-09-21 15:38:15 +08:00
YanWQ-monad 2a6733579d Refactor architecture-specific page fault handling 2024-09-20 10:56:13 +08:00
Jianfeng Jiang c5009e38f1 Add pipe/short_rw test
Co-authored-by: Ruihan Li <lrh2000@pku.edu.cn>
2024-09-20 10:37:20 +08:00
Jianfeng Jiang 985813c7f9 Use IoVec-based reader/writer to refactor network APIs 2024-09-20 10:37:20 +08:00
Marsman1996 b4003b8aeb Add normalize for `timeval_t` and const value for time 2024-09-20 10:35:03 +08:00
Marsman1996 4fa4e5ef2a Add check during the conversion from `timeval_t` to `Duration` 2024-09-20 10:35:03 +08:00
Jianfeng Jiang 70505ff4f8 Support futex wait timeout 2024-09-19 22:42:13 +08:00
Qingsong Chen c2f7a10b84 Implement cpu_local with GS and ensure GS points to TSS 2024-09-19 13:00:36 +08:00
Jianfeng Jiang f159b42b61 Fix the condition in is_last_thread 2024-09-18 16:59:17 +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
Ruihan Li aa62f0a4e6 Make `field_ptr!` accept `VmIoOnce` 2024-09-17 17:46:56 +08:00
Shaowei Song 22b04ceae4 Optimize the `DirEntry` of `RamInode` 2024-09-16 15:59:59 +08:00
Shaowei Song f194514100 Optimize the page cache within a `RamInode` 2024-09-16 15:59:59 +08:00
Marsman1996 44629e4627 Fix panic in FutexKey::load_val when no read access 2024-09-14 22:45:59 +08:00