Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Benchmarking file system operations in the enclave; caching ? #841

Open
AsmX0r opened this issue Dec 23, 2020 · 1 comment
Open

Benchmarking file system operations in the enclave; caching ? #841

AsmX0r opened this issue Dec 23, 2020 · 1 comment
Labels
needs-triage Bug does not yet have a priority assigned

Comments

@AsmX0r
Copy link

AsmX0r commented Dec 23, 2020

Dear SGX-LKL developers,

I would to benchmark some file intensive operations which may take from a couple of milliseconds to a few seconds. I'm aware that SGX-LKL protects the disk I/O calls using dm-crypt and dm-integrity (I currently use those when building the disk image).

When I measure some disk I/O in my program hosted in SGX-LKL (hawdware mode), should I assume the environment persists the changes on the disk image similarly to a regular operating system (e.g., when calling fsync), or does SGX-LKL adds additional caching layers that can delay such operations and therefore, wrongly increases the throughput of my benchmarking (typically faster)? If so, do you provide a convenient way to disable such caching mechanism ?

Many thanks for your work!

@github-actions github-actions bot added the needs-triage Bug does not yet have a priority assigned label Dec 23, 2020
@prp
Copy link
Member

prp commented Dec 29, 2020

Hi @AsmX0r, since LKL is the Linux kernel, it will maintain a regular page cache inside the enclave, which will buffer disk I/O operations and flush them to the disk device in the same way as Linux does. You can use direct I/O under Linux to bypass the page cache.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
needs-triage Bug does not yet have a priority assigned
Projects
None yet
Development

No branches or pull requests

2 participants