mbox series

[0/5] Add a dirty logging performance test

Message ID 20201027233733.1484855-1-bgardon@google.com (mailing list archive)
Headers show
Series Add a dirty logging performance test | expand

Message

Ben Gardon Oct. 27, 2020, 11:37 p.m. UTC
Currently KVM lacks a simple, userspace agnostic, performance benchmark for
dirty logging. Such a benchmark will be beneficial for ensuring that dirty
logging performance does not regress, and to give a common baseline for
validating performance improvements. The dirty log perf test introduced in
this series builds on aspects of the existing demand paging perf test and
provides time-based performance metrics for enabling and disabling dirty
logging, getting the dirty log, and dirtying memory.

While the test currently only has a build target for x86, I expect it will
work on, or be easily modified to support other architectures.

Ben Gardon (5):
  KVM: selftests: Factor code out of demand_paging_test
  KVM: selftests: Remove address rounding in guest code
  KVM: selftests: Simplify demand_paging_test with timespec_diff_now
  KVM: selftests: Add wrfract to common guest code
  KVM: selftests: Introduce the dirty log perf test

 tools/testing/selftests/kvm/.gitignore        |   1 +
 tools/testing/selftests/kvm/Makefile          |   1 +
 .../selftests/kvm/demand_paging_test.c        | 230 ++---------
 .../selftests/kvm/dirty_log_perf_test.c       | 382 ++++++++++++++++++
 .../selftests/kvm/include/perf_test_util.h    | 192 +++++++++
 .../testing/selftests/kvm/include/test_util.h |   2 +
 tools/testing/selftests/kvm/lib/test_util.c   |  22 +-
 7 files changed, 635 insertions(+), 195 deletions(-)
 create mode 100644 tools/testing/selftests/kvm/dirty_log_perf_test.c
 create mode 100644 tools/testing/selftests/kvm/include/perf_test_util.h

Comments

Paolo Bonzini Nov. 6, 2020, 12:48 p.m. UTC | #1
On 28/10/20 00:37, Ben Gardon wrote:
> Currently KVM lacks a simple, userspace agnostic, performance benchmark for
> dirty logging. Such a benchmark will be beneficial for ensuring that dirty
> logging performance does not regress, and to give a common baseline for
> validating performance improvements. The dirty log perf test introduced in
> this series builds on aspects of the existing demand paging perf test and
> provides time-based performance metrics for enabling and disabling dirty
> logging, getting the dirty log, and dirtying memory.
> 
> While the test currently only has a build target for x86, I expect it will
> work on, or be easily modified to support other architectures.
> 
> Ben Gardon (5):
>    KVM: selftests: Factor code out of demand_paging_test
>    KVM: selftests: Remove address rounding in guest code
>    KVM: selftests: Simplify demand_paging_test with timespec_diff_now
>    KVM: selftests: Add wrfract to common guest code
>    KVM: selftests: Introduce the dirty log perf test
> 
>   tools/testing/selftests/kvm/.gitignore        |   1 +
>   tools/testing/selftests/kvm/Makefile          |   1 +
>   .../selftests/kvm/demand_paging_test.c        | 230 ++---------
>   .../selftests/kvm/dirty_log_perf_test.c       | 382 ++++++++++++++++++
>   .../selftests/kvm/include/perf_test_util.h    | 192 +++++++++
>   .../testing/selftests/kvm/include/test_util.h |   2 +
>   tools/testing/selftests/kvm/lib/test_util.c   |  22 +-
>   7 files changed, 635 insertions(+), 195 deletions(-)
>   create mode 100644 tools/testing/selftests/kvm/dirty_log_perf_test.c
>   create mode 100644 tools/testing/selftests/kvm/include/perf_test_util.h
> 

Queued, thanks.

Paolo
Andrew Jones Nov. 9, 2020, 9:21 a.m. UTC | #2
On Fri, Nov 06, 2020 at 01:48:29PM +0100, Paolo Bonzini wrote:
> On 28/10/20 00:37, Ben Gardon wrote:
> > Currently KVM lacks a simple, userspace agnostic, performance benchmark for
> > dirty logging. Such a benchmark will be beneficial for ensuring that dirty
> > logging performance does not regress, and to give a common baseline for
> > validating performance improvements. The dirty log perf test introduced in
> > this series builds on aspects of the existing demand paging perf test and
> > provides time-based performance metrics for enabling and disabling dirty
> > logging, getting the dirty log, and dirtying memory.
> > 
> > While the test currently only has a build target for x86, I expect it will
> > work on, or be easily modified to support other architectures.
> > 
> > Ben Gardon (5):
> >    KVM: selftests: Factor code out of demand_paging_test
> >    KVM: selftests: Remove address rounding in guest code
> >    KVM: selftests: Simplify demand_paging_test with timespec_diff_now
> >    KVM: selftests: Add wrfract to common guest code
> >    KVM: selftests: Introduce the dirty log perf test
> > 
> >   tools/testing/selftests/kvm/.gitignore        |   1 +
> >   tools/testing/selftests/kvm/Makefile          |   1 +
> >   .../selftests/kvm/demand_paging_test.c        | 230 ++---------
> >   .../selftests/kvm/dirty_log_perf_test.c       | 382 ++++++++++++++++++
> >   .../selftests/kvm/include/perf_test_util.h    | 192 +++++++++
> >   .../testing/selftests/kvm/include/test_util.h |   2 +
> >   tools/testing/selftests/kvm/lib/test_util.c   |  22 +-
> >   7 files changed, 635 insertions(+), 195 deletions(-)
> >   create mode 100644 tools/testing/selftests/kvm/dirty_log_perf_test.c
> >   create mode 100644 tools/testing/selftests/kvm/include/perf_test_util.h
> > 
> 
> Queued, thanks.

Why would you do that? Peter reviewed this, making several comments,
such as not to put non-inline functions in header files. Ben took the
time to respin the series, posting a v2. It makes no sense to pick up
v1 after they put in that additional effort.

drew