Enable support for enclave-based time tracking by default #661
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
SGXv2 platforms support calling the rdtscp instruction inside an enclave. PRs #659 and #660 added support to take advantage of this change and enable enclave to keep track of time without doing a usercall. This PR changes the default behavior on platforms that have SGXv2 support. This is a bit tricky as existing enclaves were not compiled with this in mind. When they do receive additional information from the enclave-runner that they don't expect, they will panic. This is addressed by printing a detailed error message with possible solutions.
As this code only makes sense for enclaves that were compiled with
rdtscp
support in mind, this should be merged at the same time support lands in the Rust compiler.