We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
The SyncIoDisk in sgx-disk is not scalable on concurrency.
SyncIoDisk
sgx-disk
The problem is that there is a lock hold while doing I/O. This lock can be removed if using read_at and write_at API.
read_at
write_at
The text was updated successfully, but these errors were encountered:
Workaround: Use std::os::unix::fs::FileExt::read_at and write_at API, remove the lock. Bench result: Code:
std::os::unix::fs::FileExt::read_at
Sorry, something went wrong.
This is good perf improvement. But the implementation contains a bug... The offset should be calculated as follows.
offset += buf.as_slice().len()
Another thing is that the implementation should better use pwritev so that the number of OCalls is always one per request, instead of one per buffer.
pwritev
Improvement: Use libc::ocall::preadv64andpwritev64 API. Bench result: Code:
libc::ocall::preadv64
pwritev64
Great. Now we can submit a pull request.
lucassong-mh
No branches or pull requests
The
SyncIoDisk
insgx-disk
is not scalable on concurrency.The problem is that there is a lock hold while doing I/O. This lock can be removed if using
read_at
andwrite_at
API.The text was updated successfully, but these errors were encountered: