Intel® Software Guard Extensions (Intel® SGX)
Discussion board focused on hardware-based isolation and memory encryption to provide extended code protection in solutions.

SGX1 EPC and DRAM Memory swapping

Saeid_M_
Beginner
701 Views

Dear All,

In early 2016 I saw a post regarding enclave memory size limitation which is about 90 MB. That post concluded it is not possible to have an enclave larger than 90 MB both in Windows and Linux with the 2016 edition of Intel SGX SDK.

https://software.intel.com/en-us/forums/intel-software-guard-extensions-intel-sgx/topic/607004

Recently, I have seen an academic paper in Linux which can use enclave size with more than 90 MB. I have contacted the authors, and they told me it is enough to install the SGX Linux kernel driver to have the full functionality of EPC page swapping in SGX1 (basically making use of the EWB/ELD instructions deal with adding and removing pages from the limited physically protected memory (EPC) to regular memory on the platform). I have questions regarding this:


1- Does latest SGX Linux kernel driver (accompanied with SDK 1.7) supports EPC page swapping in the Linux OS?


2- If the answer is "yes ", does SGX Linux kernel driver take care of EPC page swapping automatically or the programmer should call the EWB/ELD instructions to do this?


3-If the answer is "yes", does SDK 1.7 supports EPC page swapping functionality? Does it have API for page Swapping?

Thank you

0 Kudos
1 Solution
Surenthar_S_Intel
701 Views

Hi,

Yes. latest SGX Linux kernel driver (accompanied with SDK 1.7) supports EPC page swapping in the Linux OS. 

Page swapping is enabled by default. There's a kthread task kisgxswapd_tsk which takes care of page swapping.

https://github.com/01org/linux-sgx-driver/blob/master/isgx_page_cache.c

-Surenthar

 

View solution in original post

0 Kudos
1 Reply
Surenthar_S_Intel
702 Views

Hi,

Yes. latest SGX Linux kernel driver (accompanied with SDK 1.7) supports EPC page swapping in the Linux OS. 

Page swapping is enabled by default. There's a kthread task kisgxswapd_tsk which takes care of page swapping.

https://github.com/01org/linux-sgx-driver/blob/master/isgx_page_cache.c

-Surenthar

 

0 Kudos
Reply