KVM: selftests: Allow dumping per-vcpu info for uffd threads
authorPeter Xu <peterx@redhat.com>
Thu, 27 Apr 2023 20:11:12 +0000 (16:11 -0400)
committerSean Christopherson <seanjc@google.com>
Wed, 31 May 2023 21:05:15 +0000 (14:05 -0700)
There's one PER_VCPU_DEBUG in per-vcpu uffd threads but it's never hit.

Trigger that when quit in normal ways (kick pollfd[1]), meanwhile fix the
number of nanosec calculation.

Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: James Houghton <jthoughton@google.com>
Link: https://lore.kernel.org/r/20230427201112.2164776-3-peterx@redhat.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
tools/testing/selftests/kvm/lib/userfaultfd_util.c

index 92cef20..271f638 100644 (file)
@@ -70,7 +70,7 @@ static void *uffd_handler_thread_fn(void *arg)
                        r = read(pollfd[1].fd, &tmp_chr, 1);
                        TEST_ASSERT(r == 1,
                                    "Error reading pipefd in UFFD thread\n");
-                       return NULL;
+                       break;
                }
 
                if (!(pollfd[0].revents & POLLIN))
@@ -103,7 +103,7 @@ static void *uffd_handler_thread_fn(void *arg)
        ts_diff = timespec_elapsed(start);
        PER_VCPU_DEBUG("userfaulted %ld pages over %ld.%.9lds. (%f/sec)\n",
                       pages, ts_diff.tv_sec, ts_diff.tv_nsec,
-                      pages / ((double)ts_diff.tv_sec + (double)ts_diff.tv_nsec / 100000000.0));
+                      pages / ((double)ts_diff.tv_sec + (double)ts_diff.tv_nsec / NSEC_PER_SEC));
 
        return NULL;
 }