Commit Graph

385 Commits

Author SHA1 Message Date
Fabing Li 4a2da992a6 Add Extension implementation on inode for lock storing 2024-08-17 18:18:23 +08:00
Chen Chengjun 9c7fd8fef5 Add dummy msync 2024-08-17 18:07:09 +08:00
Marsman1996 cf30599729 Propagate errors of futex operations when used in futex syscall instead of panic on them
by @jellllly420
2024-08-17 18:01:32 +08:00
Marsman1996 4c1f6a4e32 Fix panic in futex and rt_sigprocmask 2024-08-17 18:01:32 +08:00
Chen Chengjun 364ef48e2f Fix a concurrency bug in clocksource 2024-08-17 17:57:26 +08:00
Jianfeng Jiang 0291b5dc6b Optimize the latency of lmbench-select-file 2024-08-16 11:19:29 +08:00
Marsman1996 5b5f9cffd1 Fix panic when transfer `how` to enum in sys_rt_sigprocmask() 2024-08-16 11:14:11 +08:00
Chen Chengjun 2ca7b28bbc Refactor the elf loading logics 2024-08-16 10:45:16 +08:00
Chen Chengjun 950fbc131b Implement resize mapping and modify the brk implementation 2024-08-16 10:45:16 +08:00
Chen Chengjun 4bf355af50 Refactor mmap and support shared filebacked mmap 2024-08-16 10:45:16 +08:00
Chen Chengjun 19184d5c3d Remove the concept of child VMOs and clean-up VMO implementations 2024-08-16 10:45:16 +08:00
Chen Chengjun 9f9169adfe Modify the Vmar APIs to fit the modifications of VmMapping 2024-08-16 10:45:16 +08:00
Chen Chengjun ff842cb778 VMOs only provide pages to mappings and anonymous mappings are decoupled from VMOs 2024-08-16 10:45:16 +08:00
Chen Chengjun cb56e6368d Do some clean-up for vdso.rs 2024-08-16 10:45:16 +08:00
Chen Chengjun 24e7f77803 Add duplicate_frame method 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 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
Zhang Junyang 491e4325fa Enable IRQs before leaving the OSTD boot routine 2024-08-13 20:34:26 +08:00
Ruihan Li f499f54cf5 Record the original bound name 2024-08-13 19:32:22 +08:00
Ruihan Li 6b50d28ba1 Remove unnecessary self-connecting check 2024-08-13 19:32:22 +08:00
Ruihan Li 8bcb5a2a5f Avoid nested locks 2024-08-13 19:32:22 +08:00
Ruihan Li 5445a26ec5 Fix results of getting UNIX names 2024-08-13 19:32:22 +08:00
Ruihan Li 8fdd22de8a Align the buffer size of pipes and UNIX sockets 2024-08-13 19:30:02 +08:00
Zhang Junyang 38b46f7ac3 Prefer `Context::get_user_space` than `CurrentUserSpace::get` 2024-08-12 10:38:35 +08:00
Zhang Junyang 8cf7063150 Replace most of the `current_thread!` usages via `Context` 2024-08-12 10:38:35 +08:00
Zhang Junyang 9200538175 Replace a myriad of `current!` usages via `Context` 2024-08-12 10:38:35 +08:00
Zhang Junyang f84d328956 Optimize getters of the current process credentials 2024-08-12 10:38:35 +08:00
Zhang Junyang 66a37da214 Allow passing the process `Context` to syscall handlers 2024-08-12 10:38:35 +08:00
Zhang Junyang 19ad2a2eb4 Remove module-level allowed lints in system call handlers 2024-08-12 10:38:35 +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
Yuke Peng 7b4c13f5d7 Implement MADV_FREE in madvise 2024-08-10 11:14:53 +08:00
Chen Chengjun 75da7fd30e Replace old user space read/write with new APIs 2024-08-09 18:01:01 +08:00
Chen Chengjun 7ade2fcb57 Remove Vmar usage from InitStack 2024-08-09 18:01:01 +08:00
Chen Chengjun 12c60852f1 Modify the logics of setting child thread tid 2024-08-09 18:01:01 +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
Jianfeng Jiang dc124351d2 Add gvisor pselect test 2024-08-09 15:46:05 +08:00
Jianfeng Jiang 8b73cc8761 Support sigmask in pselect6 2024-08-09 15:46:05 +08:00
Yuke Peng c4e9a0db38 Remove the implementation of `MADV_DONTNEED` 2024-08-09 14:07:09 +08:00
YanWQ-monad 97fab9edea Prepare aster-time for platform-dependent implementations 2024-08-09 08:53:24 +08:00
Chen Chengjun acb4833aae Optimize trim_mappings 2024-08-09 00:12:20 +08:00
Qingsong Chen cd9e5d11d2 Optimize futex implementation 2024-08-08 23:11:58 +08:00
Shaowei Song 8dce83605f Add sys_fallocate 2024-08-08 21:10:38 +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 fe68b4b510 Generalize single instruction CPU local operations by `cpu_local_cell` 2024-08-08 19:21:03 +08:00
Jianfeng Jiang 6414111cc5 Support flag SA_RESETHAND 2024-08-08 15:20:13 +08:00
Chen Chengjun 9a299b68f0 Make the behavior of sys_execve be consistent with Linux 2024-08-08 15:08:55 +08:00
Ruihan Li b1ea422efa Fix accesses to VirtIO queue DMA 2024-08-06 11:34:15 +08:00
Ruihan Li 4deba9baca Rewrite the whole `net/addr.rs` file 2024-08-05 10:24:56 +08:00
Ruihan Li d814603504 Move `IpEndpoint` to `socket/ip/addr.rs` 2024-08-05 10:24:56 +08:00
Chen Chengjun b11628b9ce Remove destroy_all methods 2024-08-05 10:24:05 +08:00
Zhang Junyang 16690bc61b Implement atomic signal masks and refactor `SigSet` 2024-08-04 21:41:44 +08:00
Shaowei Song 20a856b07f Revise the naming of all sync/async io APIs 2024-07-30 20:58:07 +08:00
Zhang Junyang 870d542f60 Remove the error of `BlkFeatures::MQ` to support multi-processor startup
Co-authored-by: Chuandong Li <lichuand@pku.edu.cn>
2024-07-30 10:24:09 +08:00
Zhang Junyang 460234a18b Check userspace NULL pointers without triggering kernel page faults 2024-07-29 22:46:32 +08:00
Qingsong Chen 077a9ac3ab Add fcntl subcommand F_GETOWN/F_SETOWN 2024-07-29 22:25:24 +08:00
Ruihan Li c320552ae1 Remove `clean_for_close`/`flush` in `FileLike` 2024-07-29 22:13:02 +08:00
Yuke Peng f57dcd814a Extend user heap limit to 64MB 2024-07-29 22:09:21 +08:00
Ruihan Li fce5785af6 Fix socket lock IRQ behavior 2024-07-29 16:56:29 +08:00
Ruihan Li a14ac1ccbf Fix socket lock ordering 2024-07-29 16:56:29 +08:00
Jianfeng Jiang 3981cd63cd Wake up background polling thread when old_instant is 0
Co-authored-by: Ruihan Li <lrh2000@pku.edu.cn>
2024-07-29 16:56:29 +08:00
Ruihan Li 328ce9e92c Properly close sockets 2024-07-29 16:56:29 +08:00
Ruihan Li 94b23e077d Use relaxed ordering for polling instant 2024-07-29 16:56:29 +08:00
Ruihan Li 4df7654034 Repeat iface polling if necessary 2024-07-29 16:56:29 +08:00
Wang Siyuan 12ed40578d Add /proc/meminfo support 2024-07-29 13:55:20 +08:00
Shaowei Song ff525112d0 Revise the `BlockDevice` trait 2024-07-29 13:54:13 +08:00
Ruihan Li e83e1fc01b Unpack states from `Arc` in UNIX sockets 2024-07-25 21:38:18 +08:00
Ruihan Li 8df51ab001 Move `status` from channels to pipes 2024-07-25 21:38:18 +08:00
Ruihan Li d24c7f8b9c Remove dead code in `pipe.rs` 2024-07-25 21:38:18 +08:00
Ruihan Li 31d99c66c2 Unpack `Arc<Endpoint>` in UNIX sockets 2024-07-25 21:38:18 +08:00
Chen Chengjun 7ee728e2c7 Fix robust list iteartion bug 2024-07-25 21:37:11 +08:00
Shaowei Song 9e57db7d54 [ext2] Introuce unified inode functions to read/write block(s) 2024-07-25 21:31:18 +08:00
Shaowei Song b1cec501d8 [page_cache] Gap within one page should be filled with zeros in shrink case 2024-07-25 21:31:18 +08:00
StanPlatinum 0b8335c943 Add /proc/filesystems support 2024-07-25 13:21:37 +08:00
Yuke Peng e7a75947ea Remove ETIME logic in sys_poll 2024-07-22 21:45:52 +08:00
Yuke Peng 6ada748b79 Remove ETIME logic in sys_select 2024-07-22 21:45:52 +08:00
Yuke Peng faa4234c7d Return Ok when timer expired in do_poll 2024-07-22 21:45:52 +08:00
hongwen.chw 4dacff5be4 Fix a typo when assign 'dst.rbx' at `copy_gp_regs` 2024-07-21 22:34:58 +08:00
Zhang Junyang 668997ab51 Refactor the `VmSpace` API and work around misuses 2024-07-20 20:56:29 +08:00
Ruihan Li 9f125cd671 Remove the nonsense mutex in `Poller` 2024-07-19 18:37:54 +08:00
Ruihan Li 94eba6d85e Add unit tests about blocking behavior 2024-07-18 20:45:16 +08:00
Ruihan Li a219b6a485 Rename `Endpoint` to `Fifo` 2024-07-18 20:45:16 +08:00
Ruihan Li 39cd4420f2 Fix many error codes in pipes 2024-07-18 20:45:16 +08:00
Ruihan Li 8e72451448 Reuse the `wait_events` method in pipes 2024-07-18 20:45:16 +08:00
Ruihan Li 1c0d865373 Refine the event lock for pipes 2024-07-18 20:45:16 +08:00
Ruihan Li ab9941263b Avoid duplicate `wait_events` methods 2024-07-18 20:45:16 +08:00
Ruihan Li 6e8896165d Remove `BusyBoxTraceFile` 2024-07-18 20:45:16 +08:00
Ruihan Li 9505e5704e Avoid the unused `rights` field 2024-07-18 20:45:16 +08:00
Yuke Peng 7621b71113 Remove unused documentations 2024-07-18 20:38:24 +08:00
Yuke Peng 31746e2ebf Use WaitQueue to implement waiting in FutexWaiter 2024-07-18 20:38:24 +08:00
Jianfeng Jiang f86583dbce Make essential changes for publishing OSTD 2024-07-18 18:18:05 +08:00
Jianfeng Jiang 49eef0c094 Select should not return ETIME 2024-07-18 18:09:39 +08:00
Jianfeng Jiang 2766d95c18 Poll should not return ETIME 2024-07-18 18:09:39 +08:00
YanWQ-monad bffc34c94b Don't check access mode if the file is being created 2024-07-18 17:55:23 +08:00