[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20220916045135.154505-1-gshan@redhat.com>
Date: Fri, 16 Sep 2022 12:51:30 +0800
From: Gavin Shan <gshan@...hat.com>
To: kvmarm@...ts.cs.columbia.edu
Cc: kvm@...r.kernel.org, linux-doc@...r.kernel.org,
catalin.marinas@....com, linux-kselftest@...r.kernel.org,
bgardon@...gle.com, shuah@...nel.org, corbet@....net,
maz@...nel.org, drjones@...hat.com, will@...nel.org,
zhenyzha@...hat.com, dmatlack@...gle.com,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org,
pbonzini@...hat.com, peterx@...hat.com, oliver.upton@...ux.dev,
shan.gavin@...il.com
Subject: [PATCH v2 0/5] KVM: arm64: Enable ring-based dirty memory tracking
This series enables the ring-based dirty memory tracking for ARM64.
The feature has been available and enabled on x86 for a while. It
is beneficial when the number of dirty pages is small in a checkpointing
system or live migration scenario. More details can be found from
fb04a1eddb1a ("KVM: X86: Implement ring-based dirty memory tracking").
The generic part has been comprehensive, meaning there isn't too much
work, needed to extend it to ARM64.
- PATCH[1] introduces KVM_REQ_RING_SOFT_FULL for x86
- PATCH[2] enables the feature on ARM64
- PATCH[3-5] improves kvm/selftests/dirty_log_test
v1: https://lore.kernel.org/lkml/20220819005601.198436-1-gshan@redhat.com
Testing
=======
(1) kvm/selftests/dirty_log_test
(2) Live migration by QEMU
Changelog
=========
v2:
* Introduce KVM_REQ_RING_SOFT_FULL (Marc)
* Changelog improvement (Marc)
* Fix dirty_log_test without knowing host page size (Drew)
Gavin Shan (5):
KVM: x86: Introduce KVM_REQ_RING_SOFT_FULL
KVM: arm64: Enable ring-based dirty memory tracking
KVM: selftests: Use host page size to map ring buffer in
dirty_log_test
KVM: selftests: Clear dirty ring states between two modes in
dirty_log_test
KVM: selftests: Automate choosing dirty ring size in dirty_log_test
Documentation/virt/kvm/api.rst | 2 +-
arch/arm64/include/uapi/asm/kvm.h | 1 +
arch/arm64/kvm/Kconfig | 1 +
arch/arm64/kvm/arm.c | 8 +++
arch/x86/kvm/x86.c | 5 +-
include/linux/kvm_host.h | 1 +
tools/testing/selftests/kvm/dirty_log_test.c | 53 ++++++++++++++------
tools/testing/selftests/kvm/lib/kvm_util.c | 2 +-
virt/kvm/dirty_ring.c | 4 ++
9 files changed, 59 insertions(+), 18 deletions(-)
--
2.23.0
Powered by blists - more mailing lists