Re: [PATCH 04/16] KVM: x86/mmu: Add address conversion functions for TDX shared bit of GPA

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 16/05/2024 1:20 pm, Edgecombe, Rick P wrote:
On Thu, 2024-05-16 at 13:04 +1200, Huang, Kai wrote:

I really don't see difference between ...

         is_private_mem(gpa)

... and

         is_private_gpa(gpa)

If it confuses me, it can confuses other people.

Again, point taken. I'll try to think of a better name. Please share if you do.


The point is there's really no need to distinguish the two.  The GPA is
only meaningful when it refers to the memory that it points to.

So far I am not convinced we need this helper, because such info we can
already get from:

    1) fault->is_private;
    2) Xarray which records memtype for given GFN.

So we should just get rid of it.

Kai, can you got look through the dev branch a bit more before making the same
point on every patch?

kvm_is_private_gpa() is used to set PFERR_PRIVATE_ACCESS, which in turn sets
fault->is_private. So you are saying we can use these other things that are
dependent on it. Look at the other callers too.

Well, I think I didn't make myself clear.

I don't object to have this helper.  If it helps, then we can have it.

My objection is the current implementation of it, because it is *conceptually* wrong for SEV-SNP.

Btw, I just look at the dev branch.

For the common code, it is used in kvm_tdp_mmu_map() and kvm_tdp_mmu_fast_pf_get_last_sptep() to get whether a GPA is private.

As said above, I don't see why we need a helper with the "current implementation" (which consults kvm_shared_gfn_mask()) for them. We can just use fault->gfn + fault->is_private for such purpose.

It is also used in the TDX code like TDX variant handle_ept_violation() and tdx_vcpu_init_mem_region(). For them to be honest I don't quite care whether a helper is used. We can have a helper if we have multiple callers, but this helper should be in TDX code, but not common MMU code.





[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux