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
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
Ruihan Li
aa29640ed7
Send RST packets when appropriate
2025-03-10 18:08:08 +08:00
Wang Siyuan
eca3c8fb59
Refactor RLimit64 to atomic
2025-03-06 11:22:05 +08:00
Chen Chengjun
801eac9386
Support PR_SET/GET_CHILD_SUBREAPER for sys_prctl
2025-03-03 19:31:50 +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
d71771e49a
Re-enable CFS
2025-02-11 10:51:12 +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
Ruihan Li
b9ce3e64ad
Make the file lookup faster
2025-01-09 10:58:16 +08:00
Zhang Junyang
cdac59beda
Implement a new set of physical page APIs
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
Ruihan Li
0bfe7aceb8
Utilize `ThreadLocal`
2024-12-26 14:51:20 +08:00
Marsman1996
9753d796c5
Add overflow check for futex_addr
2024-12-26 09:05:24 +08:00
Wang Siyuan
1e3403e756
Support ELF files with zero `p_filesz`.
2024-12-22 15:16:22 +08:00
Marsman1996
3d12ccdbea
Warn unsupported clone flags instead of panic
2024-12-20 09:21:25 +08:00
Fabing Li
24f1e02b26
Support prctl(PR_SET_KEEPCAPS/PR_GET_KEEPCAPS)
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
ced0023d6b
Introduce a syscall restart mechanism
2024-12-16 21:12:08 +08:00
Ruihan Li
1716f4f324
Use `Pollee` as the socket observer
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
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
徐启航
878f3f3760
Scheduling class support
2024-12-04 09:36:41 +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
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
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
jiangjianfeng
495c93c2ad
Refactor Rwlock to take type parameter
2024-11-21 15:46:10 +08:00
Ruihan Li
ec2c6ab7a3
Make `Pollee` semi-stateless
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
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
Marsman1996
c200997c9a
Avoid init stack top at `MAX_USERSPACE_VADDR`
2024-11-13 21:43:28 +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
Ruihan Li
054c64542b
Use `PollAdaptor` to signal `SIGIO`
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
Marsman1996
54e2ffbb71
Add check for `argc`, `arg_ptr` and `env_ptr` in `InitStackReader`
2024-11-12 11:35:46 +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
Marsman1996
f287110001
Fix `InitStackReader` to access given stack instead of current task
2024-11-09 10:06:45 +08:00
Ruihan Li
19b13d88e2
Fix `clone_exit_signal` test
2024-11-06 21:53:55 +08:00
Fabing Li
7a08d9a660
Support other SigStackFlags
2024-11-06 15:00:01 +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
Ruihan Li
7ddfd42baa
Make `wait_events` support timeout
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
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
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
jellllly420
3c857d746e
Clear TID before doing futex_wake when exiting a POSIX thread
2024-10-20 13:21:27 +08:00
le-monde-bleu
54a807b5f7
Modify asterinas/kernel/src/process/posix_thread/mod.rs
2024-10-18 09:31:25 +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
ea489252f4
Refactor `Dentry` to optimize the vfs layer
2024-10-11 11:22:52 +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
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
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
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
Jianfeng Jiang
70505ff4f8
Support futex wait timeout
2024-09-19 22:42:13 +08:00
Jianfeng Jiang
f159b42b61
Fix the condition in is_last_thread
2024-09-18 16:59:17 +08:00
Marsman1996
44629e4627
Fix panic in FutexKey::load_val when no read access
2024-09-14 22:45:59 +08:00
Jianfeng Jiang
f3174dbbbc
Make task store Arc<Thread> and process store Arc<Task>
2024-09-14 17:34:14 +08:00
Jianfeng Jiang
81b0f265b5
Move Tid from Thread to PosixThread
2024-09-14 17:34:14 +08:00
Chen Chengjun
42e28763c5
Replace the Pausers' usage with Waiter/WaitQueue
2024-09-14 13:59:07 +08:00
Chen Chengjun
822caf34f4
Move Pauser's functionality to Waiter/WaiterQueue and add the per-thread signalled waker
2024-09-14 13:59:07 +08:00
Chen Chengjun
1873bb7a3f
Add wait_until_* functionality to Waiter
2024-09-14 13:59:07 +08:00
Chen Chengjun
6a5a5b4d3d
Add a fast path to has_pending
2024-09-14 13:59:07 +08:00
Ruihan Li
421f6b8e5b
Fix I/O events cross different states
2024-09-13 22:09:46 +08:00
Shaowei Song
1186fb7ca9
Use `SpinLock` on `FileTable` for efficiency
2024-09-13 19:48:26 +08:00
Qingsong Chen
787604b7f6
Use ParentProcess to cache parent pid
2024-09-12 17:41:56 +08:00
Jianfeng Jiang
a72c7dadf3
Optimize the latency of lmbench-signal-prot
2024-08-28 14:27:41 +08:00
Chen Chengjun
ffc717f00b
Enable handling page fault around
2024-08-28 11:04:03 +08:00
Cautreoxit
86f09eef75
Fix all spelling mistakes in history by typos tool
2024-08-27 12:19:48 +08:00
Chen Chengjun
6bde87d33a
Fix a bug of InitStack during doing fork+exec
2024-08-25 15:14:11 +08:00
Zhang Junyang
dafd16075f
Remove the shim kernel crate
2024-08-23 23:37:50 +08:00