[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20251121092342.3393318-1-zhengtian10@huawei.com>
Date: Fri, 21 Nov 2025 17:23:37 +0800
From: Tian Zheng <zhengtian10@...wei.com>
To: <maz@...nel.org>, <oliver.upton@...ux.dev>, <catalin.marinas@....com>,
<corbet@....net>, <pbonzini@...hat.com>, <will@...nel.org>
CC: <linux-kernel@...r.kernel.org>, <zhengtian10@...wei.com>,
<yuzenghui@...wei.com>, <wangzhou1@...ilicon.com>, <yezhenyu2@...wei.com>,
<xiexiangyou@...wei.com>, <zhengchuan@...wei.com>, <linuxarm@...wei.com>,
<joey.gouly@....com>, <kvmarm@...ts.linux.dev>, <kvm@...r.kernel.org>,
<linux-arm-kernel@...ts.infradead.org>, <linux-doc@...r.kernel.org>,
<suzuki.poulose@....com>
Subject: [PATCH v2 0/5] Support the FEAT_HDBSS introduced in Armv9.5
This series of patches add support to the Hardware Dirty state tracking
Structure(HDBSS) feature, which is introduced by the ARM architecture
in the DDI0601(ID121123) version.
The HDBSS feature is an extension to the architecture that enhances
tracking translation table descriptors' dirty state, identified as
FEAT_HDBSS. The goal of this feature is to reduce the cost of surveying
for dirtied granules, with minimal effect on recording when a granule
has been dirtied.
The purpose of this feature is to make the execution overhead of live
migration lower to both the guest and the host, compared to existing
approaches (write-protect or search stage 2 tables).
After these patches, users(such as qemu) can use the
KVM_CAP_ARM_HW_DIRTY_STATE_TRACK ioctl to enable or disable the HDBSS
feature before and after the live migration.
This feature is similar to Intel's Page Modification Logging (PML),
offering hardware-assisted dirty tracking to reduce live migration
overhead. With PML support expanding beyond Intel, HDBSS introduces a
comparable mechanism for ARM.
eillon (4):
arm64/sysreg: Add HDBSS related register information
KVM: arm64: Support set the DBM attr during memory abort
KVM: arm64: Add support for FEAT_HDBSS
KVM: arm64: Enable HDBSS support and handle HDBSSF events
Tian Zheng (1):
KVM: arm64: Document HDBSS ioctl
Documentation/virt/kvm/api.rst | 15 ++++
arch/arm64/Kconfig | 14 ++++
arch/arm64/include/asm/cpucaps.h | 2 +
arch/arm64/include/asm/cpufeature.h | 5 ++
arch/arm64/include/asm/esr.h | 2 +
arch/arm64/include/asm/kvm_arm.h | 1 +
arch/arm64/include/asm/kvm_host.h | 14 ++++
arch/arm64/include/asm/kvm_mmu.h | 17 +++++
arch/arm64/include/asm/kvm_pgtable.h | 4 +
arch/arm64/include/asm/sysreg.h | 12 +++
arch/arm64/kernel/cpufeature.c | 9 +++
arch/arm64/kvm/arm.c | 107 +++++++++++++++++++++++++++
arch/arm64/kvm/handle_exit.c | 45 +++++++++++
arch/arm64/kvm/hyp/pgtable.c | 6 ++
arch/arm64/kvm/hyp/vhe/switch.c | 1 +
arch/arm64/kvm/mmu.c | 10 +++
arch/arm64/kvm/reset.c | 3 +
arch/arm64/tools/cpucaps | 1 +
arch/arm64/tools/sysreg | 28 +++++++
include/linux/kvm_host.h | 1 +
include/uapi/linux/kvm.h | 1 +
tools/include/uapi/linux/kvm.h | 1 +
22 files changed, 299 insertions(+)
--
2.33.0
Powered by blists - more mailing lists