This is v4 of the dirty quota series, with the following changes over v3: i) Changes in documentation based on the feedback received. ii) Handling some corner cases, e.g. adding dirty quota check in VMX's big emulation loop for invalid guest state when unrestricted guest is disabled. iii) Moving the s390x and arm64 changes to separate commits. v1: https://lore.kernel.org/kvm/20211114145721.209219-1-shivam.kumar1@xxxxxxxxxxx/ v2: https://lore.kernel.org/kvm/Ydx2EW6U3fpJoJF0@xxxxxxxxxx/T/ v3: https://lore.kernel.org/kvm/YkT1kzWidaRFdQQh@xxxxxxxxxx/T/ Shivam Kumar (4): KVM: Implement dirty quota-based throttling of vcpus KVM: arm64: Dirty quota-based throttling of vcpus KVM: s390x: Dirty quota-based throttling of vcpus KVM: selftests: Add selftests for dirty quota throttling Documentation/virt/kvm/api.rst | 32 ++++++++++++++++ arch/arm64/kvm/arm.c | 3 ++ arch/s390/kvm/kvm-s390.c | 3 ++ arch/x86/kvm/mmu/spte.c | 4 +- arch/x86/kvm/vmx/vmx.c | 3 ++ arch/x86/kvm/x86.c | 4 ++ include/linux/kvm_host.h | 15 ++++++++ include/linux/kvm_types.h | 1 + include/uapi/linux/kvm.h | 12 ++++++ tools/testing/selftests/kvm/dirty_log_test.c | 37 +++++++++++++++++-- .../selftests/kvm/include/kvm_util_base.h | 4 ++ tools/testing/selftests/kvm/lib/kvm_util.c | 36 ++++++++++++++++++ virt/kvm/kvm_main.c | 7 +++- 13 files changed, 154 insertions(+), 7 deletions(-) -- 2.22.3