[RFC PATCH v2 7/8] KVM: arm64: Add KVM_CAP_ARM_HW_DBM
Shameer Kolothum
shameerali.kolothum.thodi at huawei.com
Fri Aug 25 02:35:27 PDT 2023
Add a capability for userspace to enable hardware DBM support
for live migration.
ToDo: Update documentation.
Signed-off-by: Shameer Kolothum <shameerali.kolothum.thodi at huawei.com>
---
arch/arm64/include/asm/kvm_host.h | 2 ++
arch/arm64/kvm/arm.c | 13 +++++++++++++
include/uapi/linux/kvm.h | 1 +
3 files changed, 16 insertions(+)
diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h
index f623b989ddd1..17ac53150a1d 100644
--- a/arch/arm64/include/asm/kvm_host.h
+++ b/arch/arm64/include/asm/kvm_host.h
@@ -175,6 +175,8 @@ struct kvm_s2_mmu {
struct kvm_mmu_memory_cache split_page_cache;
uint64_t split_page_chunk_size;
+ bool hwdbm_enabled; /* KVM_CAP_ARM_HW_DBM enabled */
+
struct kvm_arch *arch;
};
diff --git a/arch/arm64/kvm/arm.c b/arch/arm64/kvm/arm.c
index fd2af63d788d..0dbf2cda40d7 100644
--- a/arch/arm64/kvm/arm.c
+++ b/arch/arm64/kvm/arm.c
@@ -115,6 +115,16 @@ int kvm_vm_ioctl_enable_cap(struct kvm *kvm,
}
mutex_unlock(&kvm->slots_lock);
break;
+ case KVM_CAP_ARM_HW_DBM:
+ mutex_lock(&kvm->slots_lock);
+ if (!system_supports_hw_dbm()) {
+ r = -EINVAL;
+ } else {
+ r = 0;
+ kvm->arch.mmu.hwdbm_enabled = true;
+ }
+ mutex_unlock(&kvm->slots_lock);
+ break;
default:
r = -EINVAL;
break;
@@ -316,6 +326,9 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)
case KVM_CAP_ARM_SUPPORTED_BLOCK_SIZES:
r = kvm_supported_block_sizes();
break;
+ case KVM_CAP_ARM_HW_DBM:
+ r = system_supports_hw_dbm();
+ break;
default:
r = 0;
}
diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h
index f089ab290978..99bd5c0420ba 100644
--- a/include/uapi/linux/kvm.h
+++ b/include/uapi/linux/kvm.h
@@ -1192,6 +1192,7 @@ struct kvm_ppc_resize_hpt {
#define KVM_CAP_COUNTER_OFFSET 227
#define KVM_CAP_ARM_EAGER_SPLIT_CHUNK_SIZE 228
#define KVM_CAP_ARM_SUPPORTED_BLOCK_SIZES 229
+#define KVM_CAP_ARM_HW_DBM 230
#ifdef KVM_CAP_IRQ_ROUTING
--
2.34.1
More information about the linux-arm-kernel
mailing list