[PATCH v2 0/9] virt: introduce new subtest: performance.py & ffsb regression improvement

v1: https://github.com/autotest/autotest/pull/378 (based on master)
This pull request is based on upstream/next.

@lmr I just updated my branch 'for-lrm' with latest code (v2), Thanks for your time.

Changes from V1:
- fix typos
- add code to parse raw results to RHS format ()
- adjust patches order
- other improvement

Currently ffsb already connected with regression.py, QE will merge this back to internal and use it in routine performance testing.

+ regression comparison result example:
http://amosk.info/pub/html/ffsb.html
http://amosk.info/pub/html/ffsb.avg.html


Amos Kong (9):
  test: fix directory name
  introduce a script to execute program
  ffsb: add example patches
  subtests.cfg: update configuration of performance subtest
  virt_test_utils: introduce cmd_runner_monitor()
  virt_test_utils: introduce summary_up_result()
  virt: add a new subtest: performanc.py
  update configuration of ffsb
  perf: add a variance to summary results

 client/test.py                                     |    3 +-
 .../tests/kvm/src/examples/ffsb_file_prepare.patch |   51 +++++
 .../examples/ffsb_large_file_creates_256k_1.patch  |   53 +++++
 .../examples/ffsb_large_file_creates_256k_16.patch |   53 +++++
 .../examples/ffsb_large_file_creates_256k_8.patch  |   53 +++++
 .../examples/ffsb_large_file_creates_8k_1.patch    |   53 +++++
 .../examples/ffsb_large_file_creates_8k_16.patch   |   53 +++++
 .../examples/ffsb_large_file_creates_8k_8.patch    |   53 +++++
 .../kvm/src/examples/ffsb_large_file_prepare.patch |   51 +++++
 .../kvm/src/examples/ffsb_mail_server_8k_1.patch   |   68 +++++++
 .../kvm/src/examples/ffsb_mail_server_8k_16.patch  |   68 +++++++
 .../kvm/src/examples/ffsb_mail_server_8k_8.patch   |   68 +++++++
 .../kvm/src/examples/ffsb_random_reads_8k_1.patch  |   54 +++++
 .../kvm/src/examples/ffsb_random_reads_8k_16.patch |   54 +++++
 .../kvm/src/examples/ffsb_random_reads_8k_8.patch  |   54 +++++
 .../kvm/src/examples/ffsb_random_write_8k_1.patch  |   54 +++++
 .../kvm/src/examples/ffsb_random_write_8k_16.patch |   54 +++++
 .../kvm/src/examples/ffsb_random_write_8k_8.patch  |   54 +++++
 .../examples/ffsb_sequential_reads_256k_1.patch    |   50 +++++
 .../examples/ffsb_sequential_reads_256k_16.patch   |   50 +++++
 .../examples/ffsb_sequential_reads_256k_8.patch    |   50 +++++
 .../src/examples/ffsb_sequential_reads_8k_1.patch  |   50 +++++
 .../src/examples/ffsb_sequential_reads_8k_16.patch |   50 +++++
 .../src/examples/ffsb_sequential_reads_8k_8.patch  |   50 +++++
 client/tests/kvm/tests/performance.py              |  204 ++++++++++++++++++++
 client/tools/perf.conf                             |    5 +-
 client/virt/scripts/cmd_runner.py                  |   88 +++++++++
 client/virt/subtests.cfg.sample                    |  119 ++++++++++++
 client/virt/virt_test_utils.py                     |  139 +++++++++++++
 29 files changed, 1803 insertions(+), 3 deletions(-)
 create mode 100644 client/tests/kvm/src/examples/ffsb-profiles.patch
 create mode 100644 client/tests/kvm/src/examples/ffsb_file_prepare.patch
 create mode 100644 client/tests/kvm/src/examples/ffsb_large_file_creates_256k_1.patch
 create mode 100644 client/tests/kvm/src/examples/ffsb_large_file_creates_256k_16.patch
 create mode 100644 client/tests/kvm/src/examples/ffsb_large_file_creates_256k_8.patch
 create mode 100644 client/tests/kvm/src/examples/ffsb_large_file_creates_8k_1.patch
 create mode 100644 client/tests/kvm/src/examples/ffsb_large_file_creates_8k_16.patch
 create mode 100644 client/tests/kvm/src/examples/ffsb_large_file_creates_8k_8.patch
 create mode 100644 client/tests/kvm/src/examples/ffsb_large_file_prepare.patch
 create mode 100644 client/tests/kvm/src/examples/ffsb_mail_server_8k_1.patch
 create mode 100644 client/tests/kvm/src/examples/ffsb_mail_server_8k_16.patch
 create mode 100644 client/tests/kvm/src/examples/ffsb_mail_server_8k_8.patch
 create mode 100644 client/tests/kvm/src/examples/ffsb_random_reads_8k_1.patch
 create mode 100644 client/tests/kvm/src/examples/ffsb_random_reads_8k_16.patch
 create mode 100644 client/tests/kvm/src/examples/ffsb_random_reads_8k_8.patch
 create mode 100644 client/tests/kvm/src/examples/ffsb_random_write_8k_1.patch
 create mode 100644 client/tests/kvm/src/examples/ffsb_random_write_8k_16.patch
 create mode 100644 client/tests/kvm/src/examples/ffsb_random_write_8k_8.patch
 create mode 100644 client/tests/kvm/src/examples/ffsb_sequential_reads_256k_1.patch
 create mode 100644 client/tests/kvm/src/examples/ffsb_sequential_reads_256k_16.patch
 create mode 100644 client/tests/kvm/src/examples/ffsb_sequential_reads_256k_8.patch
 create mode 100644 client/tests/kvm/src/examples/ffsb_sequential_reads_8k_1.patch
 create mode 100644 client/tests/kvm/src/examples/ffsb_sequential_reads_8k_16.patch
 create mode 100644 client/tests/kvm/src/examples/ffsb_sequential_reads_8k_8.patch
 create mode 100644 client/tests/kvm/tests/performance.py
 create mode 100644 client/virt/scripts/cmd_runner.py