[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v5 10/65] kvm/memory: Make memory type private by default if it h
From: |
Xiaoyao Li |
Subject: |
[PATCH v5 10/65] kvm/memory: Make memory type private by default if it has guest memfd backend |
Date: |
Thu, 29 Feb 2024 01:36:31 -0500 |
KVM side leaves the memory to shared by default, while may incur the
overhead of paging conversion on the first visit of each page. Because
the expectation is that page is likely to private for the VMs that
require private memory (has guest memfd).
Explicitly set the memory to private when memory region has valid
guest memfd backend.
Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
---
accel/kvm/kvm-all.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c
index fe2eb3f06902..0c0719a0303c 100644
--- a/accel/kvm/kvm-all.c
+++ b/accel/kvm/kvm-all.c
@@ -1451,6 +1451,16 @@ static void kvm_set_phys_mem(KVMMemoryListener *kml,
strerror(-err));
abort();
}
+
+ if (memory_region_has_guest_memfd(mr)) {
+ err = kvm_set_memory_attributes_private(start_addr, slot_size);
+ if (err) {
+ error_report("%s: failed to set memory attribute private:
%s\n",
+ __func__, strerror(-err));
+ exit(1);
+ }
+ }
+
start_addr += slot_size;
ram_start_offset += slot_size;
ram += slot_size;
--
2.34.1
- [PATCH v5 00/65] QEMU Guest memfd + QEMU TDX support, Xiaoyao Li, 2024/02/29
- [PATCH v5 01/65] linux-headers: Update to Linux v6.8-rc5, Xiaoyao Li, 2024/02/29
- [PATCH v5 02/65] RAMBlock: Add support of KVM private guest memfd, Xiaoyao Li, 2024/02/29
- [PATCH v5 03/65] HostMem: Add mechanism to opt in kvm guest memfd via MachineState, Xiaoyao Li, 2024/02/29
- [PATCH v5 04/65] trace/kvm: Split address space and slot id in trace_kvm_set_user_memory(), Xiaoyao Li, 2024/02/29
- [PATCH v5 05/65] kvm: Enable KVM_SET_USER_MEMORY_REGION2 for memslot, Xiaoyao Li, 2024/02/29
- [PATCH v5 06/65] kvm: Introduce support for memory_attributes, Xiaoyao Li, 2024/02/29
- [PATCH v5 07/65] physmem: Introduce ram_block_discard_guest_memfd_range(), Xiaoyao Li, 2024/02/29
- [PATCH v5 08/65] kvm: handle KVM_EXIT_MEMORY_FAULT, Xiaoyao Li, 2024/02/29
- [PATCH v5 09/65] trace/kvm: Add trace for page convertion between shared and private, Xiaoyao Li, 2024/02/29
- [PATCH v5 10/65] kvm/memory: Make memory type private by default if it has guest memfd backend,
Xiaoyao Li <=
- [PATCH v5 11/65] *** HACK *** linux-headers: Update headers to pull in TDX API changes, Xiaoyao Li, 2024/02/29
- [PATCH v5 12/65] i386: Introduce tdx-guest object, Xiaoyao Li, 2024/02/29
- [PATCH v5 13/65] target/i386: Implement mc->kvm_type() to get VM type, Xiaoyao Li, 2024/02/29
- [PATCH v5 14/65] i386/tdx: Implement tdx_kvm_init() to initialize TDX VM context, Xiaoyao Li, 2024/02/29
- [PATCH v5 15/65] i386/tdx: Get tdx_capabilities via KVM_TDX_CAPABILITIES, Xiaoyao Li, 2024/02/29
- [PATCH v5 16/65] i386/tdx: Introduce is_tdx_vm() helper and cache tdx_guest object, Xiaoyao Li, 2024/02/29
- [PATCH v5 17/65] i386/tdx: Adjust the supported CPUID based on TDX restrictions, Xiaoyao Li, 2024/02/29
- [PATCH v5 18/65] i386/tdx: Make Intel-PT unsupported for TD guest, Xiaoyao Li, 2024/02/29
- [PATCH v5 21/65] i386/tdx: Integrate tdx_caps->attrs_fixed0/1 to tdx_cpuid_lookup, Xiaoyao Li, 2024/02/29