I am doing a benchmark of ecall.But I came across a problem.
Due to the size limit of enclave, there will be a page thrashing when the data passed into the enclave exceeds the size of enclave.In my experiment,different size of array is passed into enclave via ecall to be sorted using quicksort. I record the time the ecall used.
Below is opaque's(https://people.eecs.berkeley.edu/~wzheng/opaque.pdf) sort benchmarks. It can be seen that when the data is larger than the EPC,there will be a "jump".
Sadly,below is my benchmark.It is linear:
How does it happen? Thanks!
- CPU is Intel(R) Core(TM) i5-7400, 8 GB RAM.
- SGX sdk and psw are both 2.2.
- Experiment is under HW mode.
- The enclave max heap size is 16MB.
I am doing the same benchmark as yours, but when I passed data which exceeds the enclave size, I get Aborted (core dumped). Is there any method to avoid this issue?
Besides, are you find out the reason of your benchmark data (linearly)?