On 8/6/2026 8:43 AM, Sean Christopherson wrote:
On Wed, Aug 05, 2026, Xiaoyao Li wrote:
On 7/31/2026 4:34 AM, Ackerley Tng wrote:
I think another way to phrase this is that if we don't make this change,
say, on the foo architecture where there's no CoCo and no private mem
support, kvm_supported_mem_attributes() would return true for the !kvm
case, which is over-reporting.

Under the condition that the foo architecture enables
CONFIG_KVM_VM_MEMORY_ATTRIBUTES.

How about this, replacing the entire changelog paragraph above:

    Explicitly guard reporting support for KVM_MEMORY_ATTRIBUTE_PRIVATE
    based on kvm_arch_has_private_mem being #defined. This improves
    reporting accuracy by not reporting support for
    KVM_MEMORY_ATTRIBUTE_PRIVATE when kvm_supported_mem_attributes() is
    called with kvm == NULL.

It doesn't help for the case where kvm == NULL, but help for the case where
CONFIG_KVM_VM_MEMORY_ATTRIBUTES is defined but kvm_arch_has_private_mem not.

sorry for being picky. I think we can say

This improves the reporting accuracy by avoiding the case where
KVM_MEMORY_ATTRIBUTE_PRIVATE is reported when kvm == null even without
kvm_arch_has_private_mem being #defined.

How about this?

Explicitly guard reporting support for KVM_MEMORY_ATTRIBUTE_PRIVATE based
on kvm_arch_has_private_mem being #defined in anticipation of tracking
PRIVATE vs. SHARED state per-guest_memfd, not per-VM (to allow in-place
conversion).

Sorry, maybe I'm stupid. I still don't understand how to connect it to tracking PRIVATE vs. SHARED state per-guest_memfd.

There are two diffs in this patch, and we are talking about the second diff, right?

If the kvm_supported_mem_attributes() will be used by gmem, I can buy the justification. But it won't. At least, it won't after this series.

guest_memfd support for memory attributes is expected to be unconditional
to avoid yet more macros (all architectures that support guest_memfd are
expected to use per-gmem attributes at some point), at which point
enumerating support KVM_MEMORY_ATTRIBUTE_PRIVATE based solely on memory
attributes being supported by KVM at-large would result in a system-scope

s/memory attributes/CONFIG_KVM_VM_MEMORY_ATTRIBUTES/ ?

check (NULL @kvm) over-reporting support on arm64.

I think arm64 won't define CONFIG_KVM_VM_MEMORY_ATTRIBUTES? So it seems to have nothing to do with arm64.

It matters for x86. After patch 20, CONFIG_KVM_VM_MEMORY_ATTRIBUTES is user-configurable. At that time, people can disable CONFIG_KVM_SW_PROTECTED_VM, CONFIG_KVM_INTEL_TDX and CONFIG_KVM_AMD_SEV, but enable CONFIG_KVM_VM_MEMORY_ATTRIBUTES on x86. In this case, kvm_supported_mem_attributes() reports KVM_MEMORY_ATTRIBUTE_PRIVATE for system-scope query which is totally wrong. I think this is the case we want to prevent not something won't happen for arm64?


    Give architectures full control over overriding the default definition
    of kvm_arch_has_private_mem() by removing the coupling with
    CONFIG_KVM_VM_MEMORY_ATTRIBUTES.

    In a later patch, kvm_arch_has_private_mem() will be defined based on
    whether architectural features are compiled in, and made orthogonal to
    CONFIG_KVM_VM_MEMORY_ATTRIBUTES.



Reply via email to