mirror of
https://github.com/clearlinux/graphene.git
synced 2026-08-28 21:35:52 +00:00
c0dc5fce2f
Previously, we introduced `sgx.zero_heap_on_demand` in Linux-SGX as a knob to trade off runtime degradation on memory allocations for faster enclave start-up times. This was an incorrect fix because Linux-SGX's `_DkVirtualMemoryAlloc()` always zeroess the requested memory region, so there was a double-zero of the heap at runtime. Note that LibOS layer silently assumes that `_DkVirtualMemoryAlloc()` zeroes out the memory, and many applications rely on this (Apache, Blender in my experiments). Thus, this commit keeps the zero-out in `_DkVirtualMemoryAlloc()` and removes zero-outs on enclave init and in `get_enclave_pages()`. This renders `sgx.zero_heap_on_demand` useless, so this manifest option is also removed. Also note that this commit doesn't introduce any performance degradation (in fact, now Graphene behaves as if `sgx.zero_heap_on_demand = 1` always).
Node.js
This directory contains a Makefile and template manifest to run Node.js on Graphene. We tested it with Node.js 8.10.0 on Ubuntu 18.04. This example uses Node.js installed on the system instead of compiling from source as some of the other examples do.
The Makefile and the template manifest contain comments to hopefully make them easier to understand.
Quick Start
To run the regression test execute make check. To do the same for SGX, execute make SGX=1 check.