Commit Graph

453 Commits

Author SHA1 Message Date
Zhang Junyang 195fe855a1 Mark all surrounding pages accessed on page fault 2024-09-14 17:29:39 +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
Marsman1996 fc895c5697 Fix panic in `mmap` by invalid `perms` 2024-09-13 23:42:37 +08:00
Marsman1996 8421046dba Return when sigset size error 2024-09-13 22:12:50 +08:00
Ruihan Li 320092eda2 Implement blocking `connect` properly 2024-09-13 22:09:46 +08:00
Ruihan Li 6f915133b5 Fix error codes in `bind` 2024-09-13 22:09:46 +08:00
Ruihan Li a345e11b96 Fix error codes in `send`, `recv`, `accept` 2024-09-13 22:09:46 +08:00
Ruihan Li a8592a16ea Fix I/O events related to shutdown 2024-09-13 22:09:46 +08:00
Ruihan Li 421f6b8e5b Fix I/O events cross different states 2024-09-13 22:09:46 +08:00
Ruihan Li f831f5685f Fix I/O events for UNIX connected sockets 2024-09-13 22:09:46 +08:00
Shaowei Song 7ddb69f4db Make special devices go to the `FileIo` fast path 2024-09-13 22:09:06 +08:00
Ruihan Li 1b9b76d27c Make use of new `SpinLock` APIs 2024-09-13 21:31:20 +08:00
Ruihan Li 67d3682116 Move smoltcp-related code to bigtcp 2024-09-13 21:31:20 +08:00
Ruihan Li 9fba9445bd Introduce `IpIface` and `EtherIface` 2024-09-13 21:31:20 +08:00
Ruihan Li dd2cde3aee Introduce `IfaceExt` 2024-09-13 21:31:20 +08:00
Ruihan Li 538065b42f Remove unused methods and revise documentations 2024-09-13 21:31:20 +08:00
Ruihan Li 7a13c0dff6 Fix behavior related to EPOLLONESHOT 2024-09-13 21:02:06 +08:00
Ruihan Li 0a053404b9 Adjust error messages 2024-09-13 21:02:06 +08:00
Ruihan Li 6151d65cf5 Fix poll behavior 2024-09-13 21:02:06 +08:00
Ruihan Li 479d98c8b9 Use `(fd, file)` as the key 2024-09-13 21:02:06 +08:00
Ruihan Li d70ae181b5 Avoid nested loops 2024-09-13 21:02:06 +08:00
Ruihan Li 25daab7e78 Avoid duplicate code 2024-09-13 21:02:06 +08:00
Ruihan Li fa52eeb88f Remove unnecessary `is_deleted` 2024-09-13 21:02:06 +08:00
Zhang Junyang bec2c97637 Don't copy on write if this is the only reference 2024-09-13 20:10:03 +08:00
Zhang Junyang f13e5d12c1 Set right A/D bits at the right place 2024-09-13 20:10:03 +08:00
Zhang Junyang 4e9460593d Check for the mapping status before handling the page fault 2024-09-13 20:10:03 +08:00
Zhang Junyang d9eccdcfbe Implement remote TLB flush on `VmSpace` 2024-09-13 20:10:03 +08:00
Yuke Peng 63364813a8 Change idle task to lowest priority 2024-09-13 19:52:00 +08:00
Shaowei Song 1186fb7ca9 Use `SpinLock` on `FileTable` for efficiency 2024-09-13 19:48:26 +08:00
Shaowei Song 4a43e317b2 Use `SpinLock` on `Subject` 2024-09-13 19:48:26 +08:00
Marsman1996 6fcad6ce14 Fix integer overflow in handle_page_faults_around 2024-09-12 21:24:42 +08:00
Ruize Tang b88c490ff7 Fix incorrect return value for semctl GETZCNT/GETNCNT 2024-09-12 21:09:57 +08:00
Chen Chengjun 1fb34780f6 Eliminate an additional current!() operation in user space pagefault handling 2024-09-12 21:09:16 +08:00
Zhang Junyang 53ce7df53c Warn instead of panic on long clock update interval 2024-09-12 17:53:14 +08:00
Qingsong Chen 787604b7f6 Use ParentProcess to cache parent pid 2024-09-12 17:41:56 +08:00
Shaowei Song 8bfbdf6642 Optimize the lock usage in `RamInode`'s read/write 2024-09-11 12:59:31 +08:00
Marsman1996 42f3411337 Fix index out of bound when `key` of `semget` too large 2024-09-11 12:43:49 +08:00
Zhang Junyang c68302f700 Don't hold any locks while waiting in `EpollFile` 2024-09-07 06:47:12 +08:00
Shaowei Song 9638744712 Unseekable files need not to manipulate the `offset` 2024-09-02 18:42:35 +08:00
Yuke Peng 6ce50fab1c Refactor semaphore to support atomic semop 2024-09-02 17:12:04 +08:00
Shaowei Song dcc9600cb4 Do not modify timestamps on device read/write 2024-09-02 17:09:16 +08:00
Marsman1996 745ac6d982 Set overflow boundary to `isize::MAX` for memory related syscalls 2024-09-01 15:40:46 +08:00
Marsman1996 9589b332aa Add more overflow checks in `mmap` 2024-09-01 15:40:46 +08:00
Marsman1996 e184094648 Fix integer overflow caused by page align 2024-09-01 15:40:46 +08:00
Marsman1996 0a8ad6971a Fix integer overflow caused by large addr + size in memory related syscall 2024-09-01 15:40:46 +08:00
Yuke Peng db16caf28c [Semaphore] Replace Mutex with SpinLock 2024-08-30 22:52:24 +08:00
Yuke Peng b17e3e24d8 [Semaphore] Avoid using `CurrentUserSpace::get` 2024-08-30 22:52:24 +08:00