aboutsummaryrefslogtreecommitdiffstats
path: root/tools/testing/selftests/kvm/lib/test_util.c
diff options
context:
space:
mode:
authorBen Gardon <bgardon@google.com>2020-10-27 16:37:31 -0700
committerPaolo Bonzini <pbonzini@redhat.com>2020-11-08 06:03:35 -0500
commit1eafbd27edb5098ed6b6bc404c35d56c78beb0fd (patch)
tree804b63c25ed3a5b3244750bc4b9a6231144b17a9 /tools/testing/selftests/kvm/lib/test_util.c
parentKVM: selftests: Remove address rounding in guest code (diff)
downloadlinux-dev-1eafbd27edb5098ed6b6bc404c35d56c78beb0fd.tar.xz
linux-dev-1eafbd27edb5098ed6b6bc404c35d56c78beb0fd.zip
KVM: selftests: Simplify demand_paging_test with timespec_diff_now
Add a helper function to get the current time and return the time since a given start time. Use that function to simplify the timekeeping in the demand paging test. This series was tested by running the following invocations on an Intel Skylake machine: dirty_log_perf_test -b 20m -i 100 -v 64 dirty_log_perf_test -b 20g -i 5 -v 4 dirty_log_perf_test -b 4g -i 5 -v 32 demand_paging_test -b 20m -v 64 demand_paging_test -b 20g -v 4 demand_paging_test -b 4g -v 32 All behaved as expected. Signed-off-by: Ben Gardon <bgardon@google.com> Message-Id: <20201027233733.1484855-4-bgardon@google.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'tools/testing/selftests/kvm/lib/test_util.c')
-rw-r--r--tools/testing/selftests/kvm/lib/test_util.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/tools/testing/selftests/kvm/lib/test_util.c b/tools/testing/selftests/kvm/lib/test_util.c
index 689e97c27ee2..1a46c2c48c7c 100644
--- a/tools/testing/selftests/kvm/lib/test_util.c
+++ b/tools/testing/selftests/kvm/lib/test_util.c
@@ -4,10 +4,13 @@
*
* Copyright (C) 2020, Google LLC.
*/
-#include <stdlib.h>
+
+#include <assert.h>
#include <ctype.h>
#include <limits.h>
-#include <assert.h>
+#include <stdlib.h>
+#include <time.h>
+
#include "test_util.h"
/*
@@ -81,6 +84,14 @@ struct timespec timespec_sub(struct timespec ts1, struct timespec ts2)
return timespec_add_ns((struct timespec){0}, ns1 - ns2);
}
+struct timespec timespec_diff_now(struct timespec start)
+{
+ struct timespec end;
+
+ clock_gettime(CLOCK_MONOTONIC, &end);
+ return timespec_sub(end, start);
+}
+
void print_skip(const char *fmt, ...)
{
va_list ap;