VMTrace
------- 

This tarball is a set of utilities to use vmtrace. vmtrace is a simple
kernel patch to log virtual memory access and pagecache IO.

This is GPL software.

* Capture daemon *

vmtrace-capture.c:
Captures data from relayfs channel and writes it into a file. To be used
at workload execution.

* Post processing tools *

vmtrace-print.c:
Example to iterate over all trace entries.

vmtrace-page-trace.c: 
Prints page trace of the given reference trace. 
(Uses 4KB pages, like vmtrace-irp.c)

vmtrace-reorder.c:
Makes sure the trace is ordered by sequence number.

vmtrace-split.c: 
Splits a single vmtrace entry into per-mapping entries.

vmtrace-pid-split.c: 
Splits a single vmtrace entry into per-pid entries.

vmtrace-irp.c:
Calculates Inter Reference Period between accesses to a mapping's pages.

This data is used to calculate per-page "average IRF" (Inter Reference
Frequency), as follows:

page-avg-IRF = (sum d(i, i+1))	<i=1...i=nr_accesses>
               ---------------
                nr_accesses

where d(i, i+1) is the delta between the current access and the next 
access to the page.

and average IRF of the entire mapping:

mapping-avg-IRF = sum (i's avg.irf)	<i=1...i=nr_pages>
                  -----------------
                     nr_pages

vmtrace-relation.c:
Calculates the numerical relation between accesses to two different
mappings. This is an attempt to estimate how interleaved the accesses
are.


Endianness WARNING:
This code makes no assumption about endiannes, which means that 
interpreting trace files using different endianness is not
possible without convertion.
