[PATCH 0/3] KVM: Kconfig fixes for the VM-wide private memory attribute
From: Paolo Bonzini
Date: Tue Oct 20 2026 - 09:16:05 EST
A late review of the guest_memfd attributes changes...
With Linux 7.4 the "private" memory attribute was moved from the VM
to the individual guest_memfd file descriptor. The old semantics are
available for backwards compatibility via CONFIG_KVM_VM_MEMORY_ATTRIBUTES,
and disabled by default.
This change has two problems: first, it ties support for VM memory
attributes entirely to a backwards compatibility symbol for distros.
Second, it is incompatible with all released versions of QEMU (and
perhaps most other VMMs?), thus the default is arguably not the
right one.
Fix the first problem, by making CONFIG_KVM_VM_MEMORY_ATTRIBUTES an
internal configuration symbol that is the equivalent of the old
CONFIG_KVM_GENERIC_MEMORY_ATTRIBUTES, and use a more descriptive name
for the private memory attribute. Fix the second by changing the
default to y if either SEV or TDX are enabled; leaving it n for
CONFIG_KVM_SW_PROTECTED_VM as it is only useful for selftests.
The last patch is a simple code cleanup to remove the static call
and module parameter overhead when the VM-level attribute is absent.
Thanks,
Paolo
Paolo Bonzini (3):
KVM: split CONFIG_KVM_PRIVATE_MEMATTR_VM out of
KVM_VM_MEMORY_ATTRIBUTES
KVM: x86: leave the legacy private attribute in for TDX and SEV
KVM: compile out all !gmem_in_place_conversion code unless
CONFIG_KVM_PRIVATE_MEMATTR_VM
Documentation/admin-guide/kernel-parameters.txt | 4 ++--
arch/x86/kvm/Kconfig | 6 ++++--
include/linux/kvm_host.h | 13 ++++++-------
virt/kvm/Kconfig | 3 +++
virt/kvm/kvm_main.c | 15 ++++++++-------
5 files changed, 23 insertions(+), 18 deletions(-)
--
2.52.0