* [PATCH v2 0/3] KVM: selftests: Small fixes for dirty_log_perf_test
@ 2021-09-17 17:36 David Matlack
2021-09-17 17:36 ` [PATCH v2 1/3] KVM: selftests: Change backing_src flag to -s in demand_paging_test David Matlack
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: David Matlack @ 2021-09-17 17:36 UTC (permalink / raw)
To: Paolo Bonzini
Cc: kvm, Andrew Jones, Ben Gardon, Axel Rasmussen, Yanan Wang, David Matlack
This series fixes 2 bugs in dirty_log_perf_test:
- Incorrect interleaving of help messages for -s and -x (patch 2)
- Buffer overflow when using multiple slots (patch 3)
Both bugs were introduced by commit 609e6202ea5f ("KVM: selftests:
Support multiple slots in dirty_log_perf_test").
Patch 1 is a small tangentially related cleanup to use a consistent
flag for the backing source across all selftests.
v2:
- Add Ben and Andrew's SOB to patches 1 and 2
- Delete stray newline in patch 2 [Andrew]
- Make print_available_backing_src_types static [Andrew]
- Create a separate dirty bitmap per slot [Andrew, Ben]
v1: https://lore.kernel.org/kvm/20210915213034.1613552-1-dmatlack@google.com/
David Matlack (3):
KVM: selftests: Change backing_src flag to -s in demand_paging_test
KVM: selftests: Refactor help message for -s backing_src
KVM: selftests: Create a separate dirty bitmap per slot
.../selftests/kvm/access_tracking_perf_test.c | 6 +-
.../selftests/kvm/demand_paging_test.c | 13 ++--
.../selftests/kvm/dirty_log_perf_test.c | 63 +++++++++++++------
.../testing/selftests/kvm/include/test_util.h | 4 +-
.../selftests/kvm/kvm_page_table_test.c | 7 +--
tools/testing/selftests/kvm/lib/test_util.c | 17 +++--
6 files changed, 69 insertions(+), 41 deletions(-)
--
2.33.0.464.g1972c5931b-goog
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v2 1/3] KVM: selftests: Change backing_src flag to -s in demand_paging_test
2021-09-17 17:36 [PATCH v2 0/3] KVM: selftests: Small fixes for dirty_log_perf_test David Matlack
@ 2021-09-17 17:36 ` David Matlack
2021-09-17 17:36 ` [PATCH v2 2/3] KVM: selftests: Refactor help message for -s backing_src David Matlack
` (2 subsequent siblings)
3 siblings, 0 replies; 6+ messages in thread
From: David Matlack @ 2021-09-17 17:36 UTC (permalink / raw)
To: Paolo Bonzini
Cc: kvm, Andrew Jones, Ben Gardon, Axel Rasmussen, Yanan Wang, David Matlack
Every other KVM selftest uses -s for the backing_src, so switch
demand_paging_test to match.
Reviewed-by: Ben Gardon <bgardon@google.com>
Reviewed-by: Andrew Jones <drjones@redhat.com>
Signed-off-by: David Matlack <dmatlack@google.com>
---
tools/testing/selftests/kvm/demand_paging_test.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/tools/testing/selftests/kvm/demand_paging_test.c b/tools/testing/selftests/kvm/demand_paging_test.c
index e79c1b64977f..735c081e774e 100644
--- a/tools/testing/selftests/kvm/demand_paging_test.c
+++ b/tools/testing/selftests/kvm/demand_paging_test.c
@@ -416,7 +416,7 @@ static void help(char *name)
{
puts("");
printf("usage: %s [-h] [-m vm_mode] [-u uffd_mode] [-d uffd_delay_usec]\n"
- " [-b memory] [-t type] [-v vcpus] [-o]\n", name);
+ " [-b memory] [-s type] [-v vcpus] [-o]\n", name);
guest_modes_help();
printf(" -u: use userfaultfd to handle vCPU page faults. Mode is a\n"
" UFFD registration mode: 'MISSING' or 'MINOR'.\n");
@@ -426,7 +426,7 @@ static void help(char *name)
printf(" -b: specify the size of the memory region which should be\n"
" demand paged by each vCPU. e.g. 10M or 3G.\n"
" Default: 1G\n");
- printf(" -t: The type of backing memory to use. Default: anonymous\n");
+ printf(" -s: The type of backing memory to use. Default: anonymous\n");
backing_src_help();
printf(" -v: specify the number of vCPUs to run.\n");
printf(" -o: Overlap guest memory accesses instead of partitioning\n"
@@ -446,7 +446,7 @@ int main(int argc, char *argv[])
guest_modes_append_default();
- while ((opt = getopt(argc, argv, "hm:u:d:b:t:v:o")) != -1) {
+ while ((opt = getopt(argc, argv, "hm:u:d:b:s:v:o")) != -1) {
switch (opt) {
case 'm':
guest_modes_cmdline(optarg);
@@ -465,7 +465,7 @@ int main(int argc, char *argv[])
case 'b':
guest_percpu_mem_size = parse_size(optarg);
break;
- case 't':
+ case 's':
p.src_type = parse_backing_src_type(optarg);
break;
case 'v':
@@ -485,7 +485,7 @@ int main(int argc, char *argv[])
if (p.uffd_mode == UFFDIO_REGISTER_MODE_MINOR &&
!backing_src_is_shared(p.src_type)) {
- TEST_FAIL("userfaultfd MINOR mode requires shared memory; pick a different -t");
+ TEST_FAIL("userfaultfd MINOR mode requires shared memory; pick a different -s");
}
for_each_guest_mode(run_test, &p);
--
2.33.0.464.g1972c5931b-goog
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v2 2/3] KVM: selftests: Refactor help message for -s backing_src
2021-09-17 17:36 [PATCH v2 0/3] KVM: selftests: Small fixes for dirty_log_perf_test David Matlack
2021-09-17 17:36 ` [PATCH v2 1/3] KVM: selftests: Change backing_src flag to -s in demand_paging_test David Matlack
@ 2021-09-17 17:36 ` David Matlack
2021-09-17 17:36 ` [PATCH v2 3/3] KVM: selftests: Create a separate dirty bitmap per slot David Matlack
2021-09-22 13:10 ` [PATCH v2 0/3] KVM: selftests: Small fixes for dirty_log_perf_test Paolo Bonzini
3 siblings, 0 replies; 6+ messages in thread
From: David Matlack @ 2021-09-17 17:36 UTC (permalink / raw)
To: Paolo Bonzini
Cc: kvm, Andrew Jones, Ben Gardon, Axel Rasmussen, Yanan Wang, David Matlack
All selftests that support the backing_src option were printing their
own description of the flag and then calling backing_src_help() to dump
the list of available backing sources. Consolidate the flag printing in
backing_src_help() to align indentation, reduce duplicated strings, and
improve consistency across tests.
Note: Passing "-s" to backing_src_help is unnecessary since every test
uses the same flag. However I decided to keep it for code readability
at the call sites.
While here this opportunistically fixes the incorrectly interleaved
printing -x help message and list of backing source types in
dirty_log_perf_test.
Fixes: 609e6202ea5f ("KVM: selftests: Support multiple slots in dirty_log_perf_test")
Reviewed-by: Ben Gardon <bgardon@google.com>
Reviewed-by: Andrew Jones <drjones@redhat.com>
Signed-off-by: David Matlack <dmatlack@google.com>
---
.../selftests/kvm/access_tracking_perf_test.c | 6 ++----
.../testing/selftests/kvm/demand_paging_test.c | 5 ++---
.../testing/selftests/kvm/dirty_log_perf_test.c | 8 +++-----
tools/testing/selftests/kvm/include/test_util.h | 4 +++-
.../testing/selftests/kvm/kvm_page_table_test.c | 7 ++-----
tools/testing/selftests/kvm/lib/test_util.c | 17 +++++++++++++----
6 files changed, 25 insertions(+), 22 deletions(-)
diff --git a/tools/testing/selftests/kvm/access_tracking_perf_test.c b/tools/testing/selftests/kvm/access_tracking_perf_test.c
index 71e277c7c3f3..5d95113c7b7c 100644
--- a/tools/testing/selftests/kvm/access_tracking_perf_test.c
+++ b/tools/testing/selftests/kvm/access_tracking_perf_test.c
@@ -371,9 +371,7 @@ static void help(char *name)
printf(" -v: specify the number of vCPUs to run.\n");
printf(" -o: Overlap guest memory accesses instead of partitioning\n"
" them into a separate region of memory for each vCPU.\n");
- printf(" -s: specify the type of memory that should be used to\n"
- " back the guest data region.\n\n");
- backing_src_help();
+ backing_src_help("-s");
puts("");
exit(0);
}
@@ -381,7 +379,7 @@ static void help(char *name)
int main(int argc, char *argv[])
{
struct test_params params = {
- .backing_src = VM_MEM_SRC_ANONYMOUS,
+ .backing_src = DEFAULT_VM_MEM_SRC,
.vcpu_memory_bytes = DEFAULT_PER_VCPU_MEM_SIZE,
.vcpus = 1,
};
diff --git a/tools/testing/selftests/kvm/demand_paging_test.c b/tools/testing/selftests/kvm/demand_paging_test.c
index 735c081e774e..96cd3e0357f6 100644
--- a/tools/testing/selftests/kvm/demand_paging_test.c
+++ b/tools/testing/selftests/kvm/demand_paging_test.c
@@ -426,8 +426,7 @@ static void help(char *name)
printf(" -b: specify the size of the memory region which should be\n"
" demand paged by each vCPU. e.g. 10M or 3G.\n"
" Default: 1G\n");
- printf(" -s: The type of backing memory to use. Default: anonymous\n");
- backing_src_help();
+ backing_src_help("-s");
printf(" -v: specify the number of vCPUs to run.\n");
printf(" -o: Overlap guest memory accesses instead of partitioning\n"
" them into a separate region of memory for each vCPU.\n");
@@ -439,7 +438,7 @@ int main(int argc, char *argv[])
{
int max_vcpus = kvm_check_cap(KVM_CAP_MAX_VCPUS);
struct test_params p = {
- .src_type = VM_MEM_SRC_ANONYMOUS,
+ .src_type = DEFAULT_VM_MEM_SRC,
.partition_vcpu_memory_access = true,
};
int opt;
diff --git a/tools/testing/selftests/kvm/dirty_log_perf_test.c b/tools/testing/selftests/kvm/dirty_log_perf_test.c
index 3c30d0045d8d..5ad9f2bc7369 100644
--- a/tools/testing/selftests/kvm/dirty_log_perf_test.c
+++ b/tools/testing/selftests/kvm/dirty_log_perf_test.c
@@ -308,11 +308,9 @@ static void help(char *name)
printf(" -v: specify the number of vCPUs to run.\n");
printf(" -o: Overlap guest memory accesses instead of partitioning\n"
" them into a separate region of memory for each vCPU.\n");
- printf(" -s: specify the type of memory that should be used to\n"
- " back the guest data region.\n\n");
+ backing_src_help("-s");
printf(" -x: Split the memory region into this number of memslots.\n"
- " (default: 1)");
- backing_src_help();
+ " (default: 1)\n");
puts("");
exit(0);
}
@@ -324,7 +322,7 @@ int main(int argc, char *argv[])
.iterations = TEST_HOST_LOOP_N,
.wr_fract = 1,
.partition_vcpu_memory_access = true,
- .backing_src = VM_MEM_SRC_ANONYMOUS,
+ .backing_src = DEFAULT_VM_MEM_SRC,
.slots = 1,
};
int opt;
diff --git a/tools/testing/selftests/kvm/include/test_util.h b/tools/testing/selftests/kvm/include/test_util.h
index d79be15dd3d2..4fa1db32c05e 100644
--- a/tools/testing/selftests/kvm/include/test_util.h
+++ b/tools/testing/selftests/kvm/include/test_util.h
@@ -90,6 +90,8 @@ enum vm_mem_backing_src_type {
NUM_SRC_TYPES,
};
+#define DEFAULT_VM_MEM_SRC VM_MEM_SRC_ANONYMOUS
+
struct vm_mem_backing_src_alias {
const char *name;
uint32_t flag;
@@ -100,7 +102,7 @@ size_t get_trans_hugepagesz(void);
size_t get_def_hugetlb_pagesz(void);
const struct vm_mem_backing_src_alias *vm_mem_backing_src_alias(uint32_t i);
size_t get_backing_src_pagesz(uint32_t i);
-void backing_src_help(void);
+void backing_src_help(const char *flag);
enum vm_mem_backing_src_type parse_backing_src_type(const char *type_name);
/*
diff --git a/tools/testing/selftests/kvm/kvm_page_table_test.c b/tools/testing/selftests/kvm/kvm_page_table_test.c
index 0d04a7db7f24..36407cb0ec85 100644
--- a/tools/testing/selftests/kvm/kvm_page_table_test.c
+++ b/tools/testing/selftests/kvm/kvm_page_table_test.c
@@ -456,10 +456,7 @@ static void help(char *name)
" (default: 1G)\n");
printf(" -v: specify the number of vCPUs to run\n"
" (default: 1)\n");
- printf(" -s: specify the type of memory that should be used to\n"
- " back the guest data region.\n"
- " (default: anonymous)\n\n");
- backing_src_help();
+ backing_src_help("-s");
puts("");
}
@@ -468,7 +465,7 @@ int main(int argc, char *argv[])
int max_vcpus = kvm_check_cap(KVM_CAP_MAX_VCPUS);
struct test_params p = {
.test_mem_size = DEFAULT_TEST_MEM_SIZE,
- .src_type = VM_MEM_SRC_ANONYMOUS,
+ .src_type = DEFAULT_VM_MEM_SRC,
};
int opt;
diff --git a/tools/testing/selftests/kvm/lib/test_util.c b/tools/testing/selftests/kvm/lib/test_util.c
index af1031fed97f..e487f798e095 100644
--- a/tools/testing/selftests/kvm/lib/test_util.c
+++ b/tools/testing/selftests/kvm/lib/test_util.c
@@ -279,13 +279,22 @@ size_t get_backing_src_pagesz(uint32_t i)
}
}
-void backing_src_help(void)
+static void print_available_backing_src_types(const char *prefix)
{
int i;
- printf("Available backing src types:\n");
+ printf("%sAvailable backing src types:\n", prefix);
+
for (i = 0; i < NUM_SRC_TYPES; i++)
- printf("\t%s\n", vm_mem_backing_src_alias(i)->name);
+ printf("%s %s\n", prefix, vm_mem_backing_src_alias(i)->name);
+}
+
+void backing_src_help(const char *flag)
+{
+ printf(" %s: specify the type of memory that should be used to\n"
+ " back the guest data region. (default: %s)\n",
+ flag, vm_mem_backing_src_alias(DEFAULT_VM_MEM_SRC)->name);
+ print_available_backing_src_types(" ");
}
enum vm_mem_backing_src_type parse_backing_src_type(const char *type_name)
@@ -296,7 +305,7 @@ enum vm_mem_backing_src_type parse_backing_src_type(const char *type_name)
if (!strcmp(type_name, vm_mem_backing_src_alias(i)->name))
return i;
- backing_src_help();
+ print_available_backing_src_types("");
TEST_FAIL("Unknown backing src type: %s", type_name);
return -1;
}
--
2.33.0.464.g1972c5931b-goog
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v2 3/3] KVM: selftests: Create a separate dirty bitmap per slot
2021-09-17 17:36 [PATCH v2 0/3] KVM: selftests: Small fixes for dirty_log_perf_test David Matlack
2021-09-17 17:36 ` [PATCH v2 1/3] KVM: selftests: Change backing_src flag to -s in demand_paging_test David Matlack
2021-09-17 17:36 ` [PATCH v2 2/3] KVM: selftests: Refactor help message for -s backing_src David Matlack
@ 2021-09-17 17:36 ` David Matlack
2021-09-20 12:05 ` Andrew Jones
2021-09-22 13:10 ` [PATCH v2 0/3] KVM: selftests: Small fixes for dirty_log_perf_test Paolo Bonzini
3 siblings, 1 reply; 6+ messages in thread
From: David Matlack @ 2021-09-17 17:36 UTC (permalink / raw)
To: Paolo Bonzini
Cc: kvm, Andrew Jones, Ben Gardon, Axel Rasmussen, Yanan Wang, David Matlack
The calculation to get the per-slot dirty bitmap was incorrect leading
to a buffer overrun. Fix it by splitting out the dirty bitmap into a
separate bitmap per slot.
Fixes: 609e6202ea5f ("KVM: selftests: Support multiple slots in dirty_log_perf_test")
Signed-off-by: David Matlack <dmatlack@google.com>
---
.../selftests/kvm/dirty_log_perf_test.c | 54 +++++++++++++------
1 file changed, 39 insertions(+), 15 deletions(-)
diff --git a/tools/testing/selftests/kvm/dirty_log_perf_test.c b/tools/testing/selftests/kvm/dirty_log_perf_test.c
index 5ad9f2bc7369..c981f93e2043 100644
--- a/tools/testing/selftests/kvm/dirty_log_perf_test.c
+++ b/tools/testing/selftests/kvm/dirty_log_perf_test.c
@@ -118,42 +118,64 @@ static inline void disable_dirty_logging(struct kvm_vm *vm, int slots)
toggle_dirty_logging(vm, slots, false);
}
-static void get_dirty_log(struct kvm_vm *vm, int slots, unsigned long *bitmap,
- uint64_t nr_pages)
+static void get_dirty_log(struct kvm_vm *vm, unsigned long *bitmaps[], int slots)
{
- uint64_t slot_pages = nr_pages / slots;
int i;
for (i = 0; i < slots; i++) {
int slot = PERF_TEST_MEM_SLOT_INDEX + i;
- unsigned long *slot_bitmap = bitmap + i * slot_pages;
- kvm_vm_get_dirty_log(vm, slot, slot_bitmap);
+ kvm_vm_get_dirty_log(vm, slot, bitmaps[i]);
}
}
-static void clear_dirty_log(struct kvm_vm *vm, int slots, unsigned long *bitmap,
- uint64_t nr_pages)
+static void clear_dirty_log(struct kvm_vm *vm, unsigned long *bitmaps[],
+ int slots, uint64_t pages_per_slot)
{
- uint64_t slot_pages = nr_pages / slots;
int i;
for (i = 0; i < slots; i++) {
int slot = PERF_TEST_MEM_SLOT_INDEX + i;
- unsigned long *slot_bitmap = bitmap + i * slot_pages;
- kvm_vm_clear_dirty_log(vm, slot, slot_bitmap, 0, slot_pages);
+ kvm_vm_clear_dirty_log(vm, slot, bitmaps[i], 0, pages_per_slot);
}
}
+static unsigned long **alloc_bitmaps(int slots, uint64_t pages_per_slot)
+{
+ unsigned long **bitmaps;
+ int i;
+
+ bitmaps = malloc(slots * sizeof(bitmaps[0]));
+ TEST_ASSERT(bitmaps, "Failed to allocate bitmaps array.");
+
+ for (i = 0; i < slots; i++) {
+ bitmaps[i] = bitmap_alloc(pages_per_slot);
+ TEST_ASSERT(bitmaps[i], "Failed to allocate slot bitmap.");
+ }
+
+ return bitmaps;
+}
+
+static void free_bitmaps(unsigned long *bitmaps[], int slots)
+{
+ int i;
+
+ for (i = 0; i < slots; i++)
+ free(bitmaps[i]);
+
+ free(bitmaps);
+}
+
static void run_test(enum vm_guest_mode mode, void *arg)
{
struct test_params *p = arg;
pthread_t *vcpu_threads;
struct kvm_vm *vm;
- unsigned long *bmap;
+ unsigned long **bitmaps;
uint64_t guest_num_pages;
uint64_t host_num_pages;
+ uint64_t pages_per_slot;
int vcpu_id;
struct timespec start;
struct timespec ts_diff;
@@ -171,7 +193,9 @@ static void run_test(enum vm_guest_mode mode, void *arg)
guest_num_pages = (nr_vcpus * guest_percpu_mem_size) >> vm_get_page_shift(vm);
guest_num_pages = vm_adjust_num_guest_pages(mode, guest_num_pages);
host_num_pages = vm_num_host_pages(mode, guest_num_pages);
- bmap = bitmap_alloc(host_num_pages);
+ pages_per_slot = host_num_pages / p->slots;
+
+ bitmaps = alloc_bitmaps(p->slots, pages_per_slot);
if (dirty_log_manual_caps) {
cap.cap = KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2;
@@ -239,7 +263,7 @@ static void run_test(enum vm_guest_mode mode, void *arg)
iteration, ts_diff.tv_sec, ts_diff.tv_nsec);
clock_gettime(CLOCK_MONOTONIC, &start);
- get_dirty_log(vm, p->slots, bmap, host_num_pages);
+ get_dirty_log(vm, bitmaps, p->slots);
ts_diff = timespec_elapsed(start);
get_dirty_log_total = timespec_add(get_dirty_log_total,
ts_diff);
@@ -248,7 +272,7 @@ static void run_test(enum vm_guest_mode mode, void *arg)
if (dirty_log_manual_caps) {
clock_gettime(CLOCK_MONOTONIC, &start);
- clear_dirty_log(vm, p->slots, bmap, host_num_pages);
+ clear_dirty_log(vm, bitmaps, p->slots, pages_per_slot);
ts_diff = timespec_elapsed(start);
clear_dirty_log_total = timespec_add(clear_dirty_log_total,
ts_diff);
@@ -281,7 +305,7 @@ static void run_test(enum vm_guest_mode mode, void *arg)
clear_dirty_log_total.tv_nsec, avg.tv_sec, avg.tv_nsec);
}
- free(bmap);
+ free_bitmaps(bitmaps, p->slots);
free(vcpu_threads);
perf_test_destroy_vm(vm);
}
--
2.33.0.464.g1972c5931b-goog
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v2 3/3] KVM: selftests: Create a separate dirty bitmap per slot
2021-09-17 17:36 ` [PATCH v2 3/3] KVM: selftests: Create a separate dirty bitmap per slot David Matlack
@ 2021-09-20 12:05 ` Andrew Jones
0 siblings, 0 replies; 6+ messages in thread
From: Andrew Jones @ 2021-09-20 12:05 UTC (permalink / raw)
To: David Matlack; +Cc: Paolo Bonzini, kvm, Ben Gardon, Axel Rasmussen, Yanan Wang
On Fri, Sep 17, 2021 at 05:36:57PM +0000, David Matlack wrote:
> The calculation to get the per-slot dirty bitmap was incorrect leading
> to a buffer overrun. Fix it by splitting out the dirty bitmap into a
> separate bitmap per slot.
>
> Fixes: 609e6202ea5f ("KVM: selftests: Support multiple slots in dirty_log_perf_test")
> Signed-off-by: David Matlack <dmatlack@google.com>
> ---
> .../selftests/kvm/dirty_log_perf_test.c | 54 +++++++++++++------
> 1 file changed, 39 insertions(+), 15 deletions(-)
>
Reviewed-by: Andrew Jones <drjones@redhat.com>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 0/3] KVM: selftests: Small fixes for dirty_log_perf_test
2021-09-17 17:36 [PATCH v2 0/3] KVM: selftests: Small fixes for dirty_log_perf_test David Matlack
` (2 preceding siblings ...)
2021-09-17 17:36 ` [PATCH v2 3/3] KVM: selftests: Create a separate dirty bitmap per slot David Matlack
@ 2021-09-22 13:10 ` Paolo Bonzini
3 siblings, 0 replies; 6+ messages in thread
From: Paolo Bonzini @ 2021-09-22 13:10 UTC (permalink / raw)
To: David Matlack; +Cc: kvm, Andrew Jones, Ben Gardon, Axel Rasmussen, Yanan Wang
On 17/09/21 19:36, David Matlack wrote:
> This series fixes 2 bugs in dirty_log_perf_test:
> - Incorrect interleaving of help messages for -s and -x (patch 2)
> - Buffer overflow when using multiple slots (patch 3)
>
> Both bugs were introduced by commit 609e6202ea5f ("KVM: selftests:
> Support multiple slots in dirty_log_perf_test").
>
> Patch 1 is a small tangentially related cleanup to use a consistent
> flag for the backing source across all selftests.
>
> v2:
> - Add Ben and Andrew's SOB to patches 1 and 2
> - Delete stray newline in patch 2 [Andrew]
> - Make print_available_backing_src_types static [Andrew]
> - Create a separate dirty bitmap per slot [Andrew, Ben]
>
> v1: https://lore.kernel.org/kvm/20210915213034.1613552-1-dmatlack@google.com/
>
> David Matlack (3):
> KVM: selftests: Change backing_src flag to -s in demand_paging_test
> KVM: selftests: Refactor help message for -s backing_src
> KVM: selftests: Create a separate dirty bitmap per slot
>
> .../selftests/kvm/access_tracking_perf_test.c | 6 +-
> .../selftests/kvm/demand_paging_test.c | 13 ++--
> .../selftests/kvm/dirty_log_perf_test.c | 63 +++++++++++++------
> .../testing/selftests/kvm/include/test_util.h | 4 +-
> .../selftests/kvm/kvm_page_table_test.c | 7 +--
> tools/testing/selftests/kvm/lib/test_util.c | 17 +++--
> 6 files changed, 69 insertions(+), 41 deletions(-)
>
Queued these now, thanks.
Paolo
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2021-09-22 13:10 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-17 17:36 [PATCH v2 0/3] KVM: selftests: Small fixes for dirty_log_perf_test David Matlack
2021-09-17 17:36 ` [PATCH v2 1/3] KVM: selftests: Change backing_src flag to -s in demand_paging_test David Matlack
2021-09-17 17:36 ` [PATCH v2 2/3] KVM: selftests: Refactor help message for -s backing_src David Matlack
2021-09-17 17:36 ` [PATCH v2 3/3] KVM: selftests: Create a separate dirty bitmap per slot David Matlack
2021-09-20 12:05 ` Andrew Jones
2021-09-22 13:10 ` [PATCH v2 0/3] KVM: selftests: Small fixes for dirty_log_perf_test Paolo Bonzini
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).