Re: [PATCH v8 13/14] KVM: selftests: Let dirty_log_test async for dirty ring test

From: Andrew Jones
Date: Wed Apr 01 2020 - 03:48:50 EST


On Tue, Mar 31, 2020 at 02:59:59PM -0400, Peter Xu wrote:
> Previously the dirty ring test was working in synchronous way, because
> only with a vmexit (with that it was the ring full event) we'll know
> the hardware dirty bits will be flushed to the dirty ring.
>
> With this patch we first introduced the vcpu kick mechanism by using
> SIGUSR1, meanwhile we can have a guarantee of vmexit and also the
> flushing of hardware dirty bits. With all these, we can keep the vcpu
> dirty work asynchronous of the whole collection procedure now. Still,
> we need to be very careful that we can only do it async if the vcpu is
> not reaching soft limit (no KVM_EXIT_DIRTY_RING_FULL). Otherwise we
> must collect the dirty bits before continuing the vcpu.
>
> Further increase the dirty ring size to current maximum to make sure
> we torture more on the no-ring-full case, which should be the major
> scenario when the hypervisors like QEMU would like to use this feature.
>
> Signed-off-by: Peter Xu <peterx@xxxxxxxxxx>
> ---
> tools/testing/selftests/kvm/dirty_log_test.c | 126 +++++++++++++-----
> .../testing/selftests/kvm/include/kvm_util.h | 1 +
> tools/testing/selftests/kvm/lib/kvm_util.c | 9 ++
> 3 files changed, 106 insertions(+), 30 deletions(-)
>

For the vcpu_kick and sem_wait stuff

Reviewed-by: Andrew Jones <drjones@xxxxxxxxxx>