Switch crate used for TDX quote generation from configfs-tsm to tdx-attest#39
Open
Switch crate used for TDX quote generation from configfs-tsm to tdx-attest#39
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This PR switches the crate used for TDX quote generation from
configfs-tsmtotdx-attest.Closes #26
tdx-attesthas some features lacking inconfigfs-tsm, such as fallback to using vSOCK to QGS when configfs-tsm interface is not available, better generation handling, and better retry logic.There is also a licensing issue with
configfs-tsm- it is AGPL. Although i could probably get that changed if there were not other reasons to switch.However, two things to be aware of:
Concurrency
tdx-attestserializes allget_quotecalls with a process-wide mutex. That reduces races around its shared configfs path, but it also means concurrent callers in the same process cannot generate quotes in parallel.However,
configfs-tsmcreates a separate configfs directory per input hash, so in principle quote with different report data can proceed independently.In practice we know that quote generation is mostly serialized by the QGS, and on GCP our benchmarks indicate it is totally serialized, so this should not slow things down.
Timeouts
tdx-attest’swait_for_generation_changeloops without a timeout after writing inblob. If configfs accepts the write but for some reason the generation never changes, it can hang. Sinceconfigfs-tsmmay also block duringread_to_end(depending on kernel behavior), i don't consider this an issue for this PR. But we could consider putting a timeout around the call toget_quote.TODO