VM Regress 0.6

From: Mel (mel@csn.ul.ie)
Date: Wed Aug 21 2002 - 16:44:19 EST

Project page: http://www.csn.ul.ie/~mel/projects/vmregress/
Download: http://www.csn.ul.ie/~mel/projects/vmregress/vmregress-0.6.tar.gz

This is the third public release of VM Regress. It is the beginnings of a
regression, benchmarking and test tool for the Linux VM. The web page has
an introduction and the project itself has quiet comprehensive
documentation and commentary. It is still in it's very early days but
there is a lot more in here than there was in 0.5.

This release had a lot of minor bug fixes in it including building with
highmem support and late 2.5 kernels. It has been heavily tested with both
2.4.19 and 2.4.19-rmap14a .

The first item feature of note is that multiple instances of the same test can
now run but only one will output information to the proc entry. This will
allow 100 small instances of a test to run rather than one very large

Second item is the pagemap.o module. When read, it will print out all VMA's
of the reading process and print what pages are present/swapped in that region
in encoded format. A perl library is provided for decoding the information.

Third item is the introduction of the mapanon.o module. It exports four
proc interfaces for open, reading, writing and closing memory mapped
regions. It is designed to be used by a benchmarking perl script
(bin/bench_mapanon.pl --man for details) for testing how quickly anonymous
pages are used within an mmaped region and illustrates what pages the
kernel decides to swap out. The report from the benchmark will show how
quickly pages were accessed, what pages were present/swapped in comparison
to how often a page was referenced and a graph of vmstat output. Tests are
running currently measuring the performance of 2.4.19 and 2.4.19-rmap14a.
They will be posted up when they complete running.

Fourth item is several perl libraries made available that are aimed at making
developing of new tests very easy. They cover a lot of the drudge work a test
has to do such as graphing, reading proc entries, decoding information and so
on. The manual has most of the details. All of VM Regress is designed to
be very easy to interface with so other tests can be easily developed.

The next step is to update mapanon to cover mmaped files as well as anonymous
memory. This is so a simulation web server will be run complete with bots
browsing web pages similar to what Rik Van Riel outlined in an email sent
to the list. This will help the tool be both a micro analysis and
overall performance testing and benchmark tool.

Further down the line is the development of statistical analysis tools for
examining different data sets, in particular the timing information the
bench_mapanon.pl script produces.

This is still very much in it's early days and is expected to take a long time
to develop fully but it's at the point where it can produce useful figures.
Reasonably comprehensive documentation is available with the package and from
the webpage. Any feedback is appreciated.

Full changelog for 0.6

Version 0.6
  o Allow multiple instances of tests to run. Only one will print to proc
  o pagemap.o module will dump out address space with pages swapped/present
  o mapanon.o benchmark, creates and references mmaped areas so that a script
    can simulate program behavior and see what the process space looks like
  o Created various benchmark perl scripts.
  o Created various support perl modules for running tests in bin/lib/VMR
  o Print out kernel messages
  o Moved the pagemap decode perl routines to a library
  o Fixed CONFIG_HIGHMEM compile error
  o Fixed spinlock redefine errors
  o Fixed use of KERNEL_VERSION macro
  o Fixed various deadlocks

Mel Gorman
MSc Student, University of Limerick

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

This archive was generated by hypermail 2b29 : Fri Aug 23 2002 - 22:00:23 EST