Commit Graph

583 Commits

Author SHA1 Message Date
Hui, Chunyang
ea64939cac Fix json parse debuggable flag 2020-12-02 13:29:41 +08:00
Hui, Chunyang
0a810b9b58 Add return error code for ecall 2020-12-02 13:29:41 +08:00
zongmin.gu
928cfecf9d Change Tcmalloc as optional feature
The current Tcmalloc has memory leak issue. So change it as optional. By
default, dlmalloc is used. Enable tcmalloc with below command:
make TCMALLOC=Y
2020-11-23 21:26:41 +08:00
Hui, Chunyang
d4e6518eaf Add new CI status badge for different workflow 2020-11-23 13:01:50 +08:00
Hui, Chunyang
932987e039 Ignore the result for grpc demo test in CI
Due to the incomplete implementation of SGX simulation mode, Occlum gRPC demo keeps failing in CI.
Since this is also tested in SGX hardware mode, just ignore the result in simulation mode for now.
This commit can be reverted once the SGX simulation mode is flawless.
2020-11-23 13:01:50 +08:00
zongmin.gu
3163a62963 Bump version to 0.18.0 2020-11-20 09:24:24 +08:00
Hui, Chunyang
9c3f595f0e Add support for building docker image with specific Occlum branch 2020-11-20 09:24:24 +08:00
LI Qing
4769a2600e Add FUTEX_WAIT_BITSET and FUTEX_WAKE_BITSET options for futex syscall 2020-11-20 09:24:24 +08:00
Hui, Chunyang
52fcc622ea Enhance SGX hardware mode CI test
1. Enable gRPC test
2. Always clean the docker
3. Support parallel jobs
2020-11-20 09:24:24 +08:00
Tate, Hongliang Tian
34288a5e37 Use HostFd to manage the lifetime of host OS resources 2020-11-19 08:13:57 +08:00
Tate, Hongliang Tian
83ce318f6c Unregister a file from epoll files when the file is closed
Usually, files are unregistered from an epoll file via the EPOLL_CTL_DEL command
explicitly. But for the sake of users' convenience, Linux supports
unregistering a file automatically from the epoll files that monitor the file
when the file is closed. This commit adds this capability.
2020-11-18 22:17:23 +08:00
Hui, Chunyang
787df74be0 Fix Python test malloc failure on SGX machine
Using tcmalloc could consume more heap. Enlarging kernel heap allocation
can fix this.
Also print result for Python test.
2020-11-18 22:13:34 +08:00
Tate, Hongliang Tian
1de089ac7d Rewrite the select syscall using the new poll implementation 2020-11-18 19:35:04 +08:00
Tate, Hongliang Tian
a857cf9bfb Fix a design flaw in handling events of host files 2020-11-18 19:35:04 +08:00
Tate, Hongliang Tian
798cbfd843 Fix pushing/popping zero-length slices to/from Channel 2020-11-18 19:35:04 +08:00
Tate, Hongliang Tian
10f3ffa9e6 Fix Channel's notifier being inconsistent with poll/epoll 2020-11-18 19:35:04 +08:00
Tate, Hongliang Tian
5b6d06b808 Fix a bug in poll's handling of input pollfds 2020-11-18 19:35:04 +08:00
Hui, Chunyang
554f7dd2c5 Add SGX hardware mode test
Currently, only a subset of tests are enabled. Other tests will be
enabled in the future.
2020-11-18 17:18:31 +08:00
zongmin.gu
0490164a8f Replace dlmalloc with tcmalloc 2020-11-18 16:46:38 +08:00
LI Qing
9bf2a77e16 Add getdents syscall 2020-11-18 16:44:11 +08:00
Hui, Chunyang
4d4caa2265 Add CentOS test for CI 2020-11-18 11:54:22 +08:00
Hui, Chunyang
72ad448cf9 Fix cargo fmt error 2020-11-18 11:54:22 +08:00
zongmin.gu
9504e8f681 Enable optimized string and math lib in Occlum 2020-11-17 14:42:39 +08:00
zongmin.gu
d63bfac61c Remove the FP area initialization code
When using the optimized string lib in Occlum, the memset function would
use xmm0 register, as the result, the FP area initialization code would
modify the FP area before saving it. So just ignor the FP area
initialization code.
2020-11-17 14:42:39 +08:00
LI Qing
5f05c16700 Init the memory for elf to zero 2020-11-16 15:04:13 +08:00
Hui, Chunyang
300518a101 Use new env configuration for github action 2020-11-16 11:55:10 +08:00
Shirong Hao
2e0e8d602f Add Rune Demo test 2020-11-13 18:59:02 +08:00
Tate, Hongliang Tian
71df1cf2c8 Add the new poll implementation 2020-11-12 15:49:20 +08:00
Tate, Hongliang Tian
7133315f46 Make the IoEvents type to more complete and robust 2020-11-12 15:49:20 +08:00
He Sun
4260a8defc Fix two cpuid bugs
1. >> has higher precedence than &. Use parentheses to conduct & first;
2. In the latest Intel software developer's manual, cpuid leaf 06H EDX
is related to the logical processor.
2020-11-12 15:48:04 +08:00
Zongmin.Gu
328b203817 Update the bug report template with comments 2020-11-12 15:46:24 +08:00
Zongmin.Gu
da5be1cad6 Update issue templates 2020-11-12 15:46:24 +08:00
Tate, Hongliang Tian
6fdfa57a14 Add the new epoll implementation
Before this commit, the epoll implementation works by simply delegating to the
host OS through OCall. One major problem with this implementation is
that it can only handle files that are backed by a file of the host OS
(e.g., sockets), but not those are are mainly implemented by the LibOS
(e.g., pipes). Therefore, a new epoll implementation that can handle all
kinds of files is needed.

This commit completely rewrites the epoll implementation by leveraging
the new event subsystem. Now the new epoll can handle all file types:

1. Host files, e.g., sockets, eventfd;
2. LibOS files, e.g., pipes;
3. Hybrid files, e.g., epoll files.

For a new file type to support epoll, it only neends to implement no
more than four methods of the File trait:

* poll (required for all file types);
* notifier (required for all file files);
* host_fd (only required for host files);
* recv_host_events (only required for host files).
2020-11-10 14:34:40 +08:00
Tate, Hongliang Tian
2ff4b1c776 Reduce the FileRef type to Arc<dyn File>
The FileRef type was defined as Arc<Box<dyn File>>, where the use of Box is
unnecessary. This commit reduces the type to Arc<dyn File>.
2020-11-10 14:34:40 +08:00
LI Qing
6e83595b74 Fix the return value of getcwd syscall 2020-11-09 19:45:21 +08:00
LI Qing
f87bbc586b Fix the alignment of stack entrypoint
Libc ABI requires 16-byte alignment of the stack entrypoint
2020-11-09 19:43:00 +08:00
LI Qing
1882458862 Mitigate SEFS's consistency and atomic issues 2020-11-07 11:45:37 +08:00
Shirong Hao
9d059ad057 Update the path of rune binary to /usr/local/bin/rune 2020-11-06 08:39:55 +08:00
He Sun
9dd94cdbd6 Fix the conflict of symbols with glibc 2020-11-05 21:57:48 +08:00
He Sun
0bb8f5922e Use sccache to accelerate Rust build 2020-11-05 21:54:57 +08:00
jeffery.wsj
fe2a5629ba Add Dragonwell11 for enclave build and install README.md 2020-11-02 12:36:15 +08:00
Shirong Hao
fc0bb79de8 Update runE Quick Start doc
1. Running Occlum application with docker and rune instead of Occlum application bundle
2. Update to occlum-0.17.0 and rune-0.5.0
3. Using Occlum installer instead of Occlum sdk image to build Occlum application
2020-10-29 22:25:34 +08:00
Hui, Chunyang
12ace2600c Add package deployment and test action 2020-10-29 14:03:59 +08:00
zongmin.gu
a5c2e553b7 Bump version to 0.17.0 2020-10-22 19:53:20 +08:00
Hui, Chunyang
8d1e1838d3 Fix package build errors
1. Fix repeatedly linking dynamic libraries for occlum-run
2. Fix gcc toolchain deb package build error
3. Remove redundant file from installer file list
4. Change symlink target path to relative path
2020-10-22 16:47:47 +08:00
He Sun
4f02e71160 Only copy the received data to user space in recvmsg
Redundant copy may result in dirty data.
2020-10-22 15:51:07 +08:00
He Sun
dd63f0194f Refine the data comparison in server_epoll test
Verify received data with the length of the data sent from client.
Otherwise, it may fail when there was dirty data in the buffer for
receiving.
2020-10-22 15:51:07 +08:00
Hui, Chunyang
66bd826b6b Fix softlinks in sdk_libs to point to customized sgxsdk libraries 2020-10-21 17:51:22 +08:00
superajun-wsj
bef3201aef Update demos/font/font_support_for_java/README.md
OK

Co-authored-by: Zongmin.Gu <59240482+guzongmin@users.noreply.github.com>
2020-10-21 17:41:49 +08:00
jeffery.wsj
7eb132c2b2 Support occlum font for java 2020-10-21 17:41:49 +08:00