Commit Graph

485 Commits

Author SHA1 Message Date
zongmin.gu
cba8689bf3 Bump to 0.27.0 2022-03-04 11:37:13 +08:00
Hui, Chunyang
e0b47b3a76 Refactor futex wait with timeout 2022-03-04 11:37:13 +08:00
LI Qing
126562a3f7 Fix the wrong SGX exception conversion 2022-02-22 19:27:15 +08:00
Hui, Chunyang
ffaccedf95 Add support for clock_nanosleep
Also replace nanosleep implementation with clock_nanosleep
2022-02-22 16:05:36 +08:00
Hui, Chunyang
63db3e340c Fix futex wait timeout with absolute time 2022-02-22 16:05:36 +08:00
zongmin.gu
e0cf6bd0a6 Bump to 0.26.4 2022-02-11 11:10:02 +08:00
Hui, Chunyang
5d38c8e553 Fix vfork child process not close opened files 2022-01-24 14:09:36 +08:00
LI Qing
b40408cb91 [libos] Change ROOT_INODE to ROOT_FS
Filesystem should be the owner of its root inode
2022-01-17 11:52:16 +08:00
xiaoli.zhang
6353817af8 Fix incompatible timespec convertion 2022-01-12 18:42:03 +08:00
Hui, Chunyang
1229de1fd1 Fix panic if user input invalid memory arguments 2021-12-30 15:19:36 +08:00
zongmin.gu
9d55882cd5 Bump to 0.26.3 2021-12-29 16:29:35 +08:00
Hui, Chunyang
f65bbdd924 Fix TCGETS/TCSETS using wrong termios type definition 2021-12-24 16:57:27 +08:00
Zheng, Qi
8efde3915c Do not panic but return error for failed dcap ioctl 2021-12-22 08:08:49 +08:00
Hui, Chunyang
8aed759161 Clean clear_ctid when thread exits 2021-12-16 17:37:00 +08:00
zongmin.gu
765d019bbf Bump to version 0.26.2 2021-12-14 10:58:09 +08:00
zongmin.gu
101256bf1e Update Rust SGX SDK to enable rust-toolchain nightly-2021-11-01 2021-12-14 10:58:09 +08:00
zongmin.gu
6cff4bc30c Bump to 0.26.1 2021-12-06 19:19:53 +08:00
zongmin.gu
e8f262808b Fix Occlum building warnings 2021-12-06 19:19:53 +08:00
zongmin.gu
8fbb9b4796 Update SGX SDK 2.15.1 2021-12-06 19:19:53 +08:00
zongmin.gu
a428ea3409 Bump to 0.26.0 2021-11-29 18:42:15 +08:00
LI Qing
7bc2c336b6 Add mount and umount syscall 2021-11-29 15:11:37 +08:00
zongmin.gu
36918e42bf Check the buffer address before copy the data from the buffer
This commit fixed an Occlum security issue. The researchers from KU
Leuven (Belgium) and the University of Birmingham (UK) found it and
reported it to Occlum team. Thank you, Jo Van Bulck, Frank Piessens,
Fritz Alder, David Oswald, Jesse Spielman and Sam Thomas.
2021-11-29 14:14:54 +08:00
LI Qing
fc7ba98ded Add ppoll 2021-11-24 16:52:25 +08:00
LI Qing
b61188889d Update mountfs 2021-11-24 10:50:45 +08:00
zongmin.gu
a01b35ff5e Bump version to 0.25.0 2021-11-08 19:15:00 +08:00
Hui, Chunyang
56569e2b8e Fix running user application with too many arguments
Also fix the VM drop process when creating process failure
2021-11-08 11:30:36 +08:00
Hui, Chunyang
fa69b3d0d1 Try reduce vma count on host to prevent panic because of too much mprotect 2021-11-08 11:29:42 +08:00
Hui, Chunyang
d9845235d3 Fix the error code and return logic for mmap failure 2021-10-26 17:51:52 +08:00
LI Qing
9f763f84b1 Add the check of pathname in rename syscall 2021-10-22 18:01:25 +08:00
Zheng, Qi
1eb58a5eb3 Add new_fd range check for dup2/dup3
Signed-off-by: Zheng, Qi <huaiqing.zq@antgroup.com>
2021-10-22 17:50:48 +08:00
Zheng, Qi
3c9e172550 Add RLIMIT_RTTIME to make it compatibale with latest Linux kernel
Signed-off-by: Zheng, Qi <huaiqing.zq@antgroup.com>
2021-10-22 17:50:48 +08:00
Zheng, Qi
a16ba58b31 Set default RLIMIT_NOFILE to 1024
Signed-off-by: Zheng, Qi <huaiqing.zq@antgroup.com>
2021-10-22 17:50:48 +08:00
zongmin.gu
59986df1a5 Bump version to 0.24.2 2021-10-22 17:16:52 +08:00
Hui, Chunyang
1745825e81 Add support for mprotect PROT_GROWSDOWN 2021-10-18 19:49:28 +08:00
Zheng, Qi
0eb3353b7c Return current break if brk failed
Signed-off-by: Zheng, Qi <huaiqing.zq@antgroup.com>
2021-10-18 14:10:19 +08:00
LI Qing
030b1c7fdf Fix the memory leak in procfs 2021-10-18 13:43:02 +08:00
Hui, Chunyang
bdb7825607 Add support for mremap 2021-10-17 15:58:29 +08:00
Hui, Chunyang
6dd73c64b5 Improve userspace VM management
Occlum is a single-address-space library OS. Previously, userspace memory are divided for each process.
And all the memory are allocated when the process is created, which leads to a lot of wasted space and
complicated configuration.

In the current implementation, the whole userspace is managed as a memory pool that consists of chunks. There
are two kinds of chunks:
(1) Single VMA chunk: a chunk with only one VMA. Should be owned by exactly one process.
(2) Multi VMA chunk: a chunk with default chunk size and there could be a lot of VMAs in this chunk. Can be used
by different processes.

This design can help to achieve mainly two goals:
(1) Simplify the configuration: Users don't need to configure the process.default_mmap_size anymore. And multiple processes
running in the same Occlum instance can use dramatically different sizes of memory.
(2) Gain better performance: Two-level management(chunks & VMAs) reduces the time for finding, inserting, deleting, and iterating.
2021-10-17 15:58:29 +08:00
zongmin.gu
c6d474bb7b Bump version to 0.24.1 2021-10-01 08:29:25 +08:00
LI Qing
a8cd5eadba Fix the type conversion in statfs with TryFrom trait 2021-09-22 15:11:48 +08:00
LI Qing
c9083c787c Fix the return error code of file operations 2021-09-22 15:10:59 +08:00
zongmin.gu
85f9333fbe Bump version to 0.24.0 2021-09-15 14:49:25 +08:00
LI Qing
8f4fbba220 Add file POSIX advisory range lock 2021-09-15 11:15:42 +08:00
LI Qing
d24f89fd9c Add getrandom syscall 2021-09-06 19:20:51 +08:00
LI Qing
85d6977118 Modify the statfs on SEFS or UnionFS with ocall 2021-09-05 16:00:00 +08:00
LI Qing
29eed82a7e Add support for the mode of fallocate 2021-09-01 19:24:22 +08:00
Hui, Chunyang
99688183f0 Add vfork support 2021-08-24 11:24:03 +08:00
Hui, Chunyang
88f04c8df9 Add process group implementation and support set/getpgid, set/getpgrp 2021-08-20 08:34:44 +08:00
zongmin.gu
35229d495e Bump to 0.23.7 2021-08-11 16:13:26 +08:00
LI Qing
87c1c9a8b3 Add support for umask 2021-08-09 16:50:53 +08:00