Commit Graph

276 Commits

Author SHA1 Message Date
Zheng, Qi
500ca21d52 [libos] Fix bug of sigtimedwait for timeout NULL 2023-02-15 17:07:13 +08:00
Hui, Chunyang
fb12642254 Fix brk not reset memory 2023-01-06 22:56:41 +08:00
Zheng, Qi
7de4a2b3cd [libos] Add sgx_get_key ioctl command 2023-01-03 17:55:23 +08:00
Hui, Chunyang
08b3dc7268 Update internal config tool for EDMM support 2022-12-23 18:33:53 +08:00
Zheng, Qi
69cc20d703 [test] No need build Occlum to make test 2022-12-05 20:09:03 +08:00
Hui, Chunyang
0f789b49bc Fix exit_group not interrupt wait4 2022-11-15 18:01:46 +08:00
LI Qing
64c75e6d40 Add partial support for '/proc/stat' and '/proc/[pid]/stat' 2022-11-06 20:56:29 +08:00
LI Qing
96166dadc2 Add setpriority and getpriority syscall 2022-10-26 13:00:19 +08:00
Hui, Chunyang
4c3ca79134 Make vfork stop parent child threads
When vfork is called and the current process has other running child threads,
for Linux, the other threads remain running. For Occlum, this behavior is
different. All the other threads will be frozen until the vfork returns
or execve is called in the child process.

The reason is that since Occlum doesn't support fork, many applications will
use vfork to replace fork. For multi-threaded applications, if vfork doesn't
stop other child threads, the application will be more likely to fail because
the child process directly uses the VM and the file table of the parent process.
2022-10-18 21:57:57 +08:00
Hui, Chunyang
51eb43eb90 Fix epoll_ctl not waking up epoll_wait
Co-authored-by: rduan@apache.org
2022-09-22 15:11:31 +08:00
Hui, Chunyang
171faccea7 [libos] Fix munmap conflict chunk range and vma range 2022-09-06 12:57:16 +08:00
Hui, Chunyang
6cb9ca7e44 Add sendmsg/recvmsg support for unix domain socket 2022-08-23 20:37:57 +08:00
Hui, Chunyang
71c4937b45 Fix listening socket epoll_wait not waken by connect 2022-08-23 20:37:57 +08:00
Hui, Chunyang
f87ee7c7a4 Support munmap multiple single VMA chunks with remaining ranges 2022-08-23 16:58:03 +08:00
LI Qing
54de00a3bc Fix the issue when path is suffixed by "/" 2022-08-15 09:21:52 +08:00
Hui, Chunyang
d1acb84362 Add support for /proc/self(pid)/maps 2022-08-08 08:40:52 +08:00
zhubojun
b65cb4e017 [tools] Support configuring PKU in Occlum.json 2022-07-17 17:12:14 +08:00
LI Qing
1dc2b517fc Fix the issue about fsync on hostfs's dir
There are no sync methods about untrusted dir, so we do nothing.
2022-07-13 13:42:51 +08:00
LI Qing
a3e2f54a6d Disable DCAP of ioctl test in hyper mode 2022-07-06 15:31:56 +08:00
zhubojun
78450e58f8 [test] Add test for SHM 2022-04-28 20:05:50 +08:00
Hui, Chunyang
3e15eb059c Add support for mmap spans over two chunks with MAP_FIXED 2022-03-30 17:38:37 +08:00
zhubojun
df36a6bbbb [test] Add test case for UTIME 2022-03-22 17:59:00 +08:00
LI Qing
66d1ebe918 [hyper mode] Add compile support 2022-03-19 15:32:45 +08:00
LI Qing
f611e9c008 [hyper mode] Dismiss the valiadation of QE report 2022-03-19 15:32:45 +08:00
LI Qing
e735cf00fb [test] Fix the errors in cpuid test 2022-03-19 15:32:45 +08:00
LI Qing
d0f6c9b6b6 Add test case for FLOCK 2022-03-09 16:00:23 +08:00
LI Qing
91f025f1c8 Rename the flock test case to posix_flock 2022-03-09 16:00:23 +08:00
zongmin.gu
c58f61c56e Enable simulation interrupt mode support 2021-12-14 10:58:09 +08:00
Zheng, Qi
7db9d9b955 Add SGX KSS support
Signed-off-by: Zheng, Qi <huaiqing.zq@antgroup.com>
2021-12-06 15:46:34 +08:00
LI Qing
e75c10ba79 Add the mount test case in make test 2021-12-02 16:24:15 +08:00
LI Qing
7bc2c336b6 Add mount and umount syscall 2021-11-29 15:11:37 +08:00
Zheng, Qi
6b8f24c18b Fix timing issue in test_sendmsg_recvmsg_connectionless
Signed-off-by: Zheng, Qi <huaiqing.zq@antgroup.com>
2021-11-03 20:33:22 +08:00
LI Qing
9f763f84b1 Add the check of pathname in rename syscall 2021-10-22 18:01:25 +08:00
Hui, Chunyang
1745825e81 Add support for mprotect PROT_GROWSDOWN 2021-10-18 19:49:28 +08:00
Hui, Chunyang
16966c0b28 Fix sysinfo and env test case failure in stress test 2021-10-18 13:04:39 +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
Hui, Chunyang
d60bdd3771 Add stress test capabilites for make test 2021-10-15 11:52:53 +08:00
zongmin.gu
17d79b56a2 Fix aliyunlinux test 2021-10-01 08:29:25 +08:00
LI Qing
8f4fbba220 Add file POSIX advisory range lock 2021-09-15 11:15:42 +08:00
zongmin.gu
d52d9eddb8 Test DCAP ioctl only on SGX2 HW 2021-09-09 14:09:03 +08:00
zongmin.gu
de2fcc9bc1 Fix the cpuid test case issue 2021-09-09 14:09:03 +08:00
LI Qing
d24f89fd9c Add getrandom syscall 2021-09-06 19:20:51 +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
LI Qing
87c1c9a8b3 Add support for umask 2021-08-09 16:50:53 +08:00
LI Qing
b390ecaae9 Add creat syscall 2021-08-06 10:40:44 +08:00
LI Qing
865e38258b Add support for '/proc/[pid]/stat'
Many field values are displayed as 0
2021-08-05 16:10:54 +08:00
LI Qing
33876e122f Fix the compiler's warnings in make test with glibc 2021-08-04 12:00:31 +08:00