On Thu, Sep 02, 2021, Andy Lutomirski wrote: > On 9/2/21 2:27 AM, Joerg Roedel wrote: > > On Wed, Sep 01, 2021 at 09:07:59AM -0700, Andy Lutomirski wrote: > >> In principle, you could actually initialize a TDX guest with all of its > >> memory shared and all of it mapped in the host IOMMU. > > > > Not sure how this works in TDX, but in SEV code fetches are always > > treated as encrypted. So this approach would not work with SEV, not to > > speak about attestation, which will not work with this approach either > > :) > > > > Oof. TDX is kinda similar. _All_ accesses are private if paging is disabled because the shared bit is either bit 48 or bit 51 in the GPA, i.e. can't be reached if paging is disabled. The vCPU is hardcoded to start in unpaged protected mode, so at least some amount of guest memory needs to be private. I also could've sworn code fetches from shared memory would #VE, but I can't find anything in the specs that confirm that. I may be conflating TDX with SGX's #GP on a code fetch outside of ELRANGE...