fstests: add fio perf results support
authorJosef Bacik <jbacik@fb.com>
Tue, 7 Nov 2017 21:53:32 +0000 (16:53 -0500)
committerEryu Guan <eguan@redhat.com>
Sun, 26 Nov 2017 07:37:22 +0000 (15:37 +0800)
commitc134a345f79e13a6c1ec2f273e2c9565d1641508
tree23ccc0f3821b277f7e0163f7056552743df6bd96
parent30daf6bd5fa68a265e1e8618e3c8909b812eb3ce
fstests: add fio perf results support

This patch does the nuts and bolts of grabbing fio results and
storing them in a database in order to check against for future
runs.  This works by storing the results in resuts/fio-results.db as
a sqlite database.  The src/perf directory has all the supporting
python code for parsing the fio json results, storing it in the
database, and loading previous results from the database to compare
with the current results.

This also adds a PERF_CONFIGNAME option that must be set for this to
work.  Since we all have various ways we run fstests it doesn't make
sense to compare different configurations with each other (unless
specifically desired).  The PERF_CONFIGNAME will allow us to
separate out results for different test run configurations to make
sure we're comparing results correctly.

Currently we only check against the last perf result.  In the future
I will flesh this out to compare against the average of N number of
runs to be a little more complete, and hopefully that will allow us
to also watch latencies as well.

[eguan: add required Makefile updates]

Signed-off-by: Josef Bacik <jbacik@fb.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
13 files changed:
.gitignore
README
common/config
common/perf [new file with mode: 0644]
doc/requirement-checking.txt
src/Makefile
src/perf/FioCompare.py [new file with mode: 0644]
src/perf/FioResultDecoder.py [new file with mode: 0644]
src/perf/Makefile [new file with mode: 0644]
src/perf/ResultData.py [new file with mode: 0644]
src/perf/fio-insert-and-compare.py [new file with mode: 0644]
src/perf/fio-results.sql [new file with mode: 0644]
src/perf/generate-schema.py [new file with mode: 0644]