MM Tests
  • Introduction
  • Organisation
  • Current State
  • Download
  • ChangeLog

    Introduction
    MMTests is a configurable test suite that runs a number of common workloads of interest to MM developers. Ideally this would have been to integrated with LTP, xfstests or Phoronix Test or implemented with autotest. Unfortunately, large portions of these tests are cobbled together over a number of years with varying degrees of quality before decent test frameworks were common. The refactoring effort to integrate with another framework is significant.

    Organisation
    The top-level directory has a single driver script called run-mmtests.sh which reads a config file that describes how the benchmarks should be run, configures the system and runs the requested tests. config also has some per-test configuration items that can be set depending on the test. The driver script takes the name of the test as a parameter. Generally, this would be a symbolic name naming the kernel being tested.

    Each test is driven by a run-single-test.sh script which reads the relevant driver-TESTNAME.sh script. High level items such as profiling are configured from the top-level script while the driver scripts typically convert the config parameters into switches for a "shellpack". A shellpack is a pair of benchmark and install scripts that are all stored in shellpacks/ .

    Monitors can be optionally configured. A full list is in monitors/ . Care should be taken with monitors as there is a possibility that they introduce overhead of their own. Hence, for some performance sensitive tests it is preferable to have no monitoring.

    Many of the tests download external benchmarks. An attempt will be made to download from a mirror . To get an idea where the mirror should be located, grep for MIRROR_LOCATION= in shellpacks/.

    A basic invocation would be
    $ cp config-global-dhp__pagealloc-performance config
    $ ./run-mmtests.sh --no-monitor 3.0-nomonitor
    $ ./run-mmtests.sh --run-monitor 3.0-runmonitor
    
    More information is included in the README.

    Download
    Download links are below. The naming convention is in two parts. The first mmtests-VERSION refers to the version of mmtests itself. Typically for a given series mmtests is forked where the second part comes into play. To a tarball that is a fork for reclaim related tests might be called mmtests-0.02-reclaim-0.01.tar.gz . Forks will never be linked here but it is handy to keep the naming convention when or if forks are referred to on a mailing list.

    Package Release Date
    mmtests-0.01-mmtests-0.01.tar.gz August 4th, 2011
    mmtests-0.02-mmtests-0.01.tar.gz October 17th, 2011
    mmtests-0.03-mmtests-0.01.tar.gz March 2nd, 2011

    ChangeLog
    Very limited changelog unfortunately. A git tree of this exists but unfortunately it is not publicly available at the moment.
    Version 0.02
    o Added benchmark for running dbench3, dbench4, tiobench
    o Added benchmark for ffsb that can generate work profiles similar to the
      ffsb tests used for btrfs
    o iozone can now run in single mode to allow better specification of what
      the test should do
    o Corrected name of fraganalysis script in makefile
    o Polished reporting a little, added some support for comparing iostat
      reports
    
    Version 0.01
      o Initial public release