mbox series

[v1,0/5] KVM: arm64: Enable ring-based dirty memory tracking

Message ID 20220819005601.198436-1-gshan@redhat.com
Headers show
Series KVM: arm64: Enable ring-based dirty memory tracking | expand

Message

Gavin Shan Aug. 19, 2022, 12:55 a.m. UTC
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 enough, meaning there isn't too
much work, needed to extend it to ARM64. 

- PATCH[1]   enables the feature on ARM64
- PATCH[2-5] improves kvm/selftests/dirty_log_test

Testing
=======

- kvm/selftests/dirty_log_test
- Live migration by QEMU
- Host with 4KB or 64KB base page size

Gavin Shan (5):
  KVM: arm64: Enable ring-based dirty memory tracking
  KVM: selftests: Use host page size to map ring buffer in
    dirty_log_test
  KVM: selftests: Dirty host pages 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 ++
 tools/testing/selftests/kvm/dirty_log_test.c | 101 ++++++++++++++-----
 tools/testing/selftests/kvm/lib/kvm_util.c   |   2 +-
 6 files changed, 88 insertions(+), 27 deletions(-)