Hui, Chunyang
ed664d1143
Fix sched set/get affinity wrong behaviour
...
1. Fix child process not inherit affinity from parent process
2. Add warning for buffer length gap with kernel when getaffinity
2020-06-02 17:36:36 +08:00
YiLin.Li
e59ba66ccf
Update RunE Quick Start doc
...
1. Update CentOS dockerimage to 7.5
2. Allow users to define OCCLUM_INSTANCE_DIR
2020-06-02 17:01:27 +08:00
Tate, Hongliang Tian
db4ed1ba80
Bump version to 0.12.1
2020-06-02 16:47:20 +08:00
LI Qing
9b611e5f00
Update musl to v1.1.24
2020-06-02 05:39:29 +00:00
Hui, Chunyang
0a6b782769
Enable format check for travis CI
2020-06-01 10:26:40 +00:00
Hui, Chunyang
73b4f8b08c
Add support for PAL API v2
2020-05-29 05:26:38 +00:00
LI Qing
e6996f3c45
Add mremap system call
2020-05-29 03:38:49 +00:00
LI Qing
c27a94194f
Polish the Golang demo with Gin web framework
2020-05-29 02:03:41 +00:00
Hui, Chunyang
c1911e6585
Add demo for shell (FISH) script
2020-05-28 19:55:09 +08:00
Hui, Chunyang
5b695c9539
Format c/c++ files in src, tools and test
2020-05-27 07:09:18 +00:00
Hui, Chunyang
03ba13aec7
Add "make format" and "make format-check" to check format for c/c++ files
2020-05-27 07:08:59 +00:00
He Sun
cd2f13ae54
Refactor select syscall
...
1. Substitute the underlying poll OCall to select OCall to update the
timeout argument correctly.
2. Add more checks for the inputs.
2020-05-26 11:44:46 +08:00
Hui, Chunyang
c14ee62678
Add untrusted environment variable override
...
Add "untrusted" sections for environment variables defined in Occlum.json. Environment
variable defined in "default" will be shown in libos directly. Environment variable
defined in "untrusted" can be passed from occlum run or PAL layer and can override
the value in "default" and thus is considered "untrusted".
2020-05-25 03:14:54 +00:00
Tate, Hongliang Tian
acc3eb019f
Add two figures to README.md
2020-05-22 16:57:01 +08:00
He Sun
b29aa1d6d0
Add the Occlum-compatible Rust toolchains and a demo
2020-05-22 14:36:11 +08:00
Hui, Chunyang
bc6002f6dd
Add counters for passes and failures in test
...
Also exit with error if the fail number is not 0.
2020-05-22 14:23:20 +08:00
Hui, Chunyang
dadffb9f17
Fix sendfile syscall write buffer length
2020-05-21 17:20:12 +08:00
Hui, Chunyang
c6e0e06768
Clean up the build files generated in src/exec
2020-05-21 08:54:42 +00:00
LI Qing
f193f271a4
Update docker file for CentOS
2020-05-21 02:14:00 +00:00
Zongmin
17b4912055
Send SIGCHLD to parent process
2020-05-18 20:24:14 +08:00
He Sun
459ca45ab9
Fix reading extra message in neogotiate_msg
2020-05-15 21:49:26 +08:00
Tate, Hongliang Tian
e1789dc89f
Bump version to 0.12.0
...
Also, update the docs accordingly.
2020-05-15 11:32:44 +00:00
Tate, Hongliang Tian
d91014b417
Add RunE Quick Start doc
2020-05-15 11:32:44 +00:00
He Sun
a0b34c4450
Remove unintentionally added comments
2020-05-15 11:32:14 +00:00
He Sun
9252a1a993
Fix two bugs of ioctl
...
1. Add length of the argument to the ioctl ocall to guard sgx sdk to do
the copy.
2. Handle non-zero return value of ioctl.
2020-05-15 12:50:31 +08:00
LI Qing
6d72e10fc1
Add Golang toolchain and the demo
...
This commit provides a modified Go runtime in Docker image.
Now we can build a Go program using `occlum-go`, then run it
in SGX enclaves by Occlum.
The Golang demo demonstrates how to build and run a web server
program written in Go.
2020-05-15 03:02:42 +00:00
Zongmin
0c3466f4ad
Add three new occlum commands: start, exec and stop
...
Usage:
//start the occlum server
occlum start
//execute the command inside occlum
occlum exec [cmd] [-- <args>]
//stop the occlum server
occlum stop
2020-05-15 03:02:42 +00:00
LI Qing
4567b40f22
Fix a bug of zipping symlink files in rcore-fs-fuse
2020-05-15 03:02:42 +00:00
LI Qing
2d34ee349e
Add the sigaltstack system call
2020-05-15 03:02:42 +00:00
Hui, Chunyang
255f277f30
Build Occlum tools in SGX simulation mode by default
2020-05-15 03:02:42 +00:00
Hui, Chunyang
0bb1cbfbb5
Add PAL version api
2020-05-15 03:02:42 +00:00
He Sun
f9486bf7a9
Add resource limit check for the number of the fds in poll
2020-05-15 03:02:42 +00:00
zongmin.gu
eca27408be
Support user manage stack
...
Go/Java/JIT code manage their own stack
So we need to help them to handle exception
2020-05-15 03:02:42 +00:00
He Sun
aed572064b
Fix potential address-in-use errors in epoll_server test
...
Wait for all the children to exit before server exits to release all the
resource used by the test.
2020-05-15 03:02:42 +00:00
Zongmin
a6d97d5b4f
Update the sdk version to 2.9.1
...
Fix std::alloc::Alloc not found
The lastest Rust changes the trait to std::alloc::AllocRef.
Update the docker files to support sgx 2.9.1
Remove the compilerRT dependency for rust sdk update
2020-05-15 03:02:42 +00:00
Tate, Hongliang Tian
1d1330772c
Add new API occlum_pal_kill
...
This API enables sending signals to one or multiple LibOS processes from
outside the enclave.
2020-05-15 03:02:42 +00:00
Tate, Hongliang Tian
6e140a0d38
Add errno info for ECalls
...
Before this commit, the three ECalls of the LibOS enclave do not give
the exact reason on error. In this commit, we modify the enclave entry code
to return the errno and list all possible values of errno in Enclave.edl.
2020-05-15 02:59:16 +00:00
He Sun
1c707eda30
Add support for monitoring epoll fds with epoll
2020-05-15 02:59:16 +00:00
Hui, Chunyang
25350b0e85
Fix sched agent failure for offline core
2020-05-15 02:59:16 +00:00
He Sun
7a87d77509
Fix error when PF_UNIX is passed as protocol to create unix socket
...
Zero and PF_UNIX are both supported as protocol when creating unix
socket.
2020-05-15 02:59:16 +00:00
Tate, Hongliang Tian
e166382923
Add the signal subsystem
...
In this commit, we add eight signal-related syscalls
* kill
* tkill
* tgkill
* rt_sigaction
* rt_sigreturn
* rt_sigprocmask
* rt_sigpending
* exit_group
We implement the following major features for signals:
* Generate, mask, and deliver signals
* Support user-defined signal handlers
* Support nested invocation of signal handlers
* Support passing arguments: signum, sigaction, and ucontext
* Support both process-directed and thread-directed signals
* Capture hardware exceptions and convert them to signals
* Deliver fatal signals (like SIGKILL) to kill processes gracefully
But we still have gaps, including but not limited to the points below:
* Convert #PF (page fault) and #GP (general protection) exceptions to signals
* Force delivery of signals via interrupt
* Support simulation mode
2020-05-15 02:59:16 +00:00
LI Qing
1172c25677
Modify occlum_entry to be compatible with Linux syscall ABI
2020-05-15 02:59:16 +00:00
Hui, Chunyang
72f2a33e2a
Add log level alignment with OCI
2020-05-15 02:59:16 +00:00
He Sun
71475c3e96
Fix wrong assert in recvmsg for MSG_TRUNC flag
2020-05-15 02:59:16 +00:00
He Sun
bbb52f6990
Refine check for pointers from user space and outside enclave
...
Implement the check functions that are empty before and do some
adjustment where they are called.
2020-05-15 02:59:16 +00:00
LI Qing
614ec88242
Remove tabs in the source files of test cases
2020-05-15 02:59:16 +00:00
LI Qing
1dcabb09cd
Fix the access and faccessat system calls
2020-05-15 02:59:16 +00:00
LI Qing
6d27595195
Fix the negative offset check for pread/pwrite
2020-05-15 02:59:16 +00:00
He Sun
48d7f8df3e
Fix the invalid epoll_event pointer introduced by compilation optimization
...
That pointer does not point to the libc::epoll_event after release
build. Explicitly declaring the libc::epoll_event avoids the
invalidation.
2020-05-15 02:59:16 +00:00
Hui, Chunyang
6a17e6292c
Add support for user specified instance dir name
...
The default instance dir of Occlum is ".occlum". User now can specify the name
by declaring environment variable "OCCLUM_INSTANCE_DIR"
2020-05-15 02:59:16 +00:00