[PATCH 0/4 V3] GDB Performance testing

Yao Qi
2013-10-16T07:10:40Z

Hi,
Here is the V3 of GDB performance testing. The changes in V3 can be
found in each patch, and they address all review comments.

The basic usages of performance testing are unchanged,

$ make check-perf
$ make check-perf RUNTESTFLAGS="--target_board=native-gdbserver solib.exp"
$ make check-perf RUNTESTFLAGS="solib.exp SOLIB_COUNT=512"

We can skip compilation step like,

$ make check-perf RUNTESTFLAGS='solib.exp GDB_PERFORMANCE=run'

or only compile test cases,

$ make check-perf RUNTESTFLAGS='solib.exp GDB_PERFORMANCE=compile'

in default, GDB_PERFORMANCE=both.

If the perf test case takes much time, we can specify timeout by
GDB_PERFORMANCE_TIMEOUT=1000.

$ make check-perf RUNTESTFLAGS="--target_board=native-gdbserver GDB_PERFORMANCE_TIMEOUT=4000 solib.exp"

Looks the perf test framework is in shape, so I add the patch to
testsuite/README to describe perf test.

The output in testsuite/perftest.log is like this:

solib_load cpu_time 32 0.05
solib_load cpu_time 64 0.13
solib_load cpu_time 128 0.36
solib_load cpu_time 256 1.16
solib_load cpu_time 512 4.93
solib_load wall_time 32 0.0982959270477
solib_load wall_time 64 0.261036157608
solib_load wall_time 128 0.848724126816
solib_load wall_time 256 3.21620082855
solib_load wall_time 512 15.2153270245
solib_load vmsize 32 94632
solib_load vmsize 64 94652
solib_load vmsize 128 94696
solib_load vmsize 256 94780
solib_load vmsize 512 110664
solib_unload cpu_time 32 0.03
solib_unload cpu_time 64 0.08
solib_unload cpu_time 128 0.22
solib_unload cpu_time 256 0.74
solib_unload cpu_time 512 2.64
solib_unload wall_time 32 0.0625808238983
solib_unload wall_time 64 0.183571815491
solib_unload wall_time 128 0.655772924423
solib_unload wall_time 256 2.67978000641
solib_unload wall_time 512 12.8180861473
solib_unload vmsize 32 109648
solib_unload vmsize 64 109648
solib_unload vmsize 128 109648
solib_unload vmsize 256 109648
solib_unload vmsize 512 110440

*** BLURB HERE ***

Yao Qi (4):
New make target 'check-perf' and new dir gdb.perf
Perf test framework
Mention perf test in testsuite/README
Test on solib load and unload

gdb/Makefile.in | 8 +
gdb/testsuite/Makefile.in | 4 +
gdb/testsuite/README | 27 ++++
gdb/testsuite/configure | 3 +-
gdb/testsuite/configure.ac | 2 +-
gdb/testsuite/gdb.perf/Makefile.in | 15 ++
gdb/testsuite/gdb.perf/lib/perftest/__init__.py | 17 +++
gdb/testsuite/gdb.perf/lib/perftest/measure.py | 146 ++++++++++++++++++++
gdb/testsuite/gdb.perf/lib/perftest/perftest.py | 72 ++++++++++
gdb/testsuite/gdb.perf/lib/perftest/reporter.py | 64 +++++++++
gdb/testsuite/gdb.perf/lib/perftest/testresult.py | 57 ++++++++
gdb/testsuite/gdb.perf/solib.c | 78 +++++++++++
gdb/testsuite/gdb.perf/solib.exp | 78 +++++++++++
gdb/testsuite/gdb.perf/solib.py | 73 ++++++++++
gdb/testsuite/lib/gdb.exp | 16 +++
gdb/testsuite/lib/perftest.exp | 148 +++++++++++++++++++++
16 files changed, 806 insertions(+), 2 deletions(-)
create mode 100644 gdb/testsuite/gdb.perf/Makefile.in
create mode 100644 gdb/testsuite/gdb.perf/lib/perftest/__init__.py
create mode 100644 gdb/testsuite/gdb.perf/lib/perftest/measure.py
create mode 100644 gdb/testsuite/gdb.perf/lib/perftest/perftest.py
create mode 100644 gdb/testsuite/gdb.perf/lib/perftest/reporter.py
create mode 100644 gdb/testsuite/gdb.perf/lib/perftest/testresult.py
create mode 100644 gdb/testsuite/gdb.perf/solib.c
create mode 100644 gdb/testsuite/gdb.perf/solib.exp
create mode 100644 gdb/testsuite/gdb.perf/solib.py
create mode 100644 gdb/testsuite/lib/perftest.exp

--
1.7.7.6