Files
Michał Kowalczyk 6c7ff2d3a6 Migrate and remove test/apps submodule
We decided to merge the sample app integrations submodule back because
working with git submodules turned out to be really painful. The only
blocker for this was the fact, that previously it contained a lot of
binary blobs and copy-pasted sources, but this was cleaned up recently.

Credits: (authors of particular integration examples, extracted from
commits and PR history in https://github.com/oscarlab/graphene-tests)

apache:     Chia-Che Tsai <chiache@tamu.edu>, Dmitrii Kuvaiskii <dmitrii.kuvaiskii@intel.com>
bash:       Chia-Che Tsai <chiache@tamu.edu>, Dmitrii Kuvaiskii <dmitrii.kuvaiskii@intel.com>
blender:    borysp <borysp@invisiblethingslab.com>
busybox:    borysp <borysp@invisiblethingslab.com>
capnproto:  Dmitrii Kuvaiskii <dmitrii.kuvaiskii@intel.com>
curl:       Dmitrii Kuvaiskii <dmitrii.kuvaiskii@intel.com>
gcc:        Thomas Knauth <thomas.knauth@intel.com>
lighttpd:   Chia-Che Tsai <chiache@tamu.edu>, Thomas Knauth <thomas.knauth@intel.com>
lmbench:    Chia-Che Tsai <chiache@tamu.edu>
memcached:  Dmitrii Kuvaiskii <dmitrii.kuvaiskii@intel.com>
nginx:      Dmitrii Kuvaiskii <dmitrii.kuvaiskii@intel.com>
nodejs:     jack.wxz <jack.wxz@alibaba-inc.com>
nodejs-express-server: Eduardo Rodriguez <erodrig@us.ibm.com>
openvino:   Dmitrii Kuvaiskii <dmitrii.kuvaiskii@intel.com>
python-scipy-insecure: Chia-Che Tsai <chiache@tamu.edu>, Dmitrii Kuvaiskii <dmitrii.kuvaiskii@intel.com>
python-simple:         Chia-Che Tsai <chiache@tamu.edu>, Dmitrii Kuvaiskii <dmitrii.kuvaiskii@intel.com>
pytorch:    Thomas Knauth <thomas.knauth@intel.com>
r:          Chia-Che Tsai <chiache@tamu.edu>
redis:      Dmitrii Kuvaiskii <dmitrii.kuvaiskii@intel.com>
tensorflow: Thomas Knauth <thomas.knauth@intel.com>

LTP was moved to LibOS/shim/test/ltp. It was recently rewritten by
Wojtek Porczyk <woju@invisiblethingslab.com>.
2020-03-30 21:10:41 +02:00

50 lines
1.6 KiB
Plaintext

# Redis
This directory contains the Makefile and the template manifest for the most
recent version of Redis (as of this writing, version 5.0.5). This was tested
on a machine with SGX v1 and Ubuntu 16.04.
The Makefile and the template manifest contain extensive comments and are made
self-explanatory. Please review them to gain understanding of Graphene-SGX
and requirements for applications running under Graphene-SGX.
# Quick Start
```sh
# build Redis and the final manifest
make SGX=1
# run original Redis against a benchmark (redis-benchmark supplied with Redis)
./redis-server --save '' --protected-mode no &
src/src/redis-benchmark
kill %%
# run Redis in non-SGX Graphene against a benchmark
./pal_loader redis-server --save '' --protected-mode no &
src/src/redis-benchmark
kill %%
# run Redis in Graphene-SGX against a benchmark
SGX=1 ./pal_loader redis-server --save '' --protected-mode no &
src/src/redis-benchmark
kill %%
```
# Why this Redis configuration?
Notice that we run Redis with two parameters: `save ''` and `protected-mode no`:
- `save ''` disables saving DB to disk (both RDB snapshots and AOF logs). We
use this parameter to side-step some bugs in Graphene triggered during the
graceful shutdown of Redis.
- `protected-mode no` allows clients to connect to Redis on any network
interface. Even though we use the loopback interface (which is always allowed
in Redis), Graphene hides this information. Therefore, we ask Redis to allow
clients on all interfaces.
# Redis with Select
By default, Redis uses the epoll mechanism of Linux to monitor client connections.
To test Redis with select, add `USE_SELECT=1`, e.g., `make SGX=1 USE_SELECT=1`.