Re: [PATCH v9 03/41] KVM: Enumerate support for PRIVATE memory iff kvm_arch_has_private_mem is defined

Xiaoyao Li <[email protected]>
Newsgroups dev.linux.lists.linux-coco,org.kernel.vger.kvm,org.kernel.vger.linux-doc,org.kernel.vger.linux-kernel,org.kernel.vger.linux-kselftest,org.kernel.vger.linux-trace-kernel,org.kvack.linux-mm
Message-ID <[email protected]>
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.
>>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.