[v8,08/14] KVM: selftests: Always clear dirty bitmap after iteration
diff mbox series

Message ID 20200331190000.659614-9-peterx@redhat.com
State New
Headers show
Series
  • KVM: Dirty ring interface
Related show

Commit Message

Peter Xu March 31, 2020, 6:59 p.m. UTC
We don't clear the dirty bitmap before because KVM_GET_DIRTY_LOG will
clear it for us before copying the dirty log onto it.  However we'd
still better to clear it explicitly instead of assuming the kernel
will always do it for us.

More importantly, in the upcoming dirty ring tests we'll start to
fetch dirty pages from a ring buffer, so no one is going to clear the
dirty bitmap for us.

Signed-off-by: Peter Xu <peterx@redhat.com>
---
 tools/testing/selftests/kvm/dirty_log_test.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Andrew Jones April 1, 2020, 7:04 a.m. UTC | #1
On Tue, Mar 31, 2020 at 02:59:54PM -0400, Peter Xu wrote:
> We don't clear the dirty bitmap before because KVM_GET_DIRTY_LOG will
> clear it for us before copying the dirty log onto it.  However we'd
> still better to clear it explicitly instead of assuming the kernel
> will always do it for us.
> 
> More importantly, in the upcoming dirty ring tests we'll start to
> fetch dirty pages from a ring buffer, so no one is going to clear the
> dirty bitmap for us.
> 
> Signed-off-by: Peter Xu <peterx@redhat.com>
> ---
>  tools/testing/selftests/kvm/dirty_log_test.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tools/testing/selftests/kvm/dirty_log_test.c b/tools/testing/selftests/kvm/dirty_log_test.c
> index 752ec158ac59..6a8275a22861 100644
> --- a/tools/testing/selftests/kvm/dirty_log_test.c
> +++ b/tools/testing/selftests/kvm/dirty_log_test.c
> @@ -195,7 +195,7 @@ static void vm_dirty_log_verify(enum vm_guest_mode mode, unsigned long *bmap)
>  				    page);
>  		}
>  
> -		if (test_bit_le(page, bmap)) {
> +		if (test_and_clear_bit_le(page, bmap)) {
>  			host_dirty_count++;
>  			/*
>  			 * If the bit is set, the value written onto
> -- 
> 2.24.1
>

Reviewed-by: Andrew Jones <drjones@redhat.com>

Patch
diff mbox series

diff --git a/tools/testing/selftests/kvm/dirty_log_test.c b/tools/testing/selftests/kvm/dirty_log_test.c
index 752ec158ac59..6a8275a22861 100644
--- a/tools/testing/selftests/kvm/dirty_log_test.c
+++ b/tools/testing/selftests/kvm/dirty_log_test.c
@@ -195,7 +195,7 @@  static void vm_dirty_log_verify(enum vm_guest_mode mode, unsigned long *bmap)
 				    page);
 		}
 
-		if (test_bit_le(page, bmap)) {
+		if (test_and_clear_bit_le(page, bmap)) {
 			host_dirty_count++;
 			/*
 			 * If the bit is set, the value written onto