Message ID | 20210112214253.463999-1-bgardon@google.com (mailing list archive) |
---|---|
Headers | show |
Series | KVM: selftests: Perf test cleanups and memslot modification test | expand |
On 12/01/21 22:42, Ben Gardon wrote: > This series contains a few cleanups that didn't make it into previous > series, including some cosmetic changes and small bug fixes. The series > also lays the groundwork for a memslot modification test which stresses > the memslot update and page fault code paths in an attempt to expose races. > > Tested: dirty_log_perf_test, memslot_modification_stress_test, and > demand_paging_test were run, with all the patches in this series > applied, on an Intel Skylake machine. > > echo Y > /sys/module/kvm/parameters/tdp_mmu; \ > ./memslot_modification_stress_test -i 1000 -v 64 -b 1G; \ > ./memslot_modification_stress_test -i 1000 -v 64 -b 64M -o; \ > ./dirty_log_perf_test -v 64 -b 1G; \ > ./dirty_log_perf_test -v 64 -b 64M -o; \ > ./demand_paging_test -v 64 -b 1G; \ > ./demand_paging_test -v 64 -b 64M -o; \ > echo N > /sys/module/kvm/parameters/tdp_mmu; \ > ./memslot_modification_stress_test -i 1000 -v 64 -b 1G; \ > ./memslot_modification_stress_test -i 1000 -v 64 -b 64M -o; \ > ./dirty_log_perf_test -v 64 -b 1G; \ > ./dirty_log_perf_test -v 64 -b 64M -o; \ > ./demand_paging_test -v 64 -b 1G; \ > ./demand_paging_test -v 64 -b 64M -o > > The tests behaved as expected, and fixed the problem of the > population stage being skipped in dirty_log_perf_test. This can be > seen in the output, with the population stage taking about the time > dirty pass 1 took and dirty pass 1 falling closer to the times for > the other passes. > > Note that when running these tests, the -o option causes the test to take > much longer as the work each vCPU must do increases proportional to the > number of vCPUs. > > You can view this series in Gerrit at: > https://linux-review.googlesource.com/c/linux/kernel/git/torvalds/linux/+/7216 > > Ben Gardon (6): > KVM: selftests: Rename timespec_diff_now to timespec_elapsed > KVM: selftests: Avoid flooding debug log while populating memory > KVM: selftests: Convert iterations to int in dirty_log_perf_test > KVM: selftests: Fix population stage in dirty_log_perf_test > KVM: selftests: Add option to overlap vCPU memory access > KVM: selftests: Add memslot modification stress test > > tools/testing/selftests/kvm/.gitignore | 1 + > tools/testing/selftests/kvm/Makefile | 1 + > .../selftests/kvm/demand_paging_test.c | 40 +++- > .../selftests/kvm/dirty_log_perf_test.c | 72 +++--- > .../selftests/kvm/include/perf_test_util.h | 4 +- > .../testing/selftests/kvm/include/test_util.h | 2 +- > .../selftests/kvm/lib/perf_test_util.c | 25 ++- > tools/testing/selftests/kvm/lib/test_util.c | 2 +- > .../kvm/memslot_modification_stress_test.c | 211 ++++++++++++++++++ > 9 files changed, 307 insertions(+), 51 deletions(-) > create mode 100644 tools/testing/selftests/kvm/memslot_modification_stress_test.c > Queued, thanks. Paolo