On 9/2/21 11:57 AM, Sean Christopherson wrote: > 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. That's a rule we should definitely add to our page table checker. Just like how we can look for W+X, we should also look for Shared+X.